##// END OF EJS Templates
identify: add template support...
identify: add template support This is based on a patch proposed last year by Mathias De Maré[1], with a few changes. - Tags and bookmarks are now formatted lists, for more flexible queries. - The templater is populated whether or not [-nibtB] is specified. (Plain output is unchanged.) This seems more consistent with other templated commands. - The 'id' property is a string, instead of a list. - The parents of 'wdir()' have their own list of attributes. I left 'id' as a string because it seems very useful for generating version info. It's also a bit strange because the value and meaning changes depending on whether or not --debug is passed (short vs full hash), whether the revision is a merge or not (one hash or two, separated by a '+'), the working directory or not (node vs p1node), and local or not (remote defaults to tip, and never has '+'). The equivalent string built with {rev} seems much less useful, and I couldn't think of a reasonable name, so I left it out. The discussion seemed to be pointing towards having a list of nodes, with more than one entry for a merge. It seems simpler to give the nodes a name, and use {node} for the actual commit probed, especially now that there is a virtual node for 'wdir()'. Yuya mentioned using fm.nested() in that thread, so I did for the parent nodes. I'm not sure if the plan is to fill in all of the context attributes in these items, or if these nested items should simply be made {p1node} and {p1rev}. I used ':' as the tag separator for consistency with {tags} in the log templater. Likewise, bookmarks are separated by a space for consistency with the corresponding log template. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-August/087039.html

File last commit:

