chiark / gitweb /
Dgit.pm: in_workarea: Use changedir
[dgit.git] / Debian / Dgit.pm
index 1f9c8276257b8999e8a28075511fca6fea89a544..399aaad4d029e3a2d4ce28b04cefad02c335d5e5 100644 (file)
@@ -59,7 +59,7 @@ BEGIN {
                       $debugprefix *debuglevel *DEBUG
                       shellquote printcmd messagequote
                       $negate_harmful_gitattrs
-                     git_slurp_config_src
+                     changedir git_slurp_config_src
                      workarea_setup
                      fresh_workarea in_workarea);
     # implicitly uses $main::us
@@ -420,6 +420,12 @@ sub is_fast_fwd ($$) {
     }
 }
 
+sub changedir ($) {
+    my ($newdir) = @_;
+    printdebug "CD $newdir\n";
+    chdir $newdir or confess "chdir: $newdir: $!";
+}
+
 sub git_slurp_config_src ($) {
     my ($src) = @_;
     # returns $r such that $r->{KEY}[] = VALUE
@@ -475,9 +481,9 @@ sub in_workarea ($;$) {
     # $twa should be relative paths of the form .git/FOO/BAR
     my ($twa) = @_;
     $twa //= $wa;
-    chdir $twa or die "$twa $!";
+    changedir $twa or die "$twa $!";
     my $r = eval { $sub->($twa); };
-    chdir '../../..' or die "$@; $!";
+    changedir '../../..' or die "$@; $!";
     die $@ if length $@;
     return $r;
 }