X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit;h=31e6bd581b7453d23519d9aa01983e5b21061e4a;hp=9834d03b8d682b75108beb9f489b9cd56b2982b4;hb=640602b53ec3a387aef776d6a727118e1784f6d7;hpb=0929e8c0d79bd140a1a3d459042045c0d4a2b011 diff --git a/dgit b/dgit index 9834d03b..31e6bd58 100755 --- a/dgit +++ b/dgit @@ -30,6 +30,8 @@ use File::Path; use File::Temp qw(tempdir); use File::Basename; use Dpkg::Version; +use Dpkg::Compression; +use Dpkg::Compression::Process; use POSIX; use IPC::Open2; use Digest::SHA; @@ -100,7 +102,7 @@ our $git_authline_re = '^([^<>]+) \<(\S+)\> (\d+ [-+]\d+)$'; our $splitbraincache = 'dgit-intern/quilt-cache'; our $rewritemap = 'dgit-rewrite/map'; -our @dpkg_source_ignores = qw(-i\.git/ -I.git); +our @dpkg_source_ignores = qw(-i(?:^|/)\.git(?:/|$) -I.git); our (@git) = qw(git); our (@dget) = qw(dget); @@ -986,7 +988,7 @@ sub commit_getclogp ($) { our %commit_getclogp_memo; my $memo = $commit_getclogp_memo{$objid}; return $memo if $memo; - + my $mclog = dgit_privdir()."clog"; runcmd shell_cmd "exec >$mclog", @git, qw(cat-file blob), "$objid:debian/changelog"; @@ -2383,7 +2385,7 @@ END local $ENV{GIT_AUTHOR_DATE} = $authline[2]; my $path = $ENV{PATH} or die; - + # we use ../../gbp-pq-output, which (given that we are in # $playground/PLAYTREE, and $playground is .git/dgit/unpack, # is .git/dgit. @@ -4188,7 +4190,7 @@ END quilt_check_splitbrain_cache($actualhead, $upstreamversion); $dgithead or fail "--quilt=$quilt_mode but no cached dgit view: - perhaps tree changed since dgit build[-source] ?"; + perhaps HEAD changed since dgit build[-source] ?"; $split_brain = 1; $dgithead = splitbrain_pseudomerge($clogp, $actualhead, $dgithead, @@ -4238,13 +4240,42 @@ END my $r = system @diffcmd; if ($r) { if ($r==256) { + my $referent = $split_brain ? $dgithead : 'HEAD'; my $diffs = cmdoutput @git, qw(diff --stat), $tree, $dgithead; - fail <