##// END OF EJS Templates
tests: mark tests that fail when using chg as #require no-chg...
tests: mark tests that fail when using chg as #require no-chg As far as I can tell, most of these failures are due to using $HGPORT, which it seems chg might be using itself? I don't know enough to debug these failures to fix them properly. Differential Revision: https://phab.mercurial-scm.org/D3562

File last commit:

r35063:02845f74 stable
r38041:538e850a default
Show More
test-merge-subrepos.t
139 lines | 3.4 KiB | text/troff | Tads3Lexer
/ tests / test-merge-subrepos.t
Oleg Stepanov
Do not allow merging with uncommitted changes in a subrepo
r13437 $ hg init
$ echo a > a
$ hg ci -qAm 'add a'
$ hg init subrepo
$ echo 'subrepo = http://example.net/libfoo' > .hgsub
$ hg ci -qAm 'added subrepo'
$ hg up -qC 0
$ echo ax > a
$ hg ci -m 'changed a'
created new head
$ hg up -qC 1
$ cd subrepo
$ echo b > b
$ hg add b
$ cd ..
Should fail, since there are added files to subrepo:
$ hg merge
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "subrepo"
Oleg Stepanov
Do not allow merging with uncommitted changes in a subrepo
r13437 [255]
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
Deleted files trigger a '+' marker in top level repos. Deleted files are also
noticed by `update --check` in the top level repo.
$ hg ci -Sqm 'add b'
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 $ echo change > subrepo/b
$ hg ci -Sm 'change b'
committing subrepository subrepo
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 $ rm a
$ hg id
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 9bfe45a197d7+ tip
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 $ hg sum
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 parent: 4:9bfe45a197d7 tip
change b
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 branch: default
commit: 1 deleted (clean)
update: 1 new changesets, 2 branch heads (merge)
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 phases: 5 draft
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
$ hg up --check -r '.^'
abort: uncommitted changes
[255]
$ hg st -S
! a
$ hg up -Cq .
Test that dirty is consistent through subrepos
$ rm subrepo/b
Matt Harbison
subrepo: consider the parent repo dirty when a file is missing...
r33364 A deleted subrepo file is flagged as dirty, like the top level repo
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 $ hg id --config extensions.blackbox= --config blackbox.dirty=True
Matt Harbison
subrepo: consider the parent repo dirty when a file is missing...
r33364 9bfe45a197d7+ tip
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 $ cat .hg/blackbox.log
Saurabh Singh
test-merge-subrepos: make test compatible with chg...
r34451 * @9bfe45a197d7b0ab09bf287729dd57e9619c9da5+ (*)> serve --cmdserver chgunix * (glob) (chg !)
Yuya Nishihara
dispatch: verify result of early command parsing...
r35063 * @9bfe45a197d7b0ab09bf287729dd57e9619c9da5+ (*)> id --config *extensions.blackbox=* --config *blackbox.dirty=True* (glob)
Matt Harbison
subrepo: consider the parent repo dirty when a file is missing...
r33364 * @9bfe45a197d7b0ab09bf287729dd57e9619c9da5+ (*)> id --config *extensions.blackbox=* --config *blackbox.dirty=True* exited 0 * (glob)
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
TODO: a deleted file should be listed as such, like the top level repo
$ hg sum
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 parent: 4:9bfe45a197d7 tip
change b
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 branch: default
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 phases: 5 draft
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
Modified subrepo files are noticed by `update --check` and `summary`
$ echo mod > subrepo/b
$ hg st -S
M subrepo/b
$ hg up -r '.^' --check
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "subrepo"
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 [255]
$ hg sum
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 parent: 4:9bfe45a197d7 tip
change b
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 branch: default
commit: 1 subrepos
update: 1 new changesets, 2 branch heads (merge)
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 phases: 5 draft
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
TODO: why is -R needed here? If it's because the subrepo is treated as a
discrete unit, then this should probably warn or something.
$ hg revert -R subrepo --no-backup subrepo/b -r .
$ rm subrepo/b
$ hg st -S
! subrepo/b
Matt Harbison
subrepo: consider the parent repo dirty when a file is missing...
r33364 `hg update --check` notices a subrepo with a missing file, like it notices a
missing file in the top level repo.
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
Matt Harbison
subrepo: consider the parent repo dirty when a file is missing...
r33364 $ hg up -r '.^' --check
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "subrepo"
Matt Harbison
subrepo: consider the parent repo dirty when a file is missing...
r33364 [255]
$ hg up -r '.^' --config ui.interactive=True << EOF
Matt Harbison
test-subrepo: demonstrate a status problem when merge deletes a file...
r33366 > d
Matt Harbison
tests: tweak the subrepo dirty state tests...
r33359 > EOF
other [destination] changed b which local [working copy] deleted
Matt Harbison
test-subrepo: demonstrate a status problem when merge deletes a file...
r33366 use (c)hanged version, leave (d)eleted, or leave (u)nresolved? d
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Harbison
test-subrepo: demonstrate a status problem when merge deletes a file...
r33366 XXX: There's a difference between wdir() and '.', so there should be a status.
`hg files -S` from the top is also missing 'subrepo/b'.
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 $ hg st -S
Matt Harbison
test-subrepo: demonstrate a status problem when merge deletes a file...
r33366 $ hg st -R subrepo
$ hg files -R subrepo
[1]
$ hg files -R subrepo -r '.'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 subrepo/b
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193
$ hg bookmark -r tip @other
$ echo xyz > subrepo/c
$ hg ci -SAm 'add c'
adding subrepo/c
committing subrepository subrepo
created new head
$ rm subrepo/c
Merge sees deleted subrepo files as an uncommitted change
$ hg merge @other
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "subrepo"
Matt Harbison
tests: demonstrate inconsistencies with dirty state in various commands...
r33193 [255]