X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/a01e3b490eb36ccf9e704840e1b6683dab867550..98ec67d7860209c5cbbc848769f2ba1a7062ddef:/packaging/git-status.pl diff --git a/packaging/git-status.pl b/packaging/git-status.pl index 295018c9..32cd437d 100644 --- a/packaging/git-status.pl +++ b/packaging/git-status.pl @@ -6,25 +6,28 @@ sub check_git_state my($master_branch, $fatal_unless_clean, $check_patches_dir) = @_; my($cur_branch) = check_git_status($fatal_unless_clean); - if ($cur_branch ne $master_branch) { + (my $branch = $cur_branch) =~ s{^patch/([^/]+)/[^/]+$}{$1}; # change patch/BRANCH/PATCH_NAME into BRANCH + if ($branch ne $master_branch) { print "The checkout is not on the $master_branch branch.\n"; exit 1 if $master_branch ne 'master'; - print "Do you want me to continue with --branch=$cur_branch? [n] "; + print "Do you want me to continue with --branch=$branch? [n] "; $_ = ; exit 1 unless /^y/i; - $_[0] = $master_branch = $cur_branch; # Updates caller's $master_branch too. + $_[0] = $master_branch = $branch; # Updates caller's $master_branch too. } if ($check_patches_dir && -d 'patches/.git') { - ($cur_branch) = check_git_status($fatal_unless_clean, 'patches'); - if ($cur_branch ne $master_branch) { - print "The *patches* checkout is on branch $cur_branch, not branch $master_branch.\n"; + ($branch) = check_git_status($fatal_unless_clean, 'patches'); + if ($branch ne $master_branch) { + print "The *patches* checkout is on branch $branch, not branch $master_branch.\n"; print "Do you want to change it to branch $master_branch? [n] "; $_ = ; exit 1 unless /^y/i; system "cd patches && git checkout '$master_branch'"; } } + + return $cur_branch; } sub check_git_status