summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-debrebase26
1 files changed, 16 insertions, 10 deletions
diff --git a/git-debrebase b/git-debrebase
index 277e0f8..3798249 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -131,6 +131,21 @@ sub fresh_workarea () {
in_workarea sub { playtree_setup };
}
+sub run_ref_updates_now ($$) {
+ my ($mrest, $updates) = @_;
+ # @$updates is a list of lines for git-update-ref, without \ns
+
+ my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
+ debugcmd '>|', @upd_cmd;
+ open U, "|-", @upd_cmd or die $!;
+ foreach (@$updates) {
+ printdebug ">= ", $_, "\n";
+ print U $_, "\n" or die $!;
+ }
+ printdebug ">\$\n";
+ close U or failedcmd @upd_cmd;
+}
+
our $snags_forced = 0;
our $snags_tripped = 0;
our $snags_summarised = 0;
@@ -145,16 +160,7 @@ sub run_deferred_updates ($) {
confess 'dangerous internal error' unless all_snags_summarised();
- my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
- debugcmd '>|', @upd_cmd;
- open U, "|-", @upd_cmd or die $!;
- foreach (@deferred_updates) {
- printdebug ">= ", $_, "\n";
- print U $_, "\n" or die $!;
- }
- printdebug ">\$\n";
- close U or failedcmd @upd_cmd;
-
+ run_ref_updates_now $mrest, \@deferred_updates;
print $_, "\n" foreach @deferred_update_messages;
@deferred_updates = ();