chiark / gitweb /
Split brain: Move $oldtiptree calculation out of quiltify (nfc)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 Nov 2015 23:05:55 +0000 (23:05 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 16 Jul 2016 15:47:47 +0000 (16:47 +0100)
And pass the result as an argument.  Code outside quiltify is going
to want this information.

dgit

diff --git a/dgit b/dgit
index 4d7c721..2c72213 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -2540,8 +2540,8 @@ sub quilt_could_gbp ($$$) {
        quiltify_trees_differ($userhead,$applied,1);
 }
 
-sub quiltify ($$$) {
-    my ($clogp,$target,$unapplied) = @_;
+sub quiltify ($$$$) {
+    my ($clogp,$target,$unapplied,$oldtiptree) = @_;
 
     # Quilt patchification algorithm
     #
@@ -2567,12 +2567,6 @@ sub quiltify ($$$) {
     # After traversing PT, we git commit the changes which
     # should be contained within debian/patches.
 
-    changedir '../fake';
-    rmtree '.pc';
-    runcmd @git, qw(add -Af .);
-    my $oldtiptree=git_write_tree();
-    changedir '../work';
-
     # The search for the path S..T is breadth-first.  We maintain a
     # todo list containing search nodes.  A search node identifies a
     # commit, and looks something like this:
@@ -2994,7 +2988,13 @@ END
         rename '../fake/.pc','.pc' or die $!;
     }
 
-    quiltify($clogp,$headref,$unapplied);
+    changedir '../fake';
+    rmtree '.pc';
+    runcmd @git, qw(add -Af .);
+    my $oldtiptree=git_write_tree();
+    changedir '../work';
+
+    quiltify($clogp,$headref,$unapplied,$oldtiptree);
 
     if (!open P, '>>', ".pc/applied-patches") {
        $!==&ENOENT or die $!;