r32397:2dac9d6a default
r33051:15a79ac8 default
Show More
test-casefolding.t
256 lines | 4.7 KiB | text/troff | Tads3Lexer
/ tests / test-casefolding.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require icasefs
Brodie Rao
tests: unify test-casefolding
r12603
Mads Kiilerich
update: don't clobber untracked files with wrong casing
r15538 $ hg debugfs | grep 'case-sensitive:'
case-sensitive: no
Brodie Rao
tests: unify test-casefolding
r12603 test file addition with bad case
$ hg init repo1
$ cd repo1
$ echo a > a
$ hg add A
$ hg st
A a
$ hg ci -m adda
$ hg manifest
a
$ cd ..
test case collision on rename (issue750)
$ hg init repo2
$ cd repo2
$ echo a > a
$ hg --debug ci -Am adda
adding a
Matt Harbison
tests: fix test-casefolding.t output...
r23779 committing files:
Brodie Rao
tests: unify test-casefolding
r12603 a
Matt Harbison
tests: fix test-casefolding.t output...
r23779 committing manifest
committing changelog
Matt Harbison
test-casefolding: sync with latest code changes...
r32298 updating the branch cache
Brodie Rao
tests: unify test-casefolding
r12603 committed changeset 0:07f4944404050f47db2e5c5071e0e84e7a27bba9
Matt Mackall
tests: remove case-folding false positive
r16288
Case-changing renames should work:
Brodie Rao
tests: unify test-casefolding
r12603
Matt Mackall
tests: remove case-folding false positive
r16288 $ hg mv a A
$ hg mv A a
Brodie Rao
tests: unify test-casefolding
r12603 $ hg st
Patrick Mezard
dirstate: preserve path components case on renames (issue3402)...
r16542
Martin von Zweigbergk
dirstate.walk: don't report same file stat multiple times...
r24621 addremove after case-changing rename has no effect (issue4590)
$ hg mv a A
$ hg addremove
recording removal of a as rename to A (100% similar)
$ hg revert --all
forgetting A
undeleting a
Patrick Mezard
dirstate: preserve path components case on renames (issue3402)...
r16542 test changing case of path components
$ mkdir D
$ echo b > D/b
$ hg ci -Am addb D/b
$ hg mv D/b d/b
Simon Farnsworth
tests: fix test-casefolding.t...
r30223 D/b: not overwriting - file already committed
(hg rename --force to replace the file by recording a rename)
Patrick Mezard
dirstate: preserve path components case on renames (issue3402)...
r16542 $ hg mv D/b d/c
$ hg st
A D/c
R D/b
$ mv D temp
$ mv temp d
$ hg st
A D/c
R D/b
$ hg revert -aq
$ rm d/c
$ echo c > D/c
$ hg add D/c
$ hg st
A D/c
$ hg ci -m addc D/c
$ hg mv d/b d/e
$ hg st
A D/e
R D/b
$ hg revert -aq
$ rm d/e
$ hg mv d/b D/B
$ hg st
A D/B
R D/b
Brodie Rao
tests: unify test-casefolding
r12603 $ cd ..
test case collision between revisions (issue912)
$ hg init repo3
$ cd repo3
$ echo a > a
$ hg ci -Am adda
adding a
$ hg rm a
$ hg ci -Am removea
$ echo A > A
on linux hfs keeps the old case stored, force it
$ mv a aa
$ mv aa A
$ hg ci -Am addA
adding A
used to fail under case insensitive fs
$ hg up -C 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg up -C
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Mads Kiilerich
update: don't clobber untracked files with wrong casing
r15538
no clobbering of untracked files with wrong casing
$ hg up -r null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo gold > a
$ hg up
Matt Mackall
merge: fix unknown file merge detection for case-folding systems...
r16284 A: untracked file differs
Jordi Gutiérrez Hermoso
merge: report all files in _checkunknown...
r15894 abort: untracked files in working directory differ from files in requested revision
Mads Kiilerich
update: don't clobber untracked files with wrong casing
r15538 [255]
$ cat a
gold
FUJIWARA Katsunori
largefiles: check existence of the file with case awareness of the filesystem...
r19160 $ rm a
test that normal file in different case on target context is not
unlinked by largefiles extension.
$ cat >> .hg/hgrc <<EOF
> [extensions]
> largefiles=
> EOF
$ hg update -q -C 1
$ hg status -A
$ echo 'A as largefiles' > A
$ hg add --large A
$ hg commit -m '#3'
created new head
$ hg manifest -r 3
.hglf/A
$ hg manifest -r 0
a
$ hg update -q -C 0
$ hg status -A
C a
FUJIWARA Katsunori
largefiles: check unknown files with case awareness of the filesystem...
r19161 $ hg update -q -C 3
$ hg update -q 0
Mads Kiilerich
update: don't clobber untracked files with wrong casing
r15538
Matt Harbison
dirstate: ensure mv source is marked deleted when walking icasefs (issue4760)...
r25877 $ hg up -C -r 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg mv A a
$ hg diff -g > rename.diff
$ hg ci -m 'A -> a'
$ hg up -q '.^'
$ hg import rename.diff -m "import rename A -> a"
applying rename.diff
$ hg st
? rename.diff
$ hg files
a
$ find * | sort
a
rename.diff
$ rm rename.diff
Brodie Rao
tests: unify test-casefolding
r12603 $ cd ..
FUJIWARA Katsunori
dirstate: avoid normalizing letter case on icasefs for exact match (issue3340)...
r16313
FUJIWARA Katsunori
dirstate: fix some problems for recursive case normalization (issue3342)...
r16323 issue 3342: file in nested directory causes unexpected abort
$ hg init issue3342
$ cd issue3342
$ mkdir -p a/B/c/D
$ echo e > a/B/c/D/e
$ hg add a/B/c/D/e
Matt Harbison
revert: restore the ability to revert across case only renames (issue4481)...
r24857 $ hg ci -m 'add e'
issue 4481: revert across case only renames
$ hg mv a/B/c/D/e a/B/c/d/E
$ hg ci -m "uppercase E"
$ echo 'foo' > a/B/c/D/E
$ hg ci -m 'e content change'
$ hg revert --all -r 0
Matt Mackall
tests: fix backslashes in test-casefolding
r24865 removing a/B/c/D/E (glob)
adding a/B/c/D/e (glob)
Matt Harbison
revert: restore the ability to revert across case only renames (issue4481)...
r24857 $ find * | sort
a
a/B
a/B/c
a/B/c/D
a/B/c/D/e
a/B/c/D/e.orig
FUJIWARA Katsunori
dirstate: fix some problems for recursive case normalization (issue3342)...
r16323
$ cd ..
FUJIWARA Katsunori
dirstate: avoid normalizing letter case on icasefs for exact match (issue3340)...
r16313 issue 3340: mq does not handle case changes correctly
in addition to reported case, 'hg qrefresh' is also tested against
case changes.
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init issue3340
$ cd issue3340
$ echo a > mIxEdCaSe
$ hg add mIxEdCaSe
$ hg commit -m '#0'
$ hg rename mIxEdCaSe tmp
$ hg rename tmp MiXeDcAsE
$ hg status -A
A MiXeDcAsE
mIxEdCaSe
R mIxEdCaSe
$ hg qnew changecase
$ hg status -A
C MiXeDcAsE
$ hg qpop -a
popping changecase
patch queue now empty
$ hg qnew refresh-casechange
$ hg status -A
C mIxEdCaSe
$ hg rename mIxEdCaSe tmp
$ hg rename tmp MiXeDcAsE
$ hg status -A
A MiXeDcAsE
mIxEdCaSe
R mIxEdCaSe
$ hg qrefresh
$ hg status -A
C MiXeDcAsE
Durham Goode
mq: fix qrefresh case sensitivity (issue3271)...
r17888 $ hg qpop -a
popping refresh-casechange
patch queue now empty
$ hg qnew refresh-pattern
$ hg status
$ echo A > A
$ hg add
adding A
$ hg qrefresh a # issue 3271, qrefresh with file handled case wrong
$ hg status # empty status means the qrefresh worked
Augie Fackler
test-casefolding.t: demonstrate a bug with HFS+ ignoring some codepoints
r23595 #if osx
We assume anyone running the tests on a case-insensitive volume on OS
X will be using HFS+. If that's not true, this test will fail.
$ rm A
>>> open(u'a\u200c'.encode('utf-8'), 'w').write('unicode is fun')
$ hg status
M A
Augie Fackler
darwin: omit ignorable codepoints when normcase()ing a file path...
r23597
Augie Fackler
test-casefolding.t: demonstrate a bug with HFS+ ignoring some codepoints
r23595 #endif
Augie Fackler
darwin: omit ignorable codepoints when normcase()ing a file path...
r23597
FUJIWARA Katsunori
dirstate: avoid normalizing letter case on icasefs for exact match (issue3340)...
r16313 $ cd ..