chiark / gitweb /
dgit: Factor out debian/source/.. in check_not_dirty
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 5b223afb2d7080a26ed08cebecb2cabd922a4f36..8df8f761baf9347ce341102b0fd5229aaf4fb03d 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -3817,9 +3817,11 @@ sub pull () {
 }
 
 sub check_not_dirty () {
-    foreach my $f (qw(local-options local-patch-header)) {
-       if (stat_exists "debian/source/$f") {
-           fail f_ "git tree contains debian/source/%s", $f;
+    my @forbid = qw(local-options local-patch-header);
+    @forbid = map { "debian/source/$_" } @forbid;
+    foreach my $f (@forbid) {
+       if (stat_exists $f) {
+           fail f_ "git tree contains %s", $f;
        }
     }
 
@@ -7376,7 +7378,10 @@ $cmd =~ y/-/_/;
 my $pre_fn = ${*::}{"pre_$cmd"};
 $pre_fn->() if $pre_fn;
 
-record_maindir if $invoked_in_git_tree;
+if ($invoked_in_git_tree) {
+    changedir_git_toplevel();
+    record_maindir();
+}
 git_slurp_config();
 
 my $fn = ${*::}{"cmd_$cmd"};