chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git-debrebase: provide -f<tag>
[dgit.git]
/
git-debrebase
diff --git
a/git-debrebase
b/git-debrebase
index 11a1896217e10ef51a1288d99c647904f3a5817d..a9f510c8f112327b41b19adefcaff4060491be6b 100755
(executable)
--- a/
git-debrebase
+++ b/
git-debrebase
@@
-90,6
+90,8
@@
use Dpkg::Version;
our ($opt_force);
our ($opt_force);
+our $us = qw(git-debrebase);
+
sub badusage ($) {
my ($m) = @_;
die "bad usage: $m\n";
sub badusage ($) {
my ($m) = @_;
die "bad usage: $m\n";
@@
-252,27
+254,40
@@
sub make_commit ($$) {
return cmdoutput @cmd;
}
return cmdoutput @cmd;
}
-our $fproblems;
+our @fproblem_force_opts;
+our $fproblems_forced;
+our $fproblems_tripped;
sub fproblem ($$) {
my ($tag,$msg) = @_;
sub fproblem ($$) {
my ($tag,$msg) = @_;
- $fproblems++;
- print STDERR "git-debrebase: safety catch tripped: $msg\n";
+ if (grep { $_ eq $tag } @fproblem_force_opts) {
+ $fproblems_forced++;
+ print STDERR "git-debrebase: safety catch overridden (-f$tag): $msg\n";
+ } else {
+ $fproblems_tripped++;
+ print STDERR "git-debrebase: safety catch tripped (-f$tag): $msg\n";
+ }
}
}
+
sub fproblems_maybe_bail () {
sub fproblems_maybe_bail () {
- if ($fproblems) {
+ if ($fproblems_forced) {
+ printf STDERR
+ "%s: safety catch trips: %d overriden by individual -f options\n",
+ $us, $fproblems_forced;
+ }
+ if ($fproblems_tripped) {
if ($opt_force) {
printf STDERR
if ($opt_force) {
printf STDERR
- "
safety catch trips (%d) overriden by
--force\n",
- $
fproblems
;
+ "
%s: safety catch trips: %d overriden by global
--force\n",
+ $
us, $fproblems_tripped
;
} else {
fail sprintf
} else {
fail sprintf
-
"safety catch trips (%d) (you could
--force)",
- $
fproblems
;
+
"%s: safety catch trips: %d blockers (you could -f<tag>, or
--force)",
+ $
us, $fproblems_tripped
;
}
}
}
sub any_fproblems () {
}
}
}
sub any_fproblems () {
- return
!!$fproblems
;
+ return
$fproblems_forced || $fproblems_tripped
;
}
# classify returns an info hash like this
}
# classify returns an info hash like this
@@
-1125,6
+1140,7
@@
sub cmd_downstream_rebase_launder_v0 () {
}
GetOptions("D+" => \$debuglevel,
}
GetOptions("D+" => \$debuglevel,
+ 'f=s' => \@fproblem_force_opts,
'force!') or die badusage "bad options\n";
initdebug('git-debrebase ');
enabledebug if $debuglevel;
'force!') or die badusage "bad options\n";
initdebug('git-debrebase ');
enabledebug if $debuglevel;