summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/tartree-edit20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/tartree-edit b/tests/tartree-edit
index 1aeab3d..cecc142 100755
--- a/tests/tartree-edit
+++ b/tests/tartree-edit
@@ -116,6 +116,7 @@ gitfetchinfo_perhaps_commit () {
tryat_gitfetchinfo () {
git_manip_play
+
if test -d "$b.edit"; then
cp -a "$b.edit"/. "$play"/.
else
@@ -123,7 +124,24 @@ tryat_gitfetchinfo () {
tar -C $play -f - <&3 -x
exec 3<&-
fi
- local innerwd=$play/*
+
+ local innerwd="$(echo $play/*)"
+
+ git for-each-ref --format='%(refname)' refs/remotes >$play/l
+ perl -ne '
+ chomp;
+ next unless m#^refs/remotes/([^/]+)/#;
+ my $old = $_;
+ my $ab = $1;
+ my $rhs = $'\'';
+ my @ab = split /\+/, $ab;
+ next unless @ab == 2;
+ next unless grep { $_ eq "'"$remote"'" } @ab;
+ print "update refs/remotes/$_/$rhs $old\n" or die $! foreach @ab;
+ print "delete $old\n" or die $!;
+ ' <$play/l >$play/unmerge
+ git update-ref --stdin <$play/unmerge
+
git remote remove "$remote" 2>/dev/null ||:
git remote add "$remote" $innerwd
git fetch --no-tags -p "$remote" \