use Data::Dumper;
use Getopt::Long qw(:config posix_default gnu_compat bundling);
-use Debian::Dgit qw(:DEFAULT $wa);
+use Debian::Dgit qw(:DEFAULT :playground);
sub badusage ($) {
my ($m) = @_;
sub D_PAT_ADD () { return 0x4; } # debian/patches/ extra patches at end
sub D_PAT_OTH () { return 0x8; } # debian/patches other changes
-our $rd = ".git/git-debrebase";
-our $ud = "$rd/work";
+
+our $playprefix = 'debrebase';
+our $rd;
+
our @git = qw(git);
+sub in_workarea ($) {
+ my ($sub) = @_;
+ changedir "$playground/work";
+ my $r = eval { $sub->(); };
+ changedir $maindir;
+}
+
+sub fresh_workarea () {
+ do {
+ local $playground;
+ fresh_playground "$playprefix/work";
+ };
+ in_workarea sub { playtree_setup };
+}
+
sub get_differs ($$) {
my ($x,$y) = @_;
# This resembles quiltify_trees_differ, in dgit, a bit.
Contributor => $bytime[1]);
}
foreach my $p (@p) {
- my ($p_h, $p_m) = get_commit $p;
+ my ($p_h, $p_m) = get_commit $p->{CommitId};
$p->{IsOrigin} = $p_h !~ m/^parent \w+$/m;
($p->{IsDgitImport},) = $p_m =~ m/^\[dgit import ([0-9a-z]+) .*\]$/m;
}
my ($stype, $series) = git_cat_file "$t:debian/patches/series";
my $haspatches = $stype ne 'missing' && $series =~ m/^\s*[^#\n\t ]/m;
+@p = reverse @p; #xxx
+
# How to decide about l/r ordering of breakwater merges ? git
# --topo-order prefers to expand 2nd parent first. There's
# already an easy rune to look for debian/ history anyway (git log
# Now we build it back up again
- workarea_fresh();
+ fresh_workarea();
my $rewriting = 0;
my $rm_tree_cached = sub {
my ($subdir) = @_;
- runcmd @git, qw(rm --quiet -rf --cached), $subdir;
+ runcmd @git, qw(rm --quiet -rf --cached --ignore-unmatch), $subdir;
};
my $read_tree_debian = sub {
my ($treeish) = @_;
}
sub cmd_launder () {
- badusage "no arguments to launder allowed";
+ badusage "no arguments to launder allowed" if @ARGV;
my $old = get_head();
my ($tip,$breakwater) = walk $old;
update_head $old, $tip, 'launder';
my $toplevel = cmdoutput @git, qw(rev-parse --show-toplevel);
chdir $toplevel or die "chdir $toplevel: $!";
+fresh_playground $playprefix;
+$rd = ensure_a_playground "playprefix/misc";
+
my $cmd = shift @ARGV;
my $cmdfn = $cmd;
$cmdfn =~ y/-/_/;