##// END OF EJS Templates
clfilter: unfilter some parts of the push logic...
clfilter: unfilter some parts of the push logic Computation of common changesets during push needs to be done on the widest set possible. An unfiltered version of the repo is kept for discovery and various revset calls. The discovery code itself enforces the filtering of unserved outgoing changeset.

File last commit:

r17687:8853f37b default
r18007:2e30972d default
Show More
test-histedit-fold.t
295 lines | 7.0 KiB | text/troff | Tads3Lexer
/ tests / test-histedit-fold.t
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ . "$TESTDIR/histedit-helpers.sh"
$ cat >> $HGRCPATH <<EOF
> [extensions]
> graphlog=
> histedit=
> EOF
Mads Kiilerich
tests: make histedit pass on Windows MSYS...
r17087 $ EDITED="$TESTTMP/editedhistory"
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ 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
Mads Kiilerich
tests: make histedit tests more resilient to filesystem variation...
r17086 $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 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
Pierre-Yves David
histedit: fold in memory...
r17644 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 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 ..
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130
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
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 merging file
warning: conflicts during merge.
merging file incomplete! (edit conflicts, then use 'hg resolve --mark')
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 abort: Fix up the change and run hg histedit --continue
[255]
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 There were conflicts, we keep P1 content. This
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 should effectively drop the changes from +6.
$ hg status
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 M file
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 ? editor.py
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 ? file.orig
$ hg resolve -l
U file
$ hg revert -r 'p1()' file
$ hg resolve --mark file
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 $ 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 ..
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242
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
Adrian Buehlmann
test-histedit-fold: fix for Windows...
r17257 $ EDITED="$TESTTMP/editcommands"
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 $ 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
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 merging file
warning: conflicts during merge.
merging file incomplete! (edit conflicts, then use 'hg resolve --mark')
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 abort: Fix up the change and run hg histedit --continue
[255]
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 $ cat > file << EOF
> 1
> 2
> 3
> 4
> 5
> EOF
$ hg resolve --mark file
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 $ 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
Pierre-Yves David
histedit: fold in memory...
r17644
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'default'
HG: changed file
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 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)
Pierre-Yves David
histedit-test: make test-fold more verbose...
r17687 $ hg log -G
@ changeset: 1:e29e02896e6c
| 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
$ hg export tip
# HG changeset patch
# User test
# Date 0 0
# Node ID e29e02896e6c2b149d2228a0a64b4f3a9a4237f3
# Parent 0189ba417d34df9dda55f88b637dcae9917b5964
+4
***
+5.2
***
+6
diff -r 0189ba417d34 -r e29e02896e6c file
--- a/file Thu Jan 01 00:00:00 1970 +0000
+++ b/file Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +1,6 @@
1
2
3
+4
+5
+6
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 $ cd ..