##// END OF EJS Templates
show: use consistent (and possibly shorter) node lengths...
show: use consistent (and possibly shorter) node lengths `hg show` makes heavy use of shortest() to limit the length of the node hash. For the "stack" and "work" views, you are often looking at multiple lines of similar output for "lines" of work. It is visually appeasing for things to vertically align. A naive use of {shortest(node, N)} could result in variable length nodes and for the first character of the description to vary by a column or two. We implement a function to determine the longest shortest prefix for a set of revisions. The new function is used to determine the printed node length for all `hg show` views. .. feature:: show: use consistent node length in views Our previous shortest node length of 5 was arbitrarily chosen. shortest() already does the work of ensuring that a partial node isn't ambiguous with an integer revision, which is our primary risk of a collision for very short nodes. It should be safe to go with the shortest node possible. Existing code is also optimized to handle nodes as short as 4. So, we decrease the minimum hash length from 5 to 4. We also add a test demonstrating that prefix collisions increase the node length. .. feature:: show: decrease minimum displayed hash length from 5 to 4 Differential Revision: https://phab.mercurial-scm.org/D558

File last commit:

r33768:6c1a9fd8 default
r34192:e6b5e732 default
Show More
test-subrepo-missing.t
141 lines | 3.9 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')
FUJIWARA Katsunori
subrepo: use repo.pathto instead of util.pathto to simplify invocation...
r25769 $ hg st --subrepos --cwd $TESTTMP -R $TESTTMP/repo
Matt Harbison
test-subrepo: fix globs for Windows...
r25865 abort: invalid subrepository revision specifier in 'repo/.hgsubstate' line 2
Patrick Mezard
subrepo: do not traceback on .hgsubstate parsing errors...
r16596 [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
Matt Harbison
subrepo: precisely identify the missing subrepo spec file...
r24645 warning: subrepo spec file '.hgsub' not found
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
FUJIWARA Katsunori
subrepo: use repo.pathto instead of util.pathto to simplify invocation...
r25769 $ hg up 0 --cwd $TESTTMP -R $TESTTMP/repo
Matt Harbison
test-subrepo: fix globs for Windows...
r25865 warning: subrepo spec file 'repo/.hgsub' not found
warning: subrepo spec file 'repo/.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 Harbison
subrepo: precisely identify the missing subrepo spec file...
r24645 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
Matt Harbison
subrepo: precisely identify the missing subrepo spec file...
r24645 warning: subrepo spec file '.hgsub' not found
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
Simon Farnsworth
merge: always use other, not remote, in user prompts...
r29775 other [destination] changed .hgsubstate which local [working copy] deleted
Patrick Mezard
subrepo: handle missing subrepo spec file as removed...
r13017 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 >> $HGRCPATH << EOF
> [ui]
> logtemplate= {rev}:{node|short} {desc|firstline}
> [phases]
> publish=False
Durham Goode
obsolete: update tests to use obsolete options...
r22955 > [experimental]
Boris Feld
test: update evolution config...
r33768 > stabilization=createmarkers
Angel Ezquerra
subrepo: make it possible to update to hidden subrepo revisions...
r20319 > 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 .
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 revision 102a90ea7b4a in subrepository "subrepo" is hidden
Angel Ezquerra
subrepo: make it possible to update to hidden subrepo revisions...
r20319 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Harbison
subrepo: propagate the --hidden option to hg subrepositories...
r24877 check that --hidden is propagated to the subrepo
$ hg -R subrepo up tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg ci -m 'commit with amended subrepo'
$ echo bar > subrepo/a
$ hg -R subrepo ci --amend -m "amend a (again)"
$ hg --hidden cat subrepo/a
foo
Matt Harbison
verify: check the subrepository references in .hgsubstate...
r25591 verify will warn if locked-in subrepo revisions are hidden or missing
$ hg ci -m "amended subrepo (again)"
strip: strip obsmarkers exclusive to the stripped changeset...
r32629 $ hg --config extensions.strip= --hidden strip -R subrepo -qr 'tip' --config devel.strip-obsmarkers=no
Matt Harbison
verify: check the subrepository references in .hgsubstate...
r25591 $ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 5 changesets, 5 total revisions
checking subrepo links
subrepo 'subrepo' is hidden in revision a66de08943b6
subrepo 'subrepo' is hidden in revision 674d05939c1e
subrepo 'subrepo' not found in revision a7d05d9055a4
Matt Harbison
verify: don't init subrepo when missing one is referenced (issue5128) (API)...
r29021 verifying shouldn't init a new subrepo if the reference doesn't exist
$ mv subrepo b
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 5 changesets, 5 total revisions
checking subrepo links
0: repository $TESTTMP/repo/subrepo not found (glob)
1: repository $TESTTMP/repo/subrepo not found (glob)
3: repository $TESTTMP/repo/subrepo not found (glob)
4: repository $TESTTMP/repo/subrepo not found (glob)
$ ls
b
$ mv b subrepo
Angel Ezquerra
subrepo: make it possible to update to hidden subrepo revisions...
r20319 $ cd ..