##// END OF EJS Templates
hook: fewer parentheses for hook load errors...
hook: fewer parentheses for hook load errors This matches 'hook failed' warnings. We're also going to add hints to some of the hook load errors. Without this change we'd have two pairs of parens for a single error message, which looks really cluttered.

File last commit:

r28004:34165875 default
r28079:0c9e9140 default
Show More
test-histedit-fold.t
535 lines | 10.9 KiB | text/troff | Tads3Lexer
/ tests / test-histedit-fold.t
Mads Kiilerich
spelling: fixes from spell checker
r21024 Test histedit extension: Fold commands
Pierre-Yves David
test: improve documentation of some histedit tests...
r19015 ======================================
This test file is dedicated to testing the fold command in non conflicting
case.
Initialization
---------------
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ . "$TESTDIR/histedit-helpers.sh"
$ cat >> $HGRCPATH <<EOF
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 > [alias]
> logt = log --template '{rev}:{node|short} {desc|firstline}\n'
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 > [extensions]
> histedit=
> EOF
Pierre-Yves David
test: improve documentation of some histedit tests...
r19015
Simple folding
--------------------
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ 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
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 $ hg logt --graph
@ 5:652413bf663e f
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 4:e860deea161a e
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 3:055a42cdd887 d
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 2:177f92b77385 c
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 1:d2ae7f538514 b
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 0:cb9a9f314b8b a
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
Pierre-Yves David
histedit: allow "-" as a command file...
r19018 $ hg histedit 177f92b77385 --commands - 2>&1 <<EOF | fixbundle
Pierre-Yves David
test: improve documentation of some histedit tests...
r19015 > pick e860deea161a e
> pick 652413bf663e f
> fold 177f92b77385 c
> pick 055a42cdd887 d
> EOF
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
log after edit
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 $ hg logt --graph
Pierre-Yves David
histedit: allow "-" as a command file...
r19018 @ 4:9c277da72c9b d
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
histedit: allow "-" as a command file...
r19018 o 3:6de59d13424a f
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 2:ee283cb5f2d5 e
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 1:d2ae7f538514 b
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 0:cb9a9f314b8b a
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
post-fold manifest
$ hg manifest
a
b
c
d
e
f
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437
check histedit_source
$ hg log --debug --rev 3
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 changeset: 3:6de59d13424a8a13acd3e975514aed29dd0d9b2d
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 phase: draft
parent: 2:ee283cb5f2d5955443f23a27b697a04339e9a39a
parent: -1:0000000000000000000000000000000000000000
manifest: 3:81eede616954057198ead0b2c73b41d1f392829a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files+: c f
extra: branch=default
extra: histedit_source=a4f7421b80f79fcc59fff01bcbf4a53d127dd6d3,177f92b773850b59254aa5e923436f921b55483b
description:
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 f
***
c
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437
Mike Edgar
histedit: add "roll" command to fold commit data and drop message (issue4256)...
r22152 rollup will fold without preserving the folded commit's message
Durham Goode
histedit: fix rollup prompting for a commit message (issue4606)...
r24828 $ OLDHGEDITOR=$HGEDITOR
$ HGEDITOR=false
Mike Edgar
histedit: add "roll" command to fold commit data and drop message (issue4256)...
r22152 $ hg histedit d2ae7f538514 --commands - 2>&1 <<EOF | fixbundle
> pick d2ae7f538514 b
> roll ee283cb5f2d5 e
> pick 6de59d13424a f
> pick 9c277da72c9b d
> EOF
Durham Goode
histedit: fix rollup prompting for a commit message (issue4606)...
r24828 $ HGEDITOR=$OLDHGEDITOR
Mike Edgar
histedit: add "roll" command to fold commit data and drop message (issue4256)...
r22152 log after edit
$ hg logt --graph
@ 3:c4a9eb7989fc d
|
o 2:8e03a72b6f83 f
|
o 1:391ee782c689 b
|
o 0:cb9a9f314b8b a
description is taken from rollup target commit
$ hg log --debug --rev 1
changeset: 1:391ee782c68930be438ccf4c6a403daedbfbffa5
phase: draft
parent: 0:cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
parent: -1:0000000000000000000000000000000000000000
manifest: 1:b5e112a3a8354e269b1524729f0918662d847c38
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files+: b e
extra: branch=default
extra: histedit_source=d2ae7f538514cd87c17547b0de4cea71fe1af9fb,ee283cb5f2d5955443f23a27b697a04339e9a39a
description:
b
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770 check saving last-message.txt
Sean Farley
tests: use TESTTMP instead of TESTDIR...
r20859 $ cat > $TESTTMP/abortfolding.py <<EOF
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770 > from mercurial import util
> def abortfolding(ui, repo, hooktype, **kwargs):
> ctx = repo[kwargs.get('node')]
> if set(ctx.files()) == set(['c', 'd', 'f']):
> return True # abort folding commit only
> ui.warn('allow non-folding commit\\n')
> EOF
$ cat > .hg/hgrc <<EOF
> [hooks]
Sean Farley
tests: use TESTTMP instead of TESTDIR...
r20859 > pretxncommit.abortfolding = python:$TESTTMP/abortfolding.py:abortfolding
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770 > EOF
Sean Farley
tests: use TESTTMP instead of TESTDIR...
r20859 $ cat > $TESTTMP/editor.sh << EOF
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770 > echo "==== before editing"
> cat \$1
> echo "===="
> echo "check saving last-message.txt" >> \$1
> EOF
$ rm -f .hg/last-message.txt
FUJIWARA Katsunori
memctx: calculate exact status being committed from specified files...
r23587 $ hg status --rev '8e03a72b6f83^1::c4a9eb7989fc'
A c
A d
A f
$ HGEDITOR="sh $TESTTMP/editor.sh" hg histedit 8e03a72b6f83 --commands - 2>&1 <<EOF
Mike Edgar
histedit: add "roll" command to fold commit data and drop message (issue4256)...
r22152 > pick 8e03a72b6f83 f
> fold c4a9eb7989fc d
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770 > EOF
allow non-folding commit
==== before editing
f
***
c
***
d
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'default'
FUJIWARA Katsunori
memctx: calculate exact status being committed from specified files...
r23587 HG: added c
HG: added d
HG: added f
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770 ====
transaction abort!
rollback completed
abort: pretxncommit.abortfolding hook failed
FUJIWARA Katsunori
memctx: calculate exact status being committed from specified files...
r23587 [255]
FUJIWARA Katsunori
histedit: save manually edited commit message into ".hg/last-message.txt"...
r20770
$ cat .hg/last-message.txt
f
***
c
***
d
check saving last-message.txt
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ cd ..
Martin von Zweigbergk
histedit: preserve initial author on fold (issue4296)...
r22147 $ rm -r r
folding preserves initial author
--------------------------------
$ initrepo
$ hg ci --user "someone else" --amend --quiet
tip before edit
$ hg log --rev .
changeset: 5:a00ad806cb55
tag: tip
user: someone else
date: Thu Jan 01 00:00:00 1970 +0000
summary: f
timeless
histedit: add progress support
r27451 $ hg --config progress.debug=1 --debug \
> histedit e860deea161a --commands - 2>&1 <<EOF | \
> egrep 'editing|unresolved'
Martin von Zweigbergk
histedit: preserve initial author on fold (issue4296)...
r22147 > pick e860deea161a e
> fold a00ad806cb55 f
> EOF
timeless
histedit: add progress support
r27451 editing: pick e860deea161a 4 e 1/2 changes (50.00%)
editing: fold a00ad806cb55 5 f 2/2 changes (100.00%)
Martin von Zweigbergk
histedit: preserve initial author on fold (issue4296)...
r22147
tip after edit
$ hg log --rev .
changeset: 4:698d4e8040a1
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
$ cd ..
$ rm -r r
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:
Pierre-Yves David
test: improve documentation of some histedit tests...
r19015 -------------------------------------------------
Mads Kiilerich
spelling: fixes from spell checker
r21024 folded content is dropped during a merge. The folded commit should properly disappear.
Pierre-Yves David
test: improve documentation of some histedit tests...
r19015
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 $ 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'
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 $ hg logt --graph
@ 3:251d831eeec5 +6
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 2:888f9082bf99 +5
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 1:617f94f13c0f +4
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 0:0189ba417d34 1+2+3
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 1 --commands - << EOF
Pierre-Yves David
histedit-test: replace obscure python script by a plain file...
r19016 > pick 617f94f13c0f 1 +4
> drop 888f9082bf99 2 +5
Pierre-Yves David
histedit: properly handle --continue on empty fold...
r19017 > fold 251d831eeec5 3 +6
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 > EOF
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 merging file
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging file! (edit, then use 'hg resolve --mark')
timeless
histedit: list action when intervention is required
r27629 Fix up the change (fold 251d831eeec5)
(hg histedit --continue to resume)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
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
? file.orig
$ hg resolve -l
U file
$ hg revert -r 'p1()' file
$ hg resolve --mark file
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
timeless
histedit: hook afterresolvedstates
r27627 continue: hg histedit --continue
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 $ hg histedit --continue
Durham Goode
histedit: convert fold/roll actions into a class...
r24771 251d831eeec5: empty changeset
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 saved backup bundle to $TESTTMP/*-backup.hg (glob)
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 $ hg logt --graph
@ 1:617f94f13c0f +4
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 0:0189ba417d34 1+2+3
Augie Fackler
histedit: don't crash if the result of fixing up a fold is empty
r17130
$ cd ..
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242
Pierre-Yves David
test: improve documentation of some histedit tests...
r19015
Test fold through dropped
-------------------------
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'
Martin Geisler
test-histedit-fold: remove unnecessary --template...
r19391 $ hg logt -G
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 @ 3:251d831eeec5 +6
|
o 2:888f9082bf99 +5
|
o 1:617f94f13c0f +4
|
o 0:0189ba417d34 1+2+3
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 1 --commands - << EOF
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 > pick 617f94f13c0f 1 +4
> drop 888f9082bf99 2 +5
> fold 251d831eeec5 3 +6
> EOF
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 merging file
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging file! (edit, then use 'hg resolve --mark')
timeless
histedit: list action when intervention is required
r27629 Fix up the change (fold 251d831eeec5)
(hg histedit --continue to resume)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 $ cat > file << EOF
> 1
> 2
> 3
> 4
> 5
> EOF
$ hg resolve --mark file
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
timeless
histedit: hook afterresolvedstates
r27627 continue: hg histedit --continue
Matt Mackall
checkunfinished: accommodate histedit quirk...
r19496 $ hg commit -m '+5.2'
Patrick Mezard
histedit: fix new nodes computation with --continue (issue3534)...
r17242 created new head
$ echo 6 >> file
$ HGEDITOR=cat hg histedit --continue
+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
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 saved backup bundle to $TESTTMP/fold-with-dropped/.hg/strip-backup/55c8d8dc79ce-4066cd98-backup.hg (glob)
saved backup bundle to $TESTTMP/fold-with-dropped/.hg/strip-backup/617f94f13c0f-a35700fc-backup.hg (glob)
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 $ hg logt -G
@ 1:10c647b2cdd5 +4
Pierre-Yves David
histedit-test: make test-fold more verbose...
r17687 |
Pierre-Yves David
test: use a lighter log style in histedit test...
r19014 o 0:0189ba417d34 1+2+3
Pierre-Yves David
histedit-test: make test-fold more verbose...
r17687
$ hg export tip
# HG changeset patch
# User test
# Date 0 0
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 # Thu Jan 01 00:00:00 1970 +0000
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 # Node ID 10c647b2cdd54db0603ecb99b2ff5ce66d5a5323
Pierre-Yves David
histedit-test: make test-fold more verbose...
r17687 # Parent 0189ba417d34df9dda55f88b637dcae9917b5964
+4
***
+5.2
***
+6
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 diff -r 0189ba417d34 -r 10c647b2cdd5 file
Pierre-Yves David
histedit-test: make test-fold more verbose...
r17687 --- 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 ..
Martin Geisler
histedit: use base for computing renames when folding (issue3729)...
r19392
Folding with initial rename (issue3729)
---------------------------------------
$ hg init fold-rename
$ cd fold-rename
$ echo a > a.txt
$ hg add a.txt
$ hg commit -m a
$ hg rename a.txt b.txt
$ hg commit -m rename
$ echo b >> b.txt
$ hg commit -m b
$ hg logt --follow b.txt
2:e0371e0426bc b
1:1c4f440a8085 rename
0:6c795aa153cb a
$ hg histedit 1c4f440a8085 --commands - 2>&1 << EOF | fixbundle
> pick 1c4f440a8085 rename
> fold e0371e0426bc b
> EOF
$ hg logt --follow b.txt
1:cf858d235c76 rename
0:6c795aa153cb a
$ cd ..
Pierre-Yves David
hook: protect commit hooks against stripping of temporary commit (issue4422)...
r23129
Folding with swapping
---------------------
This is an excuse to test hook with histedit temporary commit (issue4422)
$ hg init issue4422
$ cd issue4422
$ echo a > a.txt
$ hg add a.txt
$ hg commit -m a
$ echo b > b.txt
$ hg add b.txt
$ hg commit -m b
$ echo c > c.txt
$ hg add c.txt
$ hg commit -m c
$ hg logt
2:a1a953ffb4b0 c
1:199b6bb90248 b
0:6c795aa153cb a
Matt Harbison
tests: choose the proper environment variable style for the platform...
r23390 Setup the proper environment variable symbol for the platform, to be subbed
into the hook command.
#if windows
$ NODE="%HG_NODE%"
#else
$ NODE="\$HG_NODE"
#endif
$ hg histedit 6c795aa153cb --config hooks.commit="echo commit $NODE" --commands - 2>&1 << EOF | fixbundle
Pierre-Yves David
hook: protect commit hooks against stripping of temporary commit (issue4422)...
r23129 > pick 199b6bb90248 b
> fold a1a953ffb4b0 c
> pick 6c795aa153cb a
> EOF
commit 9599899f62c05f4377548c32bf1c9f1a39634b0c
$ hg logt
1:9599899f62c0 a
0:79b99e9c8e49 b
Matt Harbison
largefiles: ensure lfutil.getstandinmatcher() only matches standins...
r26025 $ echo "foo" > amended.txt
$ hg add amended.txt
$ hg ci -q --config extensions.largefiles= --amend -I amended.txt
Augie Fackler
histedit: use one editor when multiple folds happen in a row (issue3524) (BC)...
r26246 Test that folding multiple changes in a row doesn't show multiple
editors.
$ echo foo >> foo
$ hg add foo
$ hg ci -m foo1
$ echo foo >> foo
$ hg ci -m foo2
$ echo foo >> foo
$ hg ci -m foo3
$ hg logt
4:21679ff7675c foo3
3:b7389cc4d66e foo2
2:0e01aeef5fa8 foo1
1:578c7455730c a
0:79b99e9c8e49 b
Matt Harbison
test-histedit: $TESTTMP quoting fixes for Windows...
r27062 $ cat > "$TESTTMP/editor.sh" <<EOF
> echo ran editor >> "$TESTTMP/editorlog.txt"
> cat \$1 >> "$TESTTMP/editorlog.txt"
> echo END >> "$TESTTMP/editorlog.txt"
Augie Fackler
histedit: use one editor when multiple folds happen in a row (issue3524) (BC)...
r26246 > echo merged foos > \$1
> EOF
Matt Harbison
test-histedit: $TESTTMP quoting fixes for Windows...
r27062 $ HGEDITOR="sh \"$TESTTMP/editor.sh\"" hg histedit 1 --commands - 2>&1 <<EOF | fixbundle
Augie Fackler
histedit: use one editor when multiple folds happen in a row (issue3524) (BC)...
r26246 > pick 578c7455730c 1 a
> pick 0e01aeef5fa8 2 foo1
> fold b7389cc4d66e 3 foo2
> fold 21679ff7675c 4 foo3
> EOF
$ hg logt
2:e8bedbda72c1 merged foos
1:578c7455730c a
0:79b99e9c8e49 b
Editor should have run only once
$ cat $TESTTMP/editorlog.txt
ran editor
foo1
***
foo2
***
foo3
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: added foo
END
Pierre-Yves David
hook: protect commit hooks against stripping of temporary commit (issue4422)...
r23129 $ cd ..