test-tags.t
935 lines
| 31.2 KiB
| text/troff
|
Tads3Lexer
/ tests / test-tags.t
Gregory Szorc
|
r24706 | setup | ||
$ cat >> $HGRCPATH << EOF | ||||
> [extensions] | ||||
> blackbox= | ||||
> mock=$TESTDIR/mockblackbox.py | ||||
Yuya Nishihara
|
r41028 | > [blackbox] | ||
> track = command, commandfinish, tagscache | ||||
Gregory Szorc
|
r24706 | > EOF | ||
Matt Mackall
|
r11744 | Helper functions: | ||
$ cacheexists() { | ||||
Gregory Szorc
|
r24762 | > [ -f .hg/cache/tags2-visible ] && echo "tag cache exists" || echo "no tag cache" | ||
Matt Mackall
|
r11744 | > } | ||
Gregory Szorc
|
r24735 | $ fnodescacheexists() { | ||
> [ -f .hg/cache/hgtagsfnodes1 ] && echo "fnodes cache exists" || echo "no fnodes cache" | ||||
> } | ||||
Matt Mackall
|
r11744 | $ dumptags() { | ||
> rev=$1 | ||||
> echo "rev $rev: .hgtags:" | ||||
> hg cat -r$rev .hgtags | ||||
> } | ||||
# 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. | ||||
Setup: | ||||
$ hg init t | ||||
$ cd t | ||||
$ cacheexists | ||||
no tag cache | ||||
Gregory Szorc
|
r24735 | $ fnodescacheexists | ||
no fnodes cache | ||||
Matt Mackall
|
r11744 | $ hg id | ||
000000000000 tip | ||||
$ cacheexists | ||||
no tag cache | ||||
Gregory Szorc
|
r24735 | $ fnodescacheexists | ||
no fnodes cache | ||||
Matt Mackall
|
r11744 | $ echo a > a | ||
$ hg add a | ||||
$ hg commit -m "test" | ||||
$ hg co | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg identify | ||||
acb14030fe0a tip | ||||
Matt Harbison
|
r25683 | $ hg identify -r 'wdir()' | ||
acb14030fe0a tip | ||||
Matt Mackall
|
r11744 | $ cacheexists | ||
tag cache exists | ||||
Gregory Szorc
|
r24735 | No fnodes cache because .hgtags file doesn't exist | ||
(this is an implementation detail) | ||||
$ fnodescacheexists | ||||
no fnodes cache | ||||
Matt Mackall
|
r11744 | |||
Nicolas Dumazet
|
r12758 | Try corrupting the cache | ||
Gregory Szorc
|
r24762 | $ printf 'a b' > .hg/cache/tags2-visible | ||
Nicolas Dumazet
|
r12758 | $ hg identify | ||
acb14030fe0a tip | ||||
$ cacheexists | ||||
tag cache exists | ||||
Gregory Szorc
|
r24735 | $ fnodescacheexists | ||
no fnodes cache | ||||
Nicolas Dumazet
|
r12758 | $ hg identify | ||
acb14030fe0a tip | ||||
Matt Mackall
|
r11744 | 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 | ||||
tip 0:acb14030fe0a | ||||
This is a local tag with a really long name! 0:acb14030fe0a | ||||
$ rm .hg/localtags | ||||
Create a tag behind hg's back: | ||||
$ echo "$T first" > .hgtags | ||||
$ cat .hgtags | ||||
acb14030fe0a21b60322c440ad2d20cf7685a376 first | ||||
$ hg add .hgtags | ||||
$ hg commit -m "add tags" | ||||
$ hg tags | ||||
tip 1:b9154636be93 | ||||
first 0:acb14030fe0a | ||||
$ hg identify | ||||
b9154636be93 tip | ||||
Gregory Szorc
|
r24735 | We should have a fnodes cache now that we have a real tag | ||
The cache should have an empty entry for rev 0 and a valid entry for rev 1. | ||||
$ fnodescacheexists | ||||
fnodes cache exists | ||||
$ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=48 | ||||
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...| | ||||
0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y| | ||||
Valentin Gatien-Baron
|
r44772 | $ hg debugtagscache | ||
Matt Harbison
|
r47245 | 0 acb14030fe0a21b60322c440ad2d20cf7685a376 missing | ||
Valentin Gatien-Baron
|
r44772 | 1 b9154636be938d3d431e75a7c906504a079bfe07 26b7b4a773e09ee3c52f510e19e05e1ff966d859 | ||
Gregory Szorc
|
r24735 | |||
Matt Mackall
|
r11744 | Repeat with cold tag cache: | ||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible .hg/cache/hgtagsfnodes1 | ||
Matt Mackall
|
r11744 | $ hg identify | ||
b9154636be93 tip | ||||
Gregory Szorc
|
r24735 | $ fnodescacheexists | ||
fnodes cache exists | ||||
$ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=48 | ||||
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...| | ||||
0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y| | ||||
Yuya Nishihara
|
r24806 | And again, but now unable to write tag cache or lock file: | ||
Matt Mackall
|
r11744 | |||
FUJIWARA Katsunori
|
r33428 | #if unix-permissions no-fsmonitor | ||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible .hg/cache/hgtagsfnodes1 | ||
Gregory Szorc
|
r24735 | $ chmod 555 .hg/cache | ||
Matt Mackall
|
r11744 | $ hg identify | ||
b9154636be93 tip | ||||
Gregory Szorc
|
r24735 | $ chmod 755 .hg/cache | ||
Yuya Nishihara
|
r24806 | |||
FUJIWARA Katsunori
|
r33428 | (this block should be protected by no-fsmonitor, because "chmod 555 .hg" | ||
makes watchman fail at accessing to files under .hg) | ||||
Yuya Nishihara
|
r24806 | $ chmod 555 .hg | ||
$ hg identify | ||||
b9154636be93 tip | ||||
$ chmod 755 .hg | ||||
Adrian Buehlmann
|
r16857 | #endif | ||
Matt Mackall
|
r11744 | |||
Gregory Szorc
|
r24706 | Tag cache debug info written to blackbox log | ||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible .hg/cache/hgtagsfnodes1 | ||
Gregory Szorc
|
r24706 | $ hg identify | ||
b9154636be93 tip | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> identify | ||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> writing 48 bytes to cache/hgtagsfnodes1 | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> 0/2 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> identify exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> blackbox -l 6 | ||||
Gregory Szorc
|
r24706 | |||
Gregory Szorc
|
r24735 | Failure to acquire lock results in no write | ||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible .hg/cache/hgtagsfnodes1 | ||
Pulkit Goyal
|
r46005 | $ echo 'foo:1' > .hg/store/lock | ||
Gregory Szorc
|
r24735 | $ hg identify | ||
b9154636be93 tip | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> identify | ||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> not writing .hg/cache/hgtagsfnodes1 because lock cannot be acquired | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> 0/2 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> identify exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b9154636be938d3d431e75a7c906504a079bfe07 (5000)> blackbox -l 6 | ||||
Gregory Szorc
|
r24735 | |||
$ fnodescacheexists | ||||
no fnodes cache | ||||
Pulkit Goyal
|
r46005 | $ rm .hg/store/lock | ||
Gregory Szorc
|
r24735 | |||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible .hg/cache/hgtagsfnodes1 | ||
Gregory Szorc
|
r24735 | $ hg identify | ||
b9154636be93 tip | ||||
Gregory Szorc
|
r24706 | |||
Matt Mackall
|
r11744 | Create a branch: | ||
$ echo bb > a | ||||
$ hg status | ||||
M a | ||||
$ hg identify | ||||
b9154636be93+ tip | ||||
$ hg co first | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg id | ||||
acb14030fe0a+ first | ||||
Matt Harbison
|
r25683 | $ hg id -r 'wdir()' | ||
acb14030fe0a+ first | ||||
Matt Mackall
|
r11744 | $ hg -v id | ||
acb14030fe0a+ first | ||||
$ hg status | ||||
M a | ||||
$ echo 1 > b | ||||
$ hg add b | ||||
$ hg commit -m "branch" | ||||
created new head | ||||
Gregory Szorc
|
r24735 | |||
Creating a new commit shouldn't append the .hgtags fnodes cache until | ||||
tags info is accessed | ||||
$ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=48 | ||||
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...| | ||||
0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y| | ||||
Matt Mackall
|
r11744 | $ hg id | ||
c8edf04160c7 tip | ||||
Gregory Szorc
|
r24735 | First 4 bytes of record 3 are changeset fragment | ||
$ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=72 | ||||
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...| | ||||
0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y| | ||||
0030: c8 ed f0 41 00 00 00 00 00 00 00 00 00 00 00 00 |...A............| | ||||
0040: 00 00 00 00 00 00 00 00 |........| | ||||
Matt Mackall
|
r11744 | Merge the two heads: | ||
$ hg merge 1 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
timeless
|
r28246 | $ hg blackbox -l3 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @c8edf04160c7f731e4589d66ab3ab3486a64ac28 (5000)> merge 1 | ||
1970/01/01 00:00:00.000 bob @c8edf04160c7f731e4589d66ab3ab3486a64ac28+b9154636be938d3d431e75a7c906504a079bfe07 (5000)> merge 1 exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @c8edf04160c7f731e4589d66ab3ab3486a64ac28+b9154636be938d3d431e75a7c906504a079bfe07 (5000)> blackbox -l3 | ||||
Matt Mackall
|
r11744 | $ hg id | ||
c8edf04160c7+b9154636be93+ tip | ||||
$ hg status | ||||
M .hgtags | ||||
$ hg commit -m "merge" | ||||
Create a 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 | ||||
tip 6:35ff301afafe | ||||
first 0:acb14030fe0a | ||||
Add invalid tags: | ||||
$ echo "spam" >> .hgtags | ||||
$ echo >> .hgtags | ||||
$ echo "foo bar" >> .hgtags | ||||
Matt Mackall
|
r12366 | $ echo "a5a5 invalid" >> .hg/localtags | ||
Mads Kiilerich
|
r17345 | $ cat .hgtags | ||
Matt Mackall
|
r11744 | acb14030fe0a21b60322c440ad2d20cf7685a376 first | ||
spam | ||||
foo bar | ||||
$ hg commit -m "tags" | ||||
Report tag parse error on other head: | ||||
$ hg up 3 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo 'x y' >> .hgtags | ||||
$ hg commit -m "head" | ||||
created new head | ||||
Matt Mackall
|
r29038 | $ hg tags --debug | ||
Matt Mackall
|
r11744 | .hgtags@75d9f02dfe28, line 2: cannot parse entry | ||
.hgtags@75d9f02dfe28, line 4: node 'foo' is not well formed | ||||
.hgtags@c4be69a18c11, line 2: node 'x' is not well formed | ||||
Matt Mackall
|
r29038 | tip 8:c4be69a18c11e8bc3a5fdbb576017c25f7d84663 | ||
first 0:acb14030fe0a21b60322c440ad2d20cf7685a376 | ||||
Matt Mackall
|
r11744 | $ hg tip | ||
changeset: 8:c4be69a18c11 | ||||
tag: tip | ||||
parent: 3:ac5e980c4dc0 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: head | ||||
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 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg tag -r 1 -f bar # rev 3 | ||||
$ hg up -C 1 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo >> foo | ||||
$ hg ci -m 'change foo 2' # rev 4 | ||||
created new head | ||||
$ hg tags | ||||
tip 4:0c192d7d5e6b | ||||
bar 1:78391a272241 | ||||
Repeat in case of cache effects: | ||||
$ hg tags | ||||
tip 4:0c192d7d5e6b | ||||
bar 1:78391a272241 | ||||
Detailed dump of tag info: | ||||
$ hg heads -q # expect 4, 3, 2 | ||||
4:0c192d7d5e6b | ||||
3:6fa450212aeb | ||||
2:7a94127795a3 | ||||
$ dumptags 2 | ||||
rev 2: .hgtags: | ||||
bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||||
$ dumptags 3 | ||||
rev 3: .hgtags: | ||||
bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||||
bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||||
78391a272241d70354aa14c874552cad6b51bb42 bar | ||||
$ dumptags 4 | ||||
rev 4: .hgtags: | ||||
bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||||
Dump cache: | ||||
Gregory Szorc
|
r24762 | $ cat .hg/cache/tags2-visible | ||
Gregory Szorc
|
r24760 | 4 0c192d7d5e6b78a714de54a2e9627952a877e25a | ||
FUJIWARA Katsunori
|
r19646 | bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||
bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||||
Matt Mackall
|
r11744 | 78391a272241d70354aa14c874552cad6b51bb42 bar | ||
Gregory Szorc
|
r24735 | $ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||
.hg/cache/hgtagsfnodes1: size=120 | ||||
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0030: 7a 94 12 77 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |z..w.....1....B(| | ||||
0040: 78 ee 5a 2d ad bc 94 3d 6f a4 50 21 7d 3b 71 8c |x.Z-...=o.P!};q.| | ||||
0050: 96 4e f3 7b 89 e5 50 eb da fd 57 89 e7 6c e1 b0 |.N.{..P...W..l..| | ||||
0060: 0c 19 2d 7d 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |..-}.....1....B(| | ||||
0070: 78 ee 5a 2d ad bc 94 3d |x.Z-...=| | ||||
Corrupt the .hgtags fnodes cache | ||||
Extra junk data at the end should get overwritten on next cache update | ||||
$ echo extra >> .hg/cache/hgtagsfnodes1 | ||||
$ echo dummy1 > foo | ||||
$ hg commit -m throwaway1 | ||||
$ hg tags | ||||
tip 5:8dbfe60eff30 | ||||
bar 1:78391a272241 | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> tags | ||
1970/01/01 00:00:00.000 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> writing 24 bytes to cache/hgtagsfnodes1 | ||||
1970/01/01 00:00:00.000 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> 3/4 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> tags exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> blackbox -l 6 | ||||
Gregory Szorc
|
r24735 | |||
Valentin Gatien-Baron
|
r44774 | On junk data + missing cache entries, hg also overwrites the junk. | ||
Valentin Gatien-Baron
|
r44773 | |||
$ rm -f .hg/cache/tags2-visible | ||||
Matt Harbison
|
r44860 | >>> import os | ||
>>> with open(".hg/cache/hgtagsfnodes1", "ab+") as fp: | ||||
... fp.seek(-10, os.SEEK_END) and None | ||||
... fp.truncate() and None | ||||
Valentin Gatien-Baron
|
r44773 | $ hg debugtagscache | tail -2 | ||
4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d | ||||
Matt Harbison
|
r47245 | 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 missing | ||
Valentin Gatien-Baron
|
r44773 | $ hg tags | ||
Valentin Gatien-Baron
|
r44774 | tip 5:8dbfe60eff30 | ||
bar 1:78391a272241 | ||||
Valentin Gatien-Baron
|
r44773 | $ hg debugtagscache | tail -2 | ||
4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d | ||||
Valentin Gatien-Baron
|
r44774 | 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8af31de17fab7422878ee5a2dadbc943d | ||
Valentin Gatien-Baron
|
r44773 | |||
Matt Harbison
|
r47245 | If the 4 bytes of node hash for a record don't match an existing node, the entry | ||
is flagged as invalid. | ||||
>>> import os | ||||
>>> with open(".hg/cache/hgtagsfnodes1", "rb+") as fp: | ||||
... fp.seek(-24, os.SEEK_END) and None | ||||
... fp.write(b'\xde\xad') and None | ||||
$ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=144 | ||||
0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0030: 7a 94 12 77 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |z..w.....1....B(| | ||||
0040: 78 ee 5a 2d ad bc 94 3d 6f a4 50 21 7d 3b 71 8c |x.Z-...=o.P!};q.| | ||||
0050: 96 4e f3 7b 89 e5 50 eb da fd 57 89 e7 6c e1 b0 |.N.{..P...W..l..| | ||||
0060: 0c 19 2d 7d 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |..-}.....1....B(| | ||||
0070: 78 ee 5a 2d ad bc 94 3d de ad e6 0e 0c 04 f2 a8 |x.Z-...=........| | ||||
0080: af 31 de 17 fa b7 42 28 78 ee 5a 2d ad bc 94 3d |.1....B(x.Z-...=| | ||||
$ hg debugtagscache | tail -2 | ||||
4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d | ||||
5 8dbfe60eff306a54259cfe007db9e330e7ecf866 invalid | ||||
$ hg tags | ||||
tip 5:8dbfe60eff30 | ||||
bar 1:78391a272241 | ||||
Matt Harbison
|
r47400 | BUG: If the filenode part of an entry in hgtagsfnodes is corrupt and | ||
tags2-visible is missing, `hg tags` aborts. Corrupting the leading 4 bytes of | ||||
node hash (as above) doesn't seem to trigger the issue. Also note that the | ||||
debug command hides the corruption, both with and without tags2-visible. | ||||
$ mv .hg/cache/hgtagsfnodes1 .hg/cache/hgtagsfnodes1.bak | ||||
$ hg debugupdatecaches | ||||
>>> import os | ||||
>>> with open(".hg/cache/hgtagsfnodes1", "rb+") as fp: | ||||
... fp.seek(-16, os.SEEK_END) and None | ||||
... fp.write(b'\xde\xad') and None | ||||
$ f --size --hexdump .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=144 | ||||
0000: bb d1 79 df 00 00 00 00 00 00 00 00 00 00 00 00 |..y.............| | ||||
0010: 00 00 00 00 00 00 00 00 78 39 1a 27 0c 04 f2 a8 |........x9.'....| | ||||
0020: af 31 de 17 fa b7 42 28 78 ee 5a 2d ad bc 94 3d |.1....B(x.Z-...=| | ||||
0030: 7a 94 12 77 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |z..w.....1....B(| | ||||
0040: 78 ee 5a 2d ad bc 94 3d 6f a4 50 21 7d 3b 71 8c |x.Z-...=o.P!};q.| | ||||
0050: 96 4e f3 7b 89 e5 50 eb da fd 57 89 e7 6c e1 b0 |.N.{..P...W..l..| | ||||
0060: 0c 19 2d 7d 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |..-}.....1....B(| | ||||
0070: 78 ee 5a 2d ad bc 94 3d 8d bf e6 0e 0c 04 f2 a8 |x.Z-...=........| | ||||
0080: de ad de 17 fa b7 42 28 78 ee 5a 2d ad bc 94 3d |......B(x.Z-...=| | ||||
$ hg debugtagscache | tail -2 | ||||
4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d | ||||
Pulkit Goyal
|
r47401 | 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8deadde17fab7422878ee5a2dadbc943d (unknown node) | ||
Matt Harbison
|
r47400 | |||
$ rm -f .hg/cache/tags2-visible | ||||
$ hg debugtagscache | tail -2 | ||||
4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d | ||||
Pulkit Goyal
|
r47401 | 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8deadde17fab7422878ee5a2dadbc943d (unknown node) | ||
Matt Harbison
|
r47400 | |||
$ hg tags | ||||
Pulkit Goyal
|
r47402 | tip 5:8dbfe60eff30 | ||
bar 1:78391a272241 | ||||
Matt Harbison
|
r47400 | |||
BUG: Unless this file is restored, the `hg tags` in the next unix-permissions | ||||
conditional will fail: "abort: data/.hgtags.i@0c04f2a8dead: no match found" | ||||
$ mv .hg/cache/hgtagsfnodes1.bak .hg/cache/hgtagsfnodes1 | ||||
Gregory Szorc
|
r24735 | #if unix-permissions no-root | ||
Errors writing to .hgtags fnodes cache are silently ignored | ||||
$ echo dummy2 > foo | ||||
$ hg commit -m throwaway2 | ||||
$ chmod a-w .hg/cache/hgtagsfnodes1 | ||||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible | ||
Gregory Szorc
|
r24735 | |||
$ hg tags | ||||
tip 6:b968051b5cf3 | ||||
bar 1:78391a272241 | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> tags | ||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> couldn't write cache/hgtagsfnodes1: [Errno *] * (glob) | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> 2/4 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> tags exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> blackbox -l 6 | ||||
Gregory Szorc
|
r24735 | |||
$ chmod a+w .hg/cache/hgtagsfnodes1 | ||||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible | ||
Gregory Szorc
|
r24735 | $ hg tags | ||
tip 6:b968051b5cf3 | ||||
bar 1:78391a272241 | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> tags | ||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> writing 24 bytes to cache/hgtagsfnodes1 | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> 2/4 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> tags exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @b968051b5cf3f624b771779c6d5f84f1d4c3fb5d (5000)> blackbox -l 6 | ||||
Gregory Szorc
|
r24735 | |||
$ f --size .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=168 | ||||
Matt Mackall
|
r24801 | $ hg -q --config extensions.strip= strip -r 6 --no-backup | ||
#endif | ||||
Gregory Szorc
|
r24735 | Stripping doesn't truncate the tags cache until new data is available | ||
Matt Mackall
|
r24801 | $ rm -f .hg/cache/hgtagsfnodes1 .hg/cache/tags2-visible | ||
Matt Mackall
|
r24802 | $ hg tags | ||
Matt Mackall
|
r24801 | tip 5:8dbfe60eff30 | ||
bar 1:78391a272241 | ||||
$ f --size .hg/cache/hgtagsfnodes1 | ||||
.hg/cache/hgtagsfnodes1: size=144 | ||||
Gregory Szorc
|
r24735 | $ hg -q --config extensions.strip= strip -r 5 --no-backup | ||
$ hg tags | ||||
tip 4:0c192d7d5e6b | ||||
bar 1:78391a272241 | ||||
timeless
|
r28025 | $ hg blackbox -l 5 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> writing 24 bytes to cache/hgtagsfnodes1 | ||
1970/01/01 00:00:00.000 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> 2/4 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> tags exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> blackbox -l 5 | ||||
Gregory Szorc
|
r24735 | |||
$ f --size .hg/cache/hgtagsfnodes1 | ||||
Matt Mackall
|
r24801 | .hg/cache/hgtagsfnodes1: size=120 | ||
Gregory Szorc
|
r24735 | |||
$ echo dummy > foo | ||||
$ hg commit -m throwaway3 | ||||
$ hg tags | ||||
tip 5:035f65efb448 | ||||
bar 1:78391a272241 | ||||
timeless
|
r28025 | $ hg blackbox -l 6 | ||
Valentin Gatien-Baron
|
r49420 | 1970/01/01 00:00:00.000 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> tags | ||
1970/01/01 00:00:00.000 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> writing 24 bytes to cache/hgtagsfnodes1 | ||||
1970/01/01 00:00:00.000 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> 3/4 cache hits/lookups in * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> writing .hg/cache/tags2-visible with 1 tags | ||||
1970/01/01 00:00:00.000 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> tags exited 0 after * seconds (glob) | ||||
1970/01/01 00:00:00.000 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> blackbox -l 6 | ||||
Gregory Szorc
|
r24735 | $ f --size .hg/cache/hgtagsfnodes1 | ||
.hg/cache/hgtagsfnodes1: size=144 | ||||
$ hg -q --config extensions.strip= strip -r 5 --no-backup | ||||
Matt Mackall
|
r11744 | Test tag removal: | ||
$ hg tag --remove bar # rev 5 | ||||
$ hg tip -vp | ||||
changeset: 5:5f6e8655b1c7 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
files: .hgtags | ||||
description: | ||||
Removed tag bar | ||||
diff -r 0c192d7d5e6b -r 5f6e8655b1c7 .hgtags | ||||
--- a/.hgtags Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,1 +1,3 @@ | ||||
bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar | ||||
+78391a272241d70354aa14c874552cad6b51bb42 bar | ||||
+0000000000000000000000000000000000000000 bar | ||||
$ hg tags | ||||
tip 5:5f6e8655b1c7 | ||||
$ hg tags # again, try to expose cache bugs | ||||
tip 5:5f6e8655b1c7 | ||||
Remove nonexistent tag: | ||||
$ hg tag --remove foobar | ||||
abort: tag 'foobar' does not exist | ||||
Martin von Zweigbergk
|
r46431 | [10] | ||
Matt Mackall
|
r11744 | $ hg tip | ||
changeset: 5:5f6e8655b1c7 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Removed tag bar | ||||
Undo a tag with rollback: | ||||
$ hg rollback # destroy rev 5 (restore bar) | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 4 (undo commit) | ||
working directory now based on revision 4 | ||||
Matt Mackall
|
r11744 | $ hg tags | ||
tip 4:0c192d7d5e6b | ||||
bar 1:78391a272241 | ||||
$ hg tags | ||||
tip 4:0c192d7d5e6b | ||||
bar 1:78391a272241 | ||||
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 | ||||
tip 5:85f05169d91d | ||||
bar 0:bbd179dfa0a7 | ||||
$ hg co 3 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo barbar > foo | ||||
$ hg ci -m 'change foo' # rev 6 | ||||
created new head | ||||
$ hg tags | ||||
tip 6:735c3ca72986 | ||||
bar 0:bbd179dfa0a7 | ||||
Don't allow moving tag without -f: | ||||
$ hg tag -r 3 bar | ||||
abort: tag 'bar' already exists (use -f to force) | ||||
Martin von Zweigbergk
|
r46431 | [10] | ||
Matt Mackall
|
r11744 | $ hg tags | ||
tip 6:735c3ca72986 | ||||
bar 0:bbd179dfa0a7 | ||||
Strip 1: expose an old head: | ||||
$ hg --config extensions.mq= strip 5 | ||||
Mads Kiilerich
|
r12640 | saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob) | ||
Matt Mackall
|
r11744 | $ hg tags # partly stale cache | ||
tip 5:735c3ca72986 | ||||
bar 1:78391a272241 | ||||
$ hg tags # up-to-date cache | ||||
tip 5:735c3ca72986 | ||||
bar 1:78391a272241 | ||||
Strip 2: destroy whole branch, no old head exposed | ||||
$ hg --config extensions.mq= strip 4 | ||||
Mads Kiilerich
|
r12640 | saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob) | ||
Matt Mackall
|
r11744 | $ hg tags # partly stale | ||
tip 4:735c3ca72986 | ||||
bar 0:bbd179dfa0a7 | ||||
Gregory Szorc
|
r24762 | $ rm -f .hg/cache/tags2-visible | ||
Matt Mackall
|
r11744 | $ hg tags # cold cache | ||
tip 4:735c3ca72986 | ||||
bar 0:bbd179dfa0a7 | ||||
Test tag rank with 3 heads: | ||||
$ cd .. | ||||
$ hg init t4 | ||||
$ cd t4 | ||||
$ echo foo > foo | ||||
$ hg add | ||||
adding foo | ||||
$ 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 | ||||
tip 3:197c21bbbf2c | ||||
bar 2:6fa450212aeb | ||||
$ hg up -qC 0 | ||||
$ hg tag -m 'retag rev 0' -fr 0 bar # rev 4 bar -> 0, but bar stays at 2 | ||||
Bar should still point to rev 2: | ||||
$ hg tags | ||||
tip 4:3b4b14ed0202 | ||||
bar 2:6fa450212aeb | ||||
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 | ||||
adding foo | ||||
$ hg ci -m 'add foo' # rev 0 | ||||
$ hg tag -r 0 -l localtag | ||||
$ hg tag --remove localtag | ||||
abort: tag 'localtag' is not a global tag | ||||
Martin von Zweigbergk
|
r46431 | [10] | ||
Matt Mackall
|
r11744 | $ | ||
$ hg tag -r 0 globaltag | ||||
$ hg tag --remove -l globaltag | ||||
abort: tag 'globaltag' is not a local tag | ||||
Martin von Zweigbergk
|
r46431 | [10] | ||
Matt Mackall
|
r11744 | $ hg tags -v | ||
tip 1:a0b6fe111088 | ||||
localtag 0:bbd179dfa0a7 local | ||||
globaltag 0:bbd179dfa0a7 | ||||
Mads Kiilerich
|
r16913 | |||
Yuya Nishihara
|
r38449 | Templated output: | ||
(immediate values) | ||||
$ hg tags -T '{pad(tag, 9)} {rev}:{node} ({type})\n' | ||||
tip 1:a0b6fe111088c8c29567d3876cc466aa02927cae () | ||||
localtag 0:bbd179dfa0a71671c253b3ae0aa1513b60d199fa (local) | ||||
globaltag 0:bbd179dfa0a71671c253b3ae0aa1513b60d199fa () | ||||
(ctx/revcache dependent) | ||||
$ hg tags -T '{pad(tag, 9)} {rev} {file_adds}\n' | ||||
tip 1 .hgtags | ||||
localtag 0 foo | ||||
globaltag 0 foo | ||||
$ hg tags -T '{pad(tag, 9)} {rev}:{node|shortest}\n' | ||||
tip 1:a0b6 | ||||
localtag 0:bbd1 | ||||
globaltag 0:bbd1 | ||||
FUJIWARA Katsunori
|
r19108 | Test for issue3911 | ||
$ hg tag -r 0 -l localtag2 | ||||
$ hg tag -l --remove localtag2 | ||||
$ hg tags -v | ||||
tip 1:a0b6fe111088 | ||||
localtag 0:bbd179dfa0a7 local | ||||
globaltag 0:bbd179dfa0a7 | ||||
$ hg tag -r 1 -f localtag | ||||
$ hg tags -v | ||||
tip 2:5c70a037bb37 | ||||
localtag 1:a0b6fe111088 | ||||
globaltag 0:bbd179dfa0a7 | ||||
FUJIWARA Katsunori
|
r19646 | $ hg tags -v | ||
tip 2:5c70a037bb37 | ||||
localtag 1:a0b6fe111088 | ||||
globaltag 0:bbd179dfa0a7 | ||||
FUJIWARA Katsunori
|
r19108 | $ hg tag -r 1 localtag2 | ||
$ hg tags -v | ||||
tip 3:bbfb8cd42be2 | ||||
localtag2 1:a0b6fe111088 | ||||
localtag 1:a0b6fe111088 | ||||
globaltag 0:bbd179dfa0a7 | ||||
FUJIWARA Katsunori
|
r19646 | $ hg tags -v | ||
tip 3:bbfb8cd42be2 | ||||
localtag2 1:a0b6fe111088 | ||||
localtag 1:a0b6fe111088 | ||||
globaltag 0:bbd179dfa0a7 | ||||
Mads Kiilerich
|
r16913 | $ cd .. | ||
Gregory Szorc
|
r25402 | |||
Create a repository with tags data to test .hgtags fnodes transfer | ||||
$ hg init tagsserver | ||||
$ cd tagsserver | ||||
$ touch foo | ||||
$ hg -q commit -A -m initial | ||||
$ hg tag -m 'tag 0.1' 0.1 | ||||
$ echo second > foo | ||||
$ hg commit -m second | ||||
$ hg tag -m 'tag 0.2' 0.2 | ||||
$ hg tags | ||||
tip 3:40f0358cb314 | ||||
0.2 2:f63cc8fe54e4 | ||||
0.1 0:96ee1d7354c4 | ||||
$ cd .. | ||||
Cloning should pull down hgtags fnodes mappings and write the cache file | ||||
Pierre-Yves David
|
r29670 | $ hg clone --pull tagsserver tagsclient | ||
Gregory Szorc
|
r25402 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 4 changesets with 4 changes to 2 files | ||||
Denis Laxalde
|
r34662 | new changesets 96ee1d7354c4:40f0358cb314 | ||
Gregory Szorc
|
r25402 | updating to branch default | ||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Missing tags2* files means the cache wasn't written through the normal mechanism. | ||||
$ ls tagsclient/.hg/cache | ||||
Matt Harbison
|
r32304 | branch2-base | ||
r47032 | branch2-immutable | |||
branch2-served | ||||
branch2-served.hidden | ||||
branch2-visible | ||||
branch2-visible-hidden | ||||
Gregory Szorc
|
r25402 | hgtagsfnodes1 | ||
Boris Feld
|
r36986 | rbc-names-v1 | ||
rbc-revs-v1 | ||||
r47032 | tags2 | |||
tags2-served | ||||
Gregory Szorc
|
r25402 | |||
Cache should contain the head only, even though other nodes have tags data | ||||
$ f --size --hexdump tagsclient/.hg/cache/hgtagsfnodes1 | ||||
tagsclient/.hg/cache/hgtagsfnodes1: size=96 | ||||
r47985 | 0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | |||
0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0040: ff ff ff ff ff ff ff ff 40 f0 35 8c 19 e0 a7 d3 |........@.5.....| | ||||
Gregory Szorc
|
r25402 | 0050: 8a 5c 6a 82 4d cf fb a5 87 d0 2f a3 1e 4f 2f 8a |.\j.M...../..O/.| | ||
Running hg tags should produce tags2* file and not change cache | ||||
$ hg -R tagsclient tags | ||||
tip 3:40f0358cb314 | ||||
0.2 2:f63cc8fe54e4 | ||||
0.1 0:96ee1d7354c4 | ||||
$ ls tagsclient/.hg/cache | ||||
Matt Harbison
|
r32304 | branch2-base | ||
r47032 | branch2-immutable | |||
branch2-served | ||||
branch2-served.hidden | ||||
branch2-visible | ||||
branch2-visible-hidden | ||||
Gregory Szorc
|
r25402 | hgtagsfnodes1 | ||
Boris Feld
|
r36986 | rbc-names-v1 | ||
rbc-revs-v1 | ||||
r47032 | tags2 | |||
tags2-served | ||||
Gregory Szorc
|
r25402 | tags2-visible | ||
$ f --size --hexdump tagsclient/.hg/cache/hgtagsfnodes1 | ||||
tagsclient/.hg/cache/hgtagsfnodes1: size=96 | ||||
r47985 | 0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | |||
0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| | ||||
0040: ff ff ff ff ff ff ff ff 40 f0 35 8c 19 e0 a7 d3 |........@.5.....| | ||||
Gregory Szorc
|
r25402 | 0050: 8a 5c 6a 82 4d cf fb a5 87 d0 2f a3 1e 4f 2f 8a |.\j.M...../..O/.| | ||
r32218 | Check that the bundle includes cache data | |||
$ hg -R tagsclient bundle --all ./test-cache-in-bundle-all-rev.hg | ||||
4 changesets found | ||||
$ hg debugbundle ./test-cache-in-bundle-all-rev.hg | ||||
Augie Fackler
|
r34027 | Stream params: {Compression: BZ} | ||
Boris Feld
|
r37919 | changegroup -- {nbchanges: 4, version: 02} (mandatory: True) | ||
r32218 | 96ee1d7354c4ad7372047672c36a1f561e3a6a4c | |||
c4dab0c2fd337eb9191f80c3024830a4889a8f34 | ||||
f63cc8fe54e4d326f8d692805d70e092f851ddb1 | ||||
40f0358cb314c824a5929ee527308d90e023bc10 | ||||
Boris Feld
|
r37919 | hgtagsfnodes -- {} (mandatory: True) | ||
Boris Feld
|
r37920 | cache:rev-branch-cache -- {} (mandatory: False) | ||
r32495 | ||||
Check that local clone includes cache data | ||||
$ hg clone tagsclient tags-local-clone | ||||
updating to branch default | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ (cd tags-local-clone/.hg/cache/; ls -1 tag*) | ||||
r47032 | tags2 | |||
tags2-served | ||||
r32495 | tags2-visible | |||
Navaneeth Suresh
|
r41631 | |||
Avoid writing logs on trying to delete an already deleted tag | ||||
$ hg init issue5752 | ||||
$ cd issue5752 | ||||
$ echo > a | ||||
$ hg commit -Am 'add a' | ||||
adding a | ||||
$ hg tag a | ||||
$ hg tags | ||||
tip 1:bd7ee4f3939b | ||||
a 0:a8a82d372bb3 | ||||
$ hg log | ||||
changeset: 1:bd7ee4f3939b | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Added tag a for changeset a8a82d372bb3 | ||||
changeset: 0:a8a82d372bb3 | ||||
tag: a | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add a | ||||
$ hg tag --remove a | ||||
$ hg log | ||||
changeset: 2:e7feacc7ec9e | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Removed tag a | ||||
changeset: 1:bd7ee4f3939b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Added tag a for changeset a8a82d372bb3 | ||||
changeset: 0:a8a82d372bb3 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add a | ||||
$ hg tag --remove a | ||||
abort: tag 'a' is already removed | ||||
Martin von Zweigbergk
|
r46431 | [10] | ||
Navaneeth Suresh
|
r41631 | $ hg log | ||
changeset: 2:e7feacc7ec9e | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Removed tag a | ||||
changeset: 1:bd7ee4f3939b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: Added tag a for changeset a8a82d372bb3 | ||||
changeset: 0:a8a82d372bb3 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: add a | ||||
$ cat .hgtags | ||||
a8a82d372bb35b42ff736e74f07c23bcd99c371f a | ||||
a8a82d372bb35b42ff736e74f07c23bcd99c371f a | ||||
0000000000000000000000000000000000000000 a | ||||