mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
41df87291e
Fixes 6d445c2db0df failing with MSYS. MSYS sh.exe mangled that path by applying its path magic, which caused the test to fail on Windows.
239 lines
5.9 KiB
Perl
239 lines
5.9 KiB
Perl
$ . "$TESTDIR/histedit-helpers.sh"
|
|
|
|
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> graphlog=
|
|
> histedit=
|
|
> EOF
|
|
|
|
$ EDITED="$TESTTMP/editedhistory"
|
|
$ cat > $EDITED <<EOF
|
|
> pick e860deea161a e
|
|
> pick 652413bf663e f
|
|
> fold 177f92b77385 c
|
|
> pick 055a42cdd887 d
|
|
> EOF
|
|
$ initrepo ()
|
|
> {
|
|
> hg init r
|
|
> cd r
|
|
> for x in a b c d e f ; do
|
|
> echo $x > $x
|
|
> hg add $x
|
|
> hg ci -m $x
|
|
> done
|
|
> }
|
|
|
|
$ initrepo
|
|
|
|
log before edit
|
|
$ hg log --graph
|
|
@ changeset: 5:652413bf663e
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: f
|
|
|
|
|
o changeset: 4:e860deea161a
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: e
|
|
|
|
|
o changeset: 3:055a42cdd887
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: d
|
|
|
|
|
o changeset: 2:177f92b77385
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: c
|
|
|
|
|
o changeset: 1:d2ae7f538514
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: b
|
|
|
|
|
o changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
|
|
edit the history
|
|
$ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
|
|
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
log after edit
|
|
$ hg log --graph
|
|
@ changeset: 4:82b0c1ff1777
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: d
|
|
|
|
|
o changeset: 3:150aafb44a91
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: pick e860deea161a e
|
|
|
|
|
o changeset: 2:493dc0964412
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: e
|
|
|
|
|
o changeset: 1:d2ae7f538514
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: b
|
|
|
|
|
o changeset: 0:cb9a9f314b8b
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
|
|
post-fold manifest
|
|
$ hg manifest
|
|
a
|
|
b
|
|
c
|
|
d
|
|
e
|
|
f
|
|
|
|
$ cd ..
|
|
|
|
folding and creating no new change doesn't break:
|
|
$ mkdir fold-to-empty-test
|
|
$ cd fold-to-empty-test
|
|
$ hg init
|
|
$ printf "1\n2\n3\n" > file
|
|
$ hg add file
|
|
$ hg commit -m '1+2+3'
|
|
$ echo 4 >> file
|
|
$ hg commit -m '+4'
|
|
$ echo 5 >> file
|
|
$ hg commit -m '+5'
|
|
$ echo 6 >> file
|
|
$ hg commit -m '+6'
|
|
$ hg log --graph
|
|
@ changeset: 3:251d831eeec5
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: +6
|
|
|
|
|
o changeset: 2:888f9082bf99
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: +5
|
|
|
|
|
o changeset: 1:617f94f13c0f
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: +4
|
|
|
|
|
o changeset: 0:0189ba417d34
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 1+2+3
|
|
|
|
|
|
$ cat > editor.py <<EOF
|
|
> import re, sys
|
|
> rules = sys.argv[1]
|
|
> data = open(rules).read()
|
|
> data = re.sub(r'pick ([0-9a-f]{12} 2 \+5)', r'drop \1', data)
|
|
> data = re.sub(r'pick ([0-9a-f]{12} 2 \+6)', r'fold \1', data)
|
|
> open(rules, 'w').write(data)
|
|
> EOF
|
|
|
|
$ HGEDITOR='python editor.py' hg histedit 1
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
patching file file
|
|
Hunk #1 FAILED at 2
|
|
1 out of 1 hunks FAILED -- saving rejects to file file.rej
|
|
abort: Fix up the change and run hg histedit --continue
|
|
[255]
|
|
There were conflicts, but we'll continue without resolving. This
|
|
should effectively drop the changes from +6.
|
|
$ hg status
|
|
? editor.py
|
|
? file.rej
|
|
$ hg histedit --continue
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
saved backup bundle to $TESTTMP/*-backup.hg (glob)
|
|
$ hg log --graph
|
|
@ changeset: 1:617f94f13c0f
|
|
| tag: tip
|
|
| user: test
|
|
| date: Thu Jan 01 00:00:00 1970 +0000
|
|
| summary: +4
|
|
|
|
|
o changeset: 0:0189ba417d34
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 1+2+3
|
|
|
|
|
|
$ cd ..
|
|
|
|
Test corner case where folded revision is separated from its parent by a
|
|
dropped revision.
|
|
|
|
|
|
$ hg init fold-with-dropped
|
|
$ cd fold-with-dropped
|
|
$ printf "1\n2\n3\n" > file
|
|
$ hg commit -Am '1+2+3'
|
|
adding file
|
|
$ echo 4 >> file
|
|
$ hg commit -m '+4'
|
|
$ echo 5 >> file
|
|
$ hg commit -m '+5'
|
|
$ echo 6 >> file
|
|
$ hg commit -m '+6'
|
|
$ hg log -G --template '{rev}:{node|short} {desc|firstline}\n'
|
|
@ 3:251d831eeec5 +6
|
|
|
|
|
o 2:888f9082bf99 +5
|
|
|
|
|
o 1:617f94f13c0f +4
|
|
|
|
|
o 0:0189ba417d34 1+2+3
|
|
|
|
$ EDITED="$TESTTMP/editcommands"
|
|
$ cat > $EDITED <<EOF
|
|
> pick 617f94f13c0f 1 +4
|
|
> drop 888f9082bf99 2 +5
|
|
> fold 251d831eeec5 3 +6
|
|
> EOF
|
|
$ HGEDITOR="cat $EDITED >" hg histedit 1
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
patching file file
|
|
Hunk #1 FAILED at 2
|
|
1 out of 1 hunks FAILED -- saving rejects to file file.rej
|
|
abort: Fix up the change and run hg histedit --continue
|
|
[255]
|
|
$ echo 5 >> file
|
|
$ hg commit -m '+5.2'
|
|
created new head
|
|
$ echo 6 >> file
|
|
$ HGEDITOR=cat hg histedit --continue
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
+4
|
|
***
|
|
+5.2
|
|
***
|
|
+6
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
saved backup bundle to $TESTTMP/fold-with-dropped/.hg/strip-backup/617f94f13c0f-backup.hg (glob)
|
|
$ cd ..
|
|
|