##// END OF EJS Templates
merge with stable
Matt Mackall -
r25270:61b3529e merge default
parent child Browse files
Show More
@@ -341,6 +341,10 b' class revbranchcache(object):'
341 changelog = self._repo.changelog
341 changelog = self._repo.changelog
342 rbcrevidx = rev * _rbcrecsize
342 rbcrevidx = rev * _rbcrecsize
343
343
344 # avoid negative index, changelog.read(nullrev) is fast without cache
345 if rev == nullrev:
346 return changelog.branchinfo(rev)
347
344 # if requested rev is missing, add and populate all missing revs
348 # if requested rev is missing, add and populate all missing revs
345 if len(self._rbcrevs) < rbcrevidx + _rbcrecsize:
349 if len(self._rbcrevs) < rbcrevidx + _rbcrecsize:
346 self._rbcrevs.extend('\0' * (len(changelog) * _rbcrecsize -
350 self._rbcrevs.extend('\0' * (len(changelog) * _rbcrecsize -
@@ -16,7 +16,7 b' import match as matchmod'
16 import merge as mergemod
16 import merge as mergemod
17 import tags as tagsmod
17 import tags as tagsmod
18 from lock import release
18 from lock import release
19 import weakref, errno, os, time, inspect
19 import weakref, errno, os, time, inspect, random
20 import branchmap, pathutil
20 import branchmap, pathutil
21 import namespaces
21 import namespaces
22 propertycache = util.propertycache
22 propertycache = util.propertycache
@@ -959,7 +959,9 b' class localrepository(object):'
959 _("abandoned transaction found"),
959 _("abandoned transaction found"),
960 hint=_("run 'hg recover' to clean up transaction"))
960 hint=_("run 'hg recover' to clean up transaction"))
961
961
962 self.hook('pretxnopen', throw=True, txnname=desc)
962 idbase = "%.40f#%f" % (random.random(), time.time())
963 txnid = 'TXN:' + util.sha1(idbase).hexdigest()
964 self.hook('pretxnopen', throw=True, txnname=desc, txnid=txnid)
963
965
964 self._writejournal(desc)
966 self._writejournal(desc)
965 renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()]
967 renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()]
@@ -983,8 +985,7 b' class localrepository(object):'
983 self.store.createmode,
985 self.store.createmode,
984 validator=validate)
986 validator=validate)
985
987
986 trid = 'TXN:' + util.sha1("%s#%f" % (id(tr), time.time())).hexdigest()
988 tr.hookargs['txnid'] = txnid
987 tr.hookargs['txnid'] = trid
988 # note: writing the fncache only during finalize mean that the file is
989 # note: writing the fncache only during finalize mean that the file is
989 # outdated when running hooks. As fncache is used for streaming clone,
990 # outdated when running hooks. As fncache is used for streaming clone,
990 # this is not expected to break anything that happen during the hooks.
991 # this is not expected to break anything that happen during the hooks.
@@ -329,7 +329,8 b' def _getrevsource(repo, r):'
329
329
330 def stringset(repo, subset, x):
330 def stringset(repo, subset, x):
331 x = repo[x].rev()
331 x = repo[x].rev()
332 if x in subset:
332 if (x in subset
333 or x == node.nullrev and isinstance(subset, fullreposet)):
333 return baseset([x])
334 return baseset([x])
334 return baseset()
335 return baseset()
335
336
@@ -1911,7 +1912,7 b' def user(repo, subset, x):'
1911 def wdir(repo, subset, x):
1912 def wdir(repo, subset, x):
1912 # i18n: "wdir" is a keyword
1913 # i18n: "wdir" is a keyword
1913 getargs(x, 0, 0, _("wdir takes no arguments"))
1914 getargs(x, 0, 0, _("wdir takes no arguments"))
1914 if None in subset:
1915 if None in subset or isinstance(subset, fullreposet):
1915 return baseset([None])
1916 return baseset([None])
1916 return baseset()
1917 return baseset()
1917
1918
@@ -3470,11 +3471,6 b' class fullreposet(spanset):'
3470 def __init__(self, repo):
3471 def __init__(self, repo):
3471 super(fullreposet, self).__init__(repo)
3472 super(fullreposet, self).__init__(repo)
3472
3473
3473 def __contains__(self, rev):
3474 # assumes the given rev is valid
3475 hidden = self._hiddenrevs
3476 return not (hidden and rev in hidden)
3477
3478 def __and__(self, other):
3474 def __and__(self, other):
3479 """As self contains the whole repo, all of the other set should also be
3475 """As self contains the whole repo, all of the other set should also be
3480 in self. Therefore `self & other = other`.
3476 in self. Therefore `self & other = other`.
@@ -2375,4 +2375,12 b' should not draw line down to null due to'
2375 summary: add a
2375 summary: add a
2376
2376
2377
2377
2378 $ hg log -G -r 'branch(default)' | tail -6
2379 |
2380 o changeset: 0:f8035bb17114
2381 user: test
2382 date: Thu Jan 01 00:00:00 1970 +0000
2383 summary: add a
2384
2385
2378 $ cd ..
2386 $ cd ..
@@ -29,7 +29,7 b' commit hooks can see env vars'
29 $ hg add a
29 $ hg add a
30 $ hg commit -m a
30 $ hg commit -m a
31 precommit hook: HG_PARENT1=0000000000000000000000000000000000000000
31 precommit hook: HG_PARENT1=0000000000000000000000000000000000000000
32 pretxnopen hook: HG_TXNNAME=commit
32 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
33 pretxncommit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000 HG_PENDING=$TESTTMP/a
33 pretxncommit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000 HG_PENDING=$TESTTMP/a
34 0:cb9a9f314b8b
34 0:cb9a9f314b8b
35 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_PHASES_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
35 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_PHASES_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
@@ -57,7 +57,7 b' pretxncommit and commit hooks can see bo'
57 $ echo b >> a
57 $ echo b >> a
58 $ hg commit -m a1 -d "1 0"
58 $ hg commit -m a1 -d "1 0"
59 precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
59 precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
60 pretxnopen hook: HG_TXNNAME=commit
60 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
61 pretxncommit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
61 pretxncommit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
62 1:ab228980c14d
62 1:ab228980c14d
63 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
63 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
@@ -70,7 +70,7 b' pretxncommit and commit hooks can see bo'
70 $ hg add b
70 $ hg add b
71 $ hg commit -m b -d '1 0'
71 $ hg commit -m b -d '1 0'
72 precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
72 precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
73 pretxnopen hook: HG_TXNNAME=commit
73 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
74 pretxncommit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
74 pretxncommit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
75 2:ee9deb46ab31
75 2:ee9deb46ab31
76 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
76 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
@@ -83,7 +83,7 b' pretxncommit and commit hooks can see bo'
83 (branch merge, don't forget to commit)
83 (branch merge, don't forget to commit)
84 $ hg commit -m merge -d '2 0'
84 $ hg commit -m merge -d '2 0'
85 precommit hook: HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
85 precommit hook: HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
86 pretxnopen hook: HG_TXNNAME=commit
86 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
87 pretxncommit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd HG_PENDING=$TESTTMP/a
87 pretxncommit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd HG_PENDING=$TESTTMP/a
88 3:07f3376c1e65
88 3:07f3376c1e65
89 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
89 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
@@ -127,7 +127,7 b' tag hooks can see env vars'
127 $ hg tag -d '3 0' a
127 $ hg tag -d '3 0' a
128 pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
128 pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
129 precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
129 precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
130 pretxnopen hook: HG_TXNNAME=commit
130 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
131 pretxncommit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PENDING=$TESTTMP/a
131 pretxncommit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PENDING=$TESTTMP/a
132 4:539e4b31b6dc
132 4:539e4b31b6dc
133 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
133 pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
@@ -164,7 +164,7 b' more there after'
164 4:539e4b31b6dc
164 4:539e4b31b6dc
165 $ hg commit -m 'fail' -d '4 0'
165 $ hg commit -m 'fail' -d '4 0'
166 precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
166 precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
167 pretxnopen hook: HG_TXNNAME=commit
167 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob)
168 pretxncommit hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
168 pretxncommit hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
169 5:6f611f8018c1
169 5:6f611f8018c1
170 5:6f611f8018c1
170 5:6f611f8018c1
@@ -228,7 +228,7 b' pushkey hook'
228 pushing to ../a
228 pushing to ../a
229 searching for changes
229 searching for changes
230 no changes found
230 no changes found
231 pretxnopen hook: HG_TXNNAME=bookmarks
231 pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=bookmarks (glob)
232 pretxnclose hook: HG_BOOKMARK_MOVED=1 HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=bookmarks (glob)
232 pretxnclose hook: HG_BOOKMARK_MOVED=1 HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=bookmarks (glob)
233 txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmarks (glob)
233 txnclose hook: HG_BOOKMARK_MOVED=1 HG_TXNID=TXN:* HG_TXNNAME=bookmarks (glob)
234 pushkey hook: HG_KEY=foo HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_RET=1
234 pushkey hook: HG_KEY=foo HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_RET=1
@@ -697,10 +697,10 b' Test null revision'
697 $ log 'reverse(null:)' | tail -2
697 $ log 'reverse(null:)' | tail -2
698 0
698 0
699 -1
699 -1
700 BROKEN: should be '-1'
700 $ log 'first(null:)'
701 $ log 'first(null:)'
701 -1
702 BROKEN: should be '-1'
702 $ log 'min(null:)'
703 $ log 'min(null:)'
703 -1
704 $ log 'tip:null and all()' | tail -2
704 $ log 'tip:null and all()' | tail -2
705 1
705 1
706 0
706 0
@@ -708,9 +708,9 b' Test null revision'
708 Test working-directory revision
708 Test working-directory revision
709 $ hg debugrevspec 'wdir()'
709 $ hg debugrevspec 'wdir()'
710 None
710 None
711 BROKEN: should include 'None'
711 $ hg debugrevspec 'tip or wdir()'
712 $ hg debugrevspec 'tip or wdir()'
712 9
713 9
713 None
714 $ hg debugrevspec '0:tip and wdir()'
714 $ hg debugrevspec '0:tip and wdir()'
715
715
716 $ log 'outgoing()'
716 $ log 'outgoing()'
@@ -1702,6 +1702,46 b' tests for concatenation of strings/symbo'
1702
1702
1703 $ cd ..
1703 $ cd ..
1704
1704
1705 prepare repository that has "default" branches of multiple roots
1706
1707 $ hg init namedbranch
1708 $ cd namedbranch
1709
1710 $ echo default0 >> a
1711 $ hg ci -Aqm0
1712 $ echo default1 >> a
1713 $ hg ci -m1
1714
1715 $ hg branch -q stable
1716 $ echo stable2 >> a
1717 $ hg ci -m2
1718 $ echo stable3 >> a
1719 $ hg ci -m3
1720
1721 $ hg update -q null
1722 $ echo default4 >> a
1723 $ hg ci -Aqm4
1724 $ echo default5 >> a
1725 $ hg ci -m5
1726
1727 "null" revision belongs to "default" branch (issue4683)
1728
1729 $ log 'branch(null)'
1730 0
1731 1
1732 4
1733 5
1734
1735 "null" revision belongs to "default" branch, but it shouldn't appear in set
1736 unless explicitly specified (issue4682)
1737
1738 $ log 'children(branch(default))'
1739 1
1740 2
1741 5
1742
1743 $ cd ..
1744
1705 test author/desc/keyword in problematic encoding
1745 test author/desc/keyword in problematic encoding
1706 # unicode: cp932:
1746 # unicode: cp932:
1707 # u30A2 0x83 0x41(= 'A')
1747 # u30A2 0x83 0x41(= 'A')
General Comments 0
You need to be logged in to leave comments. Login now