##// END OF EJS Templates
tests: fix glob pattern for dynamic timer alignment...
tests: fix glob pattern for dynamic timer alignment The number of space characters varies depending on the number of digits of the timer, making some tests fail on slow machines in an unintended way: ```diff --- /build/mercurial-6.1/tests/test-merge-halt.t +++ /build/mercurial-6.1/tests/test-merge-halt.t.err @@ -210,6 +210,6 @@ merge halted after failed merge (see hg resolve) [240] $ hg shelve --list - default (* ago) changes to: foo (glob) + default (11s ago) changes to: foo $ hg unshelve --abort unshelve of 'default' aborted ERROR: test-merge-halt.t output changed ``` Differential Revision: https://phab.mercurial-scm.org/D12381

File last commit:

r49825:f64bbba2 default
r49825:f64bbba2 default
Show More
test-merge-halt.t
215 lines | 4.7 KiB | text/troff | Tads3Lexer
/ tests / test-merge-halt.t
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
> [phases]
> publish=False
> [merge]
> EOF
$ hg init repo
$ cd repo
$ echo a > a
$ echo b > b
$ hg commit -qAm ab
$ echo c >> a
$ echo c >> b
$ hg commit -qAm c
$ hg up -q ".^"
$ echo d >> a
$ echo d >> b
$ hg commit -qAm d
Testing on-failure=continue
$ echo on-failure=continue >> $HGRCPATH
$ hg rebase -s 1 -d 2 --tool false
rebasing 1:1f28a51c3c9b "c"
merging a
Martin von Zweigbergk
mergestate: merge `preresolve()` into `resolve()`...
r49256 merging a failed!
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680 merging b
merging b failed!
Daniel Ploch
error: unify the error message formats for 'rebase' and 'unshelve'...
r45710 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680
$ hg resolve --list
U a
U b
$ hg rebase --abort
rebase aborted
Testing on-failure=halt
$ echo on-failure=halt >> $HGRCPATH
$ hg rebase -s 1 -d 2 --tool false
rebasing 1:1f28a51c3c9b "c"
merging a
merging a failed!
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680
$ hg resolve --list
U a
U b
$ hg rebase --abort
rebase aborted
Testing on-failure=prompt
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885 $ cat <<EOS >> $HGRCPATH
> [merge]
> on-failure=prompt
> [ui]
> interactive=1
> EOS
$ cat <<EOS | hg rebase -s 1 -d 2 --tool false
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680 > y
> n
> EOS
rebasing 1:1f28a51c3c9b "c"
merging a
merging a failed!
Ryan McElroy
merge: allow user to halt merge on merge-tool failures...
r34798 continue merge operation (yn)? y
Martin von Zweigbergk
mergestate: merge `preresolve()` into `resolve()`...
r49256 merging b
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680 merging b failed!
Ryan McElroy
merge: allow user to halt merge on merge-tool failures...
r34798 continue merge operation (yn)? n
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Ryan McElroy
merge: add tests to show current behavior on failed filemerges...
r34680
$ hg resolve --list
U a
U b
$ hg rebase --abort
rebase aborted
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885 Check that successful tool with failed post-check halts the merge
$ cat <<EOS >> $HGRCPATH
> [merge-tools]
> true.check=changed
> EOS
$ cat <<EOS | hg rebase -s 1 -d 2 --tool true
> y
> n
> n
> EOS
rebasing 1:1f28a51c3c9b "c"
merging a
output file a appears unchanged
was merge successful (yn)? y
Martin von Zweigbergk
mergestate: merge `preresolve()` into `resolve()`...
r49256 merging b
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885 output file b appears unchanged
was merge successful (yn)? n
merging b failed!
continue merge operation (yn)? n
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885
$ hg resolve --list
R a
U b
$ hg rebase --abort
rebase aborted
Check that conflicts with conflict check also halts the merge
$ cat <<EOS >> $HGRCPATH
> [merge-tools]
> true.check=conflicts
> true.premerge=keep
> [merge]
> on-failure=halt
> EOS
$ hg rebase -s 1 -d 2 --tool true
rebasing 1:1f28a51c3c9b "c"
merging a
merging a failed!
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885
$ hg resolve --list
U a
U b
$ hg rebase --abort
rebase aborted
Check that always-prompt also can halt the merge
$ cat <<EOS | hg rebase -s 1 -d 2 --tool true --config merge-tools.true.check=prompt
> y
> n
> EOS
rebasing 1:1f28a51c3c9b "c"
merging a
Martin von Zweigbergk
mergestate: merge `preresolve()` into `resolve()`...
r49256 was merge of 'a' successful (yn)? y
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885 merging b
was merge of 'b' successful (yn)? n
merging b failed!
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885
$ hg resolve --list
R a
U b
$ hg rebase --abort
rebase aborted
Check that successful tool otherwise allows the merge to continue
$ hg rebase -s 1 -d 2 --tool echo --keep --config merge-tools.echo.premerge=keep
rebasing 1:1f28a51c3c9b "c"
merging a
Martin von Zweigbergk
mergestate: merge `preresolve()` into `resolve()`...
r49256 $TESTTMP/repo/a *a~base* *a~other* (glob)
Ryan McElroy
merge: additional test cases to show merge-halting behavior...
r34885 merging b
$TESTTMP/repo/b *b~base* *b~other* (glob)
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091
Check that unshelve isn't broken by halting the merge
$ cat <<EOS >> $HGRCPATH
> [extensions]
> shelve =
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 > [merge-tools]
> false.check=conflicts
> false.premerge=false
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091 > EOS
$ echo foo > shelve_file1
$ echo foo > shelve_file2
$ hg ci -qAm foo
$ echo bar >> shelve_file1
$ echo bar >> shelve_file2
$ hg shelve --list
$ hg shelve
shelved as default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo baz >> shelve_file1
$ echo baz >> shelve_file2
$ hg ci -m baz
$ hg unshelve --tool false --config merge-tools.false.premerge=keep
unshelving change 'default'
rebasing shelved changes
merging shelve_file1
merging shelve_file1 failed!
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091 [240]
$ hg status --config commands.status.verbose=True
M shelve_file1
M shelve_file2
? shelve_file1.orig
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 # The repository is in an unfinished *unshelve* state.
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091
# Unresolved merge conflicts:
#
# shelve_file1
# shelve_file2
#
# To mark files as resolved: hg resolve --mark FILE
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 # To continue: hg unshelve --continue
# To abort: hg unshelve --abort
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091
$ hg resolve --tool false --all --re-merge
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 merging shelve_file1
merging shelve_file1 failed!
merge halted after failed merge (see hg resolve)
[240]
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091 $ hg shelve --list
pacien
tests: fix glob pattern for dynamic timer alignment...
r49825 default (*s ago) * changes to: foo (glob)
Kyle Lippincott
merge-halt: demonstrate unshelve issue with merge.on-failure=halt...
r49091 $ hg unshelve --abort
Kyle Lippincott
merge-halt: fix issue with merge.on-failure=halt breaking unshelve...
r49092 unshelve of 'default' aborted