chiark / gitweb /
Split brain: Actually generate .gitignore patch
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 4 Jun 2016 16:01:40 +0000 (17:01 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 16 Jul 2016 15:47:47 +0000 (16:47 +0100)
Close our FH onto the file, and run git diff to fill it with the
actual diff.  Add the file to series.  Use git add and git commit to
commit the patch to the private git branch.

Now most of the code to generate the .gitignore properly is present, I
think, but not debugged.

dgit

diff --git a/dgit b/dgit
index 92f96cefc295e79c33daa73d3e05c62d9ad7c9ac..40c7f3ec2f007aff628452690e049e7a6f15b193 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -2596,9 +2596,20 @@ updates to users of the official Debian archive view of the package.
 [dgit version $our_version]
 ---
 END
-    die 'xxx gitignore';
-       
+        close GIPATCH or die "$gipatch: $!";
+        runcmd shell_cmd "exec >>$gipatch", @git, qw(diff),
+            $unapplied, $headref, "--", keys %$editedignores;
+        open SERIES, "+>>", "debian/patches/series" or die $!;
+        defined seek SERIES, -1, 2 or $!==EINVAL or die $!;
+        my $newline;
+        defined read SERIES, $newline, 1 or die $!;
+       print SERIES "\n" or die $! unless $newline eq "\n";
+       print SERIES "auto-gitignore\n" or die $!;
+       close SERIES or die  $!;
+        runcmd @git, qw(add -- debian/patches/series), $gipatch;
+        commit_admin "Commit patch to update .gitignore";
     }
+
     die 'xxx memoisation via git-reflog';
     die 'xxx fast forward (should not depend on quilt mode, but will always be needed if we did $split_brain)';
 }