summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-08-02 12:28:09 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-08-03 09:56:59 +0100
commit7ec5b74cc4587f7473a1e787d591c07eb1f48046 (patch)
tree9b4ed4d11b8ccc891098d7028353b0617a2d3578
parentd69f00cafcb1a8ab3ec1c75a4a35b0db496a60ad (diff)
playground refactoring: dgit: Use playground facilities
* Replace implementation of prep_ud with a call to fresh_playground * Replace references to $ud with $playground * Replace hardcoded changedir ../../.. etc. with $maindir The overall functional change is fairly minimal. We now call getcwd more often, and when we want to return to the maindir we changedir to an absolute path instead of a relative one. Later, we may rename prep_ud, mktree_in_ud_here, etc. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xdgit38
1 files changed, 17 insertions, 21 deletions
diff --git a/dgit b/dgit
index 0809c29..bc84afb 100755
--- a/dgit
+++ b/dgit
@@ -19,7 +19,7 @@
use strict;
-use Debian::Dgit;
+use Debian::Dgit qw(:DEFAULT :playground);
setup_sigwarn();
use IO::Handle;
@@ -1668,13 +1668,9 @@ sub create_remote_git_repo () {
our ($dsc_hash,$lastpush_mergeinput);
our ($dsc_distro, $dsc_hint_tag, $dsc_hint_url);
-our $ud = '.git/dgit/unpack';
sub prep_ud () {
- my $d = $ud;
- rmtree($d);
- mkpath '.git/dgit';
- mkdir $d or die $!;
+ fresh_playground 'dgit/unpack';
}
sub mktree_in_ud_here () {
@@ -2053,7 +2049,7 @@ sub generate_commits_from_dsc () {
# See big comment in fetch_from_archive, below.
# See also README.dsc-import.
prep_ud();
- changedir $ud;
+ changedir $playground;
my @dfi = dsc_files_info();
foreach my $fi (@dfi) {
@@ -2463,8 +2459,8 @@ END
@output = $lastpush_mergeinput;
}
}
- changedir '../../../..';
- rmtree($ud);
+ changedir $maindir;
+ rmtree $playground;
return @output;
}
@@ -4170,7 +4166,7 @@ END
if (madformat_wantfixup($format)) {
# user might have not used dgit build, so maybe do this now:
if (quiltmode_splitbrain()) {
- changedir $ud;
+ changedir $playground;
quilt_make_fake_dsc($upstreamversion);
my $cachekey;
($dgithead, $cachekey) =
@@ -4183,7 +4179,7 @@ END
$actualhead, $dgithead,
$archive_hash);
$maintviewhead = $actualhead;
- changedir '../../../..';
+ changedir $maindir;
prep_ud(); # so _only_subdir() works, below
} else {
commit_quilty_patch();
@@ -4214,13 +4210,13 @@ END
}
}
- changedir $ud;
+ changedir $playground;
progress "checking that $dscfn corresponds to HEAD";
runcmd qw(dpkg-source -x --),
$dscpath =~ m#^/# ? $dscpath : "../../../$dscpath";
my ($tree,$dir) = mktree_in_ud_from_only_subdir("source package");
check_for_vendor_patches() if madformat($dsc->{format});
- changedir '../../../..';
+ changedir $maindir;
my @diffcmd = (@git, qw(diff --quiet), $tree, $dgithead);
debugcmd "+",@diffcmd;
$!=0; $?=-1;
@@ -5009,7 +5005,7 @@ END
my $dgitview = git_rev_parse 'HEAD';
- changedir '../../../..';
+ changedir $maindir;
# When we no longer need to support squeeze, use --create-reflog
# instead of this:
ensuredir ".git/logs/refs/dgit-intern";
@@ -5034,7 +5030,7 @@ END
runcmd @git, qw(update-ref -m), $cachekey, "refs/$splitbraincache",
$dgitview;
- changedir '.git/dgit/unpack/work';
+ changedir "$playground/work";
my $saved = maybe_split_brain_save $headref, $dgitview, "converted";
progress "dgit view: created ($saved)";
@@ -5333,7 +5329,7 @@ END
my $headref = git_rev_parse('HEAD');
prep_ud();
- changedir $ud;
+ changedir $playground;
my $upstreamversion = upstreamversion $version;
@@ -5345,7 +5341,7 @@ END
die 'bug' if $split_brain && !$need_split_build_invocation;
- changedir '../../../..';
+ changedir $maindir;
runcmd_ordryrun_local
@git, qw(pull --ff-only -q .git/dgit/unpack/work master);
}
@@ -5456,7 +5452,7 @@ END
sub quilt_check_splitbrain_cache ($$) {
my ($headref, $upstreamversion) = @_;
# Called only if we are in (potentially) split brain mode.
- # Called in $ud.
+ # Called in playground.
# Computes the cache key and looks in the cache.
# Returns ($dgit_view_commitid, $cachekey) or (undef, $cachekey)
@@ -6132,10 +6128,10 @@ sub build_source {
} else {
my @cmd = (@dpkgsource, qw(-b --));
if ($split_brain) {
- changedir $ud;
+ changedir $playground;
runcmd_ordryrun_local @cmd, "work";
my @udfiles = <${package}_*>;
- changedir "../../..";
+ changedir $maindir;
foreach my $f (@udfiles) {
printdebug "source copy, found $f\n";
next unless
@@ -6143,7 +6139,7 @@ sub build_source {
($f =~ m/\.debian\.tar(?:\.\w+)$/ &&
$f eq srcfn($version, $&));
printdebug "source copy, found $f - renaming\n";
- rename "$ud/$f", "../$f" or $!==ENOENT
+ rename "$playground/$f", "../$f" or $!==ENOENT
or fail "put in place new source file ($f): $!";
}
} else {