##// END OF EJS Templates
largefiles: move "updatestandin" invocation to "hg.updaterepo" wrapper...
largefiles: move "updatestandin" invocation to "hg.updaterepo" wrapper Code paths below expect "hg.updaterepo" (or "hg.update" using it) to execute linear merging: - "update" in commands - "postincoming" in commands, used for: - "hg pull --update" - "hg unbundle --update" - "hgsubrepo.get" in subrepo For linear merging with largefiles, standins should be updated according to (possibly dirty) largefiles before "merge.update" invocation to detect conflicts correctly. Before this patch, only the "update" command can execute linear merging correctly, because largefiles extension takes care of only it. This patch moves "updatestandin" invocation from "overrideupdate" ("hg update" wrapper) to "_hgupdaterepo" ("hg.updaterepo" wrapper) to execute linear merging in "hg.updaterepo" correctly. This is also a preparation to centralize the logic of updating largefiles in the working directory into the function wrapping "merge.update" in the subsequent patch.

File last commit:

r20319:427d672c stable
r22287:f3ac9677 default
Show More
test-subrepo-missing.t
102 lines | 2.5 KiB | text/troff | Tads3Lexer
/ tests / test-subrepo-missing.t
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 $ hg init repo
$ cd repo
$ hg init subrepo
$ echo a > subrepo/a
$ hg -R subrepo ci -Am adda
adding a
$ echo 'subrepo = subrepo' > .hgsub
$ hg ci -Am addsubrepo
adding .hgsub
$ echo b > subrepo/b
$ hg -R subrepo ci -Am addb
adding b
$ hg ci -m updatedsub
Patrick Mezard
subrepo: ignore blank lines in .hgsubstate (issue3424)...
r16595 ignore blanklines in .hgsubstate
>>> file('.hgsubstate', 'wb').write('\n\n \t \n \n')
$ hg st --subrepos
M .hgsubstate
$ hg revert -qC .hgsubstate
Patrick Mezard
subrepo: do not traceback on .hgsubstate parsing errors...
r16596 abort more gracefully on .hgsubstate parsing error
$ cp .hgsubstate .hgsubstate.old
>>> file('.hgsubstate', 'wb').write('\ninvalid')
$ hg st --subrepos
abort: invalid subrepository revision specifier in .hgsubstate line 2
[255]
$ mv .hgsubstate.old .hgsubstate
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 delete .hgsub and revert it
$ rm .hgsub
$ hg revert .hgsub
warning: subrepo spec file .hgsub not found
Matt Mackall
subrepo: use working copy of .hgsub to filter status (issue2901)
r14870 warning: subrepo spec file .hgsub not found
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017
delete .hgsubstate and revert it
$ rm .hgsubstate
$ hg revert .hgsubstate
delete .hgsub and update
$ rm .hgsub
$ hg up 0
warning: subrepo spec file .hgsub not found
Matt Mackall
subrepo: use working copy of .hgsub to filter status (issue2901)
r14870 warning: subrepo spec file .hgsub not found
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg st
Matt Mackall
subrepo: use working copy of .hgsub to filter status (issue2901)
r14870 warning: subrepo spec file .hgsub not found
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 ! .hgsub
$ ls subrepo
a
delete .hgsubstate and update
$ hg up -C
warning: subrepo spec file .hgsub not found
Matt Mackall
subrepo: use working copy of .hgsub to filter status (issue2901)
r14870 warning: subrepo spec file .hgsub not found
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm .hgsubstate
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg up 0
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 remote changed .hgsubstate which local deleted
use (c)hanged version or leave (d)eleted? c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg st
$ ls subrepo
a
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Angel Ezquerra
subrepo: make it possible to update to hidden subrepo revisions...
r20319 Enable obsolete
$ cat > ${TESTTMP}/obs.py << EOF
> import mercurial.obsolete
> mercurial.obsolete._enabled = True
> EOF
$ cat >> $HGRCPATH << EOF
> [ui]
> logtemplate= {rev}:{node|short} {desc|firstline}
> [phases]
> publish=False
> [extensions]'
> obs=${TESTTMP}/obs.py
> EOF
check that we can update parent repo with missing (amended) subrepo revision
$ hg up --repository subrepo -r tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg ci -m "updated subrepo to tip"
created new head
$ cd subrepo
$ hg update -r tip
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo foo > a
$ hg commit --amend -m "addb (amended)"
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..
Angel Ezquerra
subrepo: make it possible to update to hidden subrepo revisions...
r20319 $ hg update --clean .
revision 102a90ea7b4a in subrepo subrepo is hidden
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..