Mercurial > hg
view tests/test-tags @ 10301:56b50194617f
templates: rename `Last change' column in hgwebdir repository list.
This patch changes column headers in the templates that previously
said `Last change' to `Last modified'. Neither code nor functionality
are changed other than that.
For some time now, I have been annoyed by the fact the `Last change'
column didn't list the age of the youngest changeset in the
repository, or at least tip. It just occurred to me that this is
because the wording is slightly misleading; what the column in fact
lists is when the repository was last *modified*, that is, when
changesets was last added or removed from it.
The word `change' can be understood as referring to the changeset
itself. Using `changed' would be ever so slightly less
amigous. However, the standard nomenclature in this case is
`modification date' and `Last modified', which is incidentally entirely
unambigous. Hence, `Last modified' is the wording used.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Sun, 24 Jan 2010 20:51:53 +0100 |
parents | 9ff178e7b627 |
children |
line wrap: on
line source
#!/bin/sh cacheexists() { [ -f .hg/tags.cache ] && echo "tag cache exists" || echo "no tag cache" } # XXX need to test that the tag cache works when we strip an old head # and add a new one rooted off non-tip: i.e. node and rev of tip are the # same, but stuff has changed behind tip. echo "% setup" mkdir t cd t hg init cacheexists hg id cacheexists echo a > a hg add a hg commit -m "test" hg co hg identify cacheexists echo "% create local tag with long name" T=`hg identify --debug --id` hg tag -l "This is a local tag with a really long name!" hg tags rm .hg/localtags echo "% create a tag behind hg's back" echo "$T first" > .hgtags cat .hgtags hg add .hgtags hg commit -m "add tags" hg tags hg identify # repeat with cold tag cache echo "% identify with cold cache" rm -f .hg/tags.cache hg identify # and again, but now unable to write tag cache echo "% identify with unwritable cache" rm -f .hg/tags.cache chmod 555 .hg hg identify chmod 755 .hg echo "% create a branch" echo bb > a hg status hg identify hg co first hg id hg -v id hg status echo 1 > b hg add b hg commit -m "branch" hg id echo "% merge the two heads" hg merge 1 hg id hg status hg commit -m "merge" echo "% create fake head, make sure tag not visible afterwards" cp .hgtags tags hg tag last hg rm .hgtags hg commit -m "remove" mv tags .hgtags hg add .hgtags hg commit -m "readd" hg tags echo "% add invalid tags" echo "spam" >> .hgtags echo >> .hgtags echo "foo bar" >> .hgtags echo "$T invalid" | sed "s/..../a5a5/" >> .hg/localtags echo "committing .hgtags:" cat .hgtags hg commit -m "tags" echo "% report tag parse error on other head" hg up 3 echo 'x y' >> .hgtags hg commit -m "head" hg tags hg tip echo "% test tag precedence rules" cd .. hg init t2 cd t2 echo foo > foo hg add foo hg ci -m 'add foo' # rev 0 hg tag bar # rev 1 echo >> foo hg ci -m 'change foo 1' # rev 2 hg up -C 1 hg tag -r 1 -f bar # rev 3 hg up -C 1 echo >> foo hg ci -m 'change foo 2' # rev 4 hg tags hg tags # repeat in case of cache effects dumptags() { rev=$1 echo "rev $rev: .hgtags:" hg cat -r$rev .hgtags } echo "% detailed dump of tag info" echo "heads:" hg heads -q # expect 4, 3, 2 dumptags 2 dumptags 3 dumptags 4 echo ".hg/tags.cache:" [ -f .hg/tags.cache ] && cat .hg/tags.cache || echo "no such file" echo "% test tag removal" hg tag --remove bar # rev 5 hg tip -vp hg tags hg tags # again, try to expose cache bugs echo '% remove nonexistent tag' hg tag --remove foobar hg tip echo "% rollback undoes tag operation" hg rollback # destroy rev 5 (restore bar) hg tags hg tags echo "% test tag rank" cd .. hg init t3 cd t3 echo foo > foo hg add foo hg ci -m 'add foo' # rev 0 hg tag -f bar # rev 1 bar -> 0 hg tag -f bar # rev 2 bar -> 1 hg tag -fr 0 bar # rev 3 bar -> 0 hg tag -fr 1 bar # rev 4 bar -> 1 hg tag -fr 0 bar # rev 5 bar -> 0 hg tags hg co 3 echo barbar > foo hg ci -m 'change foo' # rev 6 hg tags echo "% don't allow moving tag without -f" hg tag -r 3 bar hg tags echo "% strip 1: expose an old head" hg --config extensions.mq= strip 5 > /dev/null 2>&1 hg tags # partly stale cache hg tags # up-to-date cache echo "% strip 2: destroy whole branch, no old head exposed" hg --config extensions.mq= strip 4 > /dev/null 2>&1 hg tags # partly stale rm -f .hg/tags.cache hg tags # cold cache echo "% test tag rank with 3 heads" cd .. hg init t4 cd t4 echo foo > foo hg add hg ci -m 'add foo' # rev 0 hg tag bar # rev 1 bar -> 0 hg tag -f bar # rev 2 bar -> 1 hg up -qC 0 hg tag -fr 2 bar # rev 3 bar -> 2 hg tags hg up -qC 0 hg tag -m 'retag rev 0' -fr 0 bar # rev 4 bar -> 0, but bar stays at 2 echo "% bar should still point to rev 2" hg tags echo "% remove local as global and global as local" # test that removing global/local tags does not get confused when trying # to remove a tag of type X which actually only exists as a type Y cd .. hg init t5 cd t5 echo foo > foo hg add hg ci -m 'add foo' # rev 0 hg tag -r 0 -l localtag hg tag --remove localtag hg tag -r 0 globaltag hg tag --remove -l globaltag hg tags -v exit 0