X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=5c8d24a7908eb891ef1ebf5765593100683f47e7;hb=346892585656da58a8d913cf9f808872a3096823;hp=38b02e4e1b4ca07f8163b9e0ad440a2df0d1b24b;hpb=b2930de82f96119b5e4c3ac8f7c855477dfc2e6b;p=dgit.git diff --git a/dgit b/dgit index 38b02e4e..5c8d24a7 100755 --- a/dgit +++ b/dgit @@ -520,9 +520,15 @@ our %defcfg = ('dgit.default.distro' => 'debian', 'dgit.default.archive-query' => 'madison:', 'dgit.default.sshpsql-dbname' => 'service=projectb', 'dgit-distro.debian.archive-query' => 'sshpsql:', - 'dgit-distro.debian.git-host' => 'git.debian.org', + 'dgit-distro.debian.git-host' => 'dgit-git.debian.net', + 'dgit-distro.debian.git-user-force' => 'dgit', 'dgit-distro.debian.git-proto' => 'git+ssh://', - 'dgit-distro.debian.git-path' => '/git/dgit-repos/repos', + 'dgit-distro.debian.git-path' => '/dgit/debian/repos', + 'dgit-distro.debian.diverts.alioth' => '/alioth', + 'dgit-distro.debian/alioth.git-host' => 'git.debian.org', + 'dgit-distro.debian/alioth.git-user-force' => '', + 'dgit-distro.debian/alioth.git-proto' => 'git+ssh://', + 'dgit-distro.debian/alioth.git-path' => '/git/dgit-repos/repos', 'dgit-distro.debian.git-check' => 'ssh-cmd', 'dgit-distro.debian.git-create' => 'ssh-cmd', 'dgit-distro.debian.sshpsql-host' => 'mirror.ftp-master.debian.org', @@ -1041,6 +1047,12 @@ sub mktree_in_ud_here () { symlink '../../../../objects','.git/objects' or die $!; } +sub git_write_tree () { + my $tree = cmdoutput @git, qw(write-tree); + $tree =~ m/^\w+$/ or die "$tree ?"; + return $tree; +} + sub mktree_in_ud_from_only_subdir () { # changes into the subdir my (@dirs) = <*/.>; @@ -1055,8 +1067,7 @@ sub mktree_in_ud_from_only_subdir () { rmtree '.pc'; } runcmd @git, qw(add -Af); - my $tree = cmdoutput @git, qw(write-tree); - $tree =~ m/^\w+$/ or die "$tree ?"; + my $tree=git_write_tree(); return ($tree,$dir); } @@ -1377,6 +1388,7 @@ sub clone ($) { my ($dstdir) = @_; canonicalise_suite(); badusage "dry run makes no sense with clone" unless act_local(); + my $hasgit = check_for_git(); mkdir $dstdir or die "$dstdir $!"; changedir $dstdir; runcmd @git, qw(init -q); @@ -1388,7 +1400,7 @@ sub clone ($) { close H or die $!; runcmd @git, qw(remote add), 'origin', $giturl; } - if (check_for_git()) { + if ($hasgit) { progress "fetching existing git history"; git_fetch_us(); runcmd_ordryrun_local @git, qw(fetch origin); @@ -2024,6 +2036,38 @@ our $dscfn; our $fakeeditorenv = 'DGIT_FAKE_EDITOR_QUILT'; +sub quiltify ($$) { + my ($clogp,$headref) = @_; + + my $author = getfield $clogp, 'Maintainer'; + my $time = time; + my $ncommits = 3; + my $patchname = "auto-$version-$headref-$time"; + my $msg = cmdoutput @git, qw(log), "-n$ncommits"; + mkpath '.git/dgit'; + my $descfn = ".git/dgit/quilt-description.tmp"; + open O, '>', $descfn or die "$descfn: $!"; + $msg =~ s/\n/\n /g; + $msg =~ s/^\s+$/ ./mg; + print O <{Version}) + Last (up to) $ncommits git changes, FYI: + . + $msg +Author: $author + +--- + +END + close O or die $!; + { + local $ENV{'EDITOR'} = cmdoutput qw(realpath --), $0; + local $ENV{'VISUAL'} = $ENV{'EDITOR'}; + local $ENV{$fakeeditorenv} = cmdoutput qw(realpath --), $descfn; + runcmd_ordryrun_local @dpkgsource, qw(--commit .), $patchname; + } +} + sub build_maybe_quilt_fixup () { my $format=get_source_format; return unless madformat $format; @@ -2142,33 +2186,7 @@ END rename '../fake/.pc','.pc' or die $!; } - my $author = getfield $clogp, 'Maintainer'; - my $time = time; - my $ncommits = 3; - my $patchname = "auto-$version-$headref-$time"; - my $msg = cmdoutput @git, qw(log), "-n$ncommits"; - mkpath '.git/dgit'; - my $descfn = ".git/dgit/quilt-description.tmp"; - open O, '>', $descfn or die "$descfn: $!"; - $msg =~ s/\n/\n /g; - $msg =~ s/^\s+$/ ./mg; - print O <{Version}) - Last (up to) $ncommits git changes, FYI: - . - $msg -Author: $author - ---- - -END - close O or die $!; - { - local $ENV{'EDITOR'} = cmdoutput qw(realpath --), $0; - local $ENV{'VISUAL'} = $ENV{'EDITOR'}; - local $ENV{$fakeeditorenv} = cmdoutput qw(realpath --), $descfn; - runcmd_ordryrun_local @dpkgsource, qw(--commit .), $patchname; - } + quiltify($clogp,$headref); if (!open P, '>>', ".pc/applied-patches") { $!==&ENOENT or die $!;