run-tests: redefine --with-hg so it takes the 'hg' script to run.
- in parseargs(), check that --with-hg value is valid
- add handy --local option for "--with-hg=../hg"
- ensure that we always set PATH and PYTHONPATH (not just
when doing a temporary install)
- override any existing PYTHONPATH, so test success does not
depend on whatever happens to be in the caller's environment
- give tests a little more control by exporting $PYTHON to the
environment; needed by test-convert and test-mergetool when
they run hg with a stripped-down $PATH
Also, add a big comment explaining all the corner cases to test for the
next person who tries to modify this script.
adding file1
adding file2
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
# non-interactive merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
status:
M file2
C file1
file1:
1
changed
file2:
2
changed
# interactive merge
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
local changed file1 which remote deleted
use (c)hanged version or (d)elete? remote changed file2 which local deleted
use (c)hanged version or leave (d)eleted? 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
status:
file2: No such file or directory
C file1
file1:
1
changed
file2 does not exist
# interactive merge with bad input
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
local changed file1 which remote deleted
use (c)hanged version or (d)elete? unrecognized response
local changed file1 which remote deleted
use (c)hanged version or (d)elete? unrecognized response
local changed file1 which remote deleted
use (c)hanged version or (d)elete? remote changed file2 which local deleted
use (c)hanged version or leave (d)eleted? unrecognized response
remote changed file2 which local deleted
use (c)hanged version or leave (d)eleted? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
status:
M file2
R file1
file1 does not exist
file2:
2
changed
# interactive merge with not enough input
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
local changed file1 which remote deleted
use (c)hanged version or (d)elete? remote changed file2 which local deleted
use (c)hanged version or leave (d)eleted? abort: response expected
failed
status:
file2: No such file or directory
C file1
file1:
1
changed
file2 does not exist