Show More
@@ -102,3 +102,4 b' 6dad422ecc5adb63d9fa649eeb8e05a5f9bc4900' | |||
|
102 | 102 | 1265a3a71d75396f5d4cf6935ae7d9ba5407a547 0 iQIVAwUAVKXKYCBXgaxoKi1yAQIfsA/+PFfaWuZ6Jna12Y3MpKMnBCXYLWEJgMNlWHWzwU8lD26SKSlvMyHQsVZlkld2JmFugUCn1OV3OA4YWT6BA7VALq6Zsdcu5Dc8LRbyajBUkzGRpOUyWuFzjkCpGVbrQzbCR/bel/BBXzSqL4ipdtWgJ4y+WpZIhWkNXclBkR52b5hUTjN9vzhyhVVI7eURGwIEf7vVs1fDOcEGtaGY/ynzMTzyxIDsEEygCZau86wpKlYlqhCgxKDyzyGfpH3B1UlNGFt1afW8AWe1eHjdqC7TJZpMqmQ/Ju8vco8Xht6OXw4ZLHj7y39lpccfKTBLiK/cAKSg+xgyaH/BLhzoEkNAwYSFAB4i4IoV0KUC8nFxHfsoswBxJnMqU751ziMrpZ/XHZ1xQoEOdXgz2I04vlRn8xtynOVhcgjoAXwtbia7oNh/qCH/hl5/CdAtaawuCxJBf237F+cwur4PMAAvsGefRfZco/DInpr3qegr8rwInTxlO48ZG+o5xA4TPwT0QQTUjMdNfC146ZSbp65wG7VxJDocMZ8KJN/lqPaOvX+FVYWq4YnJhlldiV9DGgmym1AAaP0D3te2GcfHXpt/f6NYUPpgiBHy0GnOlNcQyGnnONg1A6oKVWB3k7WP28+PQbQEiCIFk2nkf5VZmye7OdHRGKOFfuprYFP1WwTWnVoNX9c= |
|
103 | 103 | db8e3f7948b1fdeb9ad12d448fc3525759908b9f 0 iQIVAwUAVLsaciBXgaxoKi1yAQKMIA//a90/GvySL9UID+iYvzV2oDaAPDD0T+4Xs43I7DT5NIoDz+3yq2VV54XevQe5lYiURmsb/Q9nX2VR/Qq1J9c/R6Gy+CIfmJ3HzMZ0aAX8ZlZgQPYZKh/2kY5Ojl++k6MTqbqcrICNs4+UE/4IAxPyOfu5gy7TpdJmRZo2J3lWVC2Jbhd02Mzb+tjtfbOM+QcQxPwt9PpqmQszJceyVYOSm3jvD1uJdSOC04tBQrQwrxktQ09Om0LUMMaB5zFXpJtqUzfw7l4U4AaddEmkd3vUfLtHxc21RB01c3cpe2dJnjifDfwseLsI8rS4jmi/91c74TeBatSOhvbqzEkm/p8xZFXE4Uh+EpWjTsVqmfQaRq6NfNCR7I/kvGv8Ps6w8mg8uX8fd8lx+GJbodj+Uy0X3oqHyqPMky/df5i79zADBDuz+yuxFfDD9i22DJPIYcilfGgwpIUuO2lER5nSMVmReuWTVBnT6SEN66Q4KR8zLtIRr+t1qUUCy6wYbgwrdHVCbgMF8RPOVZPjbs17RIqcHjch0Xc7bShKGhQg4WHDjXHK61w4tOa1Yp7jT6COkl01XC9BLcGxJYKFvNCbeDZQGvVgJNoEvHxBxD9rGMVRjfuxeJawc2fGzZJn0ySyLDW0pfd4EJNgTh9bLdPjWz2VlXqn4A6bgaLgTPqjmN0VBXw= |
|
104 | 104 | fbdd5195528fae4f41feebc1838215c110b25d6a 0 iQIVAwUAVM7fBCBXgaxoKi1yAQKoYw/+LeIGcjQmHIVFQULsiBtPDf+eGAADQoP3mKBy+eX/3Fa0qqUNfES2Q3Y6RRApyZ1maPRMt8BvvhZMgQsu9QIrmf3zsFxZGFwoyrIj4hM3xvAbEZXqmWiR85/Ywd4ImeLaZ0c7mkO1/HGF1n2Mv47bfM4hhNe7VGJSSrTY4srFHDfk4IG9f18DukJVzRD9/dZeBw6eUN1ukuLEgQAD5Sl47bUdKSetglOSR1PjXfZ1hjtz5ywUyBc5P9p3LC4wSvlcJKl22zEvB3L0hkoDcPsdIPEnJAeXxKlR1rQpoA3fEgrstGiSNUW/9Tj0VekAHLO95SExmQyoG/AhbjRRzIj4uQ0aevCJyiAhkv+ffOSf99PMW9L1k3tVjLhpMWEz9BOAWyX7cDFWj5t/iktI046O9HGN9SGVx18e9xM6pEgRcLA2TyjEmtkA4jX0JeN7WeCweMLiSxyGP7pSPSJdpJeXaFtRpSF62p/G0Z5wN9s05LHqDyqNVtCvg4WjkuV5LZSdLbMcYBWGBxQzCG6qowXFXIawmbaFiBZwTfOgNls9ndz5RGupAaxY317prxPFv/pXoesc1P8bdK09ZvjhbmmD66Q/BmS2dOMQ8rXRjuVdlR8j2QBtFZxekMcRD02nBAVnwHg1VWQMIRaGjdgmW4wOkirWVn7me177FnBxrxW1tG4= |
|
105 | 5b4ed033390bf6e2879c8f5c28c84e1ee3b87231 0 iQIVAwUAVPQL9CBXgaxoKi1yAQJIXxAAtD2hWhaKa+lABmCOYG92FE/WdqY/91Xv5atTL8Xeko/MkirIKZiOuxNWX+J34TVevINZSWmMfDSc5TkGxktL9jW/pDB/CXn+CVZpxRabPYFH9HM2K3g8VaTV1MFtV2+feOMDIPCmq5ogMF9/kXjmifiEBrJcFsE82fdexJ3OHoOY4iHFxEhh3GzvNqEQygk4VeU6VYziNvSQj9G//PsK3Bmk7zm5ScsZcMVML3SIYFuej1b1PI1v0N8mmCRooVNBGhD/eA0iLtdh/hSb9s/8UgJ4f9HOcx9zqs8V4i14lpd/fo0+yvFuVrVbWGzrDrk5EKLENhVPwvc1KA32PTQ4Z9u7VQIBIxq3K5lL2VlCMIYc1BSaSQBjuiLm8VdN6iDuf5poNZhk1rvtpQgpxJzh362dlGtR/iTJuLCeW7gCqWUAorLTeHy0bLQ/jSOeTAGys8bUHtlRL4QbnhLbUmJmRYVvCJ+Yt1aTgTSNcoFjoLJarR1169BXgdCA38BgReUL6kB224UJSTzB1hJUyB2LvCWrXZMipZmR99Iwdq7MePD3+AoSIXQNUMY9blxuuF5x7W2ikNXmVWuab4Z8rQRtmGqEuIMBSunxAnZSn+i8057dFKlq+/yGy+WW3RQg+RnLnwZs1zCDTfu98/GT5k5hFpjXZeUWWiOVwQJ5HrqncCw= |
@@ -115,3 +115,4 b' 6dad422ecc5adb63d9fa649eeb8e05a5f9bc4900' | |||
|
115 | 115 | 1265a3a71d75396f5d4cf6935ae7d9ba5407a547 3.2.4 |
|
116 | 116 | db8e3f7948b1fdeb9ad12d448fc3525759908b9f 3.3-rc |
|
117 | 117 | fbdd5195528fae4f41feebc1838215c110b25d6a 3.3 |
|
118 | 5b4ed033390bf6e2879c8f5c28c84e1ee3b87231 3.3.1 |
@@ -577,7 +577,7 b' def getstatuswriter(ui, repo, forcibly=N' | |||
|
577 | 577 | Otherwise, this returns the function to always write out (or |
|
578 | 578 | ignore if ``not forcibly``) status. |
|
579 | 579 | ''' |
|
580 | if forcibly is None: | |
|
580 | if forcibly is None and util.safehasattr(repo, '_largefilesenabled'): | |
|
581 | 581 | return repo._lfstatuswriters[-1] |
|
582 | 582 | else: |
|
583 | 583 | if forcibly: |
@@ -848,6 +848,9 b' def hgclone(orig, ui, opts, *args, **kwa' | |||
|
848 | 848 | return result |
|
849 | 849 | |
|
850 | 850 | def overriderebase(orig, ui, repo, **opts): |
|
851 | if not util.safehasattr(repo, '_largefilesenabled'): | |
|
852 | return orig(ui, repo, **opts) | |
|
853 | ||
|
851 | 854 | resuming = opts.get('continue') |
|
852 | 855 | repo._lfcommithooks.append(lfutil.automatedcommithook(resuming)) |
|
853 | 856 | repo._lfstatuswriters.append(lambda *msg, **opts: None) |
@@ -24,6 +24,9 b' def reposetup(ui, repo):' | |||
|
24 | 24 | return |
|
25 | 25 | |
|
26 | 26 | class lfilesrepo(repo.__class__): |
|
27 | # the mark to examine whether "repo" object enables largefiles or not | |
|
28 | _largefilesenabled = True | |
|
29 | ||
|
27 | 30 | lfstatus = False |
|
28 | 31 | def status_nolfiles(self, *args, **kwargs): |
|
29 | 32 | return super(lfilesrepo, self).status(*args, **kwargs) |
@@ -149,8 +149,8 b' msgid ""' | |||
|
149 | 149 | msgstr "" |
|
150 | 150 | "Project-Id-Version: Mercurial\n" |
|
151 | 151 | "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n" |
|
152 |
"POT-Creation-Date: 2015-0 |
|
|
153 |
"PO-Revision-Date: 2015-0 |
|
|
152 | "POT-Creation-Date: 2015-02-28 17:53+0900\n" | |
|
153 | "PO-Revision-Date: 2015-03-01 01:23+0900\n" | |
|
154 | 154 | "Last-Translator: Japanese translation team <mercurial-ja@googlegroups.com>\n" |
|
155 | 155 | "Language-Team: Japanese\n" |
|
156 | 156 | "Language: ja\n" |
@@ -24938,13 +24938,13 b' msgstr "\xe6\x97\xa7\xe5\xbd\xa2\xe5\xbc\x8f\xe3\x81\xae obsstore \xe3\x81\xa7\xe3\x81\xaf sha256 \xe3\x82\x92\xe6\x89\xb1\xe3\x81\x88\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93"' | |||
|
24938 | 24938 | msgid "parsing obsolete marker: unknown version %r" |
|
24939 | 24939 | msgstr "廃止情報解析: 未知のリビジョン %r" |
|
24940 | 24940 | |
|
24941 | msgid "bad obsolescence marker detected: invalid successors nullid" | |
|
24942 | msgstr "不正な廃止情報を検出: 後継としての null 指定は不正です" | |
|
24943 | ||
|
24941 | 24944 | #, python-format |
|
24942 | 24945 | msgid "in-marker cycle with %s" |
|
24943 | 24946 | msgstr "マーカ %s における循環参照があります" |
|
24944 | 24947 | |
|
24945 | msgid "bad obsolescence marker detected: invalid successors nullid" | |
|
24946 | msgstr "不正な廃止情報を検出: 後継としての null 指定は不正です" | |
|
24947 | ||
|
24948 | 24948 | #, python-format |
|
24949 | 24949 | msgid "unknown key: %r" |
|
24950 | 24950 | msgstr "未知のキーです: %r" |
@@ -25559,6 +25559,9 b' msgid ""' | |||
|
25559 | 25559 | "we'll\n" |
|
25560 | 25560 | " work around it to return a non-filtered value." |
|
25561 | 25561 | msgstr "" |
|
25562 | " 不可視なリビジョンが該当する場合は、 別な可視リビジョンが無いか、\n" | |
|
25563 | " ある程度の事後処理が実施されます (※ 訳注: 代替リビジョンの返却は、\n" | |
|
25564 | " 未保証です)" | |
|
25562 | 25565 | |
|
25563 | 25566 | #. i18n: "filelog" is a keyword |
|
25564 | 25567 | msgid "filelog requires a pattern" |
@@ -26990,6 +26993,9 b' msgstr ":rev: \xe6\x95\xb4\xe6\x95\xb0\xe3\x80\x82 \xe5\x90\x84\xe3\x83\xaa\xe3\x83\x9d\xe3\x82\xb8\xe3\x83\x88\xe3\x83\xaa\xe5\x9b\xba\xe6\x9c\x89\xe3\x81\xae\xe3\x83\xaa\xe3\x83\x93\xe3\x82\xb8\xe3\x83\xa7\xe3\x83\xb3\xe7\x95\xaa\xe5\x8f\xb7\xe3\x80\x82"' | |||
|
26990 | 26993 | msgid ":subrepos: List of strings. Updated subrepositories in the changeset." |
|
26991 | 26994 | msgstr ":subrepos: 文字列挙。 当該リビジョンで更新されたサブリポジトリ名。" |
|
26992 | 26995 | |
|
26996 | msgid ":tags: List of strings. Any tags associated with the changeset." | |
|
26997 | msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたタグの一覧。" | |
|
26998 | ||
|
26993 | 26999 | msgid "" |
|
26994 | 27000 | ":parents: List of strings. The parents of the changeset in \"rev:node\"\n" |
|
26995 | 27001 | " format. If the changeset has only one \"natural\" parent (the " |
@@ -27591,6 +27597,3 b' msgstr "\xe9\x80\xa3\xe6\x90\xba\xe5\x85\x88\xe3\x81\xa7\xe3\x81\xae\xe5\xa4\x89\xe6\x9b\xb4\xe3\x81\xae\xe6\xa4\x9c\xe7\xb4\xa2"' | |||
|
27591 | 27597 | |
|
27592 | 27598 | msgid "number of cpus must be an integer" |
|
27593 | 27599 | msgstr "CPU 数には数値を指定してください" |
|
27594 | ||
|
27595 | msgid ":tags: List of strings. Any tags associated with the changeset." | |
|
27596 | msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたタグの一覧。" |
@@ -25509,14 +25509,14 b' msgstr "n\xc3\xa3o \xc3\xa9 poss\xc3\xadvel lidar com sha256 com o formato obsstore antigo"' | |||
|
25509 | 25509 | msgid "parsing obsolete marker: unknown version %r" |
|
25510 | 25510 | msgstr "decodificando marcações de obsolescência: versão desconhecida %r" |
|
25511 | 25511 | |
|
25512 | msgid "bad obsolescence marker detected: invalid successors nullid" | |
|
25513 | msgstr "" | |
|
25514 | "marcação de obsolescência inválida detectada: sucessores nullid inválidos" | |
|
25515 | ||
|
25512 | 25516 | #, python-format |
|
25513 | 25517 | msgid "in-marker cycle with %s" |
|
25514 | 25518 | msgstr "ciclo nos marcadores com %s" |
|
25515 | 25519 | |
|
25516 | msgid "bad obsolescence marker detected: invalid successors nullid" | |
|
25517 | msgstr "" | |
|
25518 | "marcação de obsolescência inválida detectada: sucessores nullid inválidos" | |
|
25519 | ||
|
25520 | 25520 | #, python-format |
|
25521 | 25521 | msgid "unknown key: %r" |
|
25522 | 25522 | msgstr "chave desconhecida: %r" |
@@ -25690,8 +25690,9 b' msgid "killed by signal %d"' | |||
|
25690 | 25690 | msgstr "morto pelo sinal %d" |
|
25691 | 25691 | |
|
25692 | 25692 | #, python-format |
|
25693 | msgid "unknown strip-bundle2-version value %r; " | |
|
25694 | msgstr "valor desconhecido de strip-bundle2-version %r; " | |
|
25693 | msgid "unknown strip-bundle2-version value %r; should be one of %r\n" | |
|
25694 | msgstr "" | |
|
25695 | "valor desconhecido de strip-bundle2-version %r; deveria ser um dentre %r\n" | |
|
25695 | 25696 | |
|
25696 | 25697 | #, python-format |
|
25697 | 25698 | msgid "saved backup bundle to %s\n" |
@@ -27610,6 +27611,9 b' msgstr ":rev: Inteiro. O n\xc3\xbamero de ordem da revis\xc3\xa3o no reposit\xc3\xb3rio local."' | |||
|
27610 | 27611 | msgid ":subrepos: List of strings. Updated subrepositories in the changeset." |
|
27611 | 27612 | msgstr ":subrepos: Lista de strings. Sub-repositórios atualizados na revisão." |
|
27612 | 27613 | |
|
27614 | msgid ":tags: List of strings. Any tags associated with the changeset." | |
|
27615 | msgstr ":tags: Lista de strings. Quaisquer etiquetas associadas à revisão." | |
|
27616 | ||
|
27613 | 27617 | msgid "" |
|
27614 | 27618 | ":parents: List of strings. The parents of the changeset in \"rev:node\"\n" |
|
27615 | 27619 | " format. If the changeset has only one \"natural\" parent (the predecessor\n" |
@@ -28249,6 +28253,3 b' msgstr "o n\xc3\xbamero de cpus deve ser um inteiro"' | |||
|
28249 | 28253 | |
|
28250 | 28254 | #~ msgid "graft for revision %s is empty\n" |
|
28251 | 28255 | #~ msgstr "o enxerto para a revisão %s é vazio\n" |
|
28252 | ||
|
28253 | #~ msgid ":tags: List of strings. Any tags associated with the changeset." | |
|
28254 | #~ msgstr ":tags: Lista de strings. Quaisquer etiquetas associadas à revisão." |
@@ -330,7 +330,7 b' class revbranchcache(object):' | |||
|
330 | 330 | and will grow with it but be 1/8th of its size. |
|
331 | 331 | """ |
|
332 | 332 | |
|
333 | def __init__(self, repo): | |
|
333 | def __init__(self, repo, readonly=True): | |
|
334 | 334 | assert repo.filtername is None |
|
335 | 335 | self._names = [] # branch names in local encoding with static index |
|
336 | 336 | self._rbcrevs = array('c') # structs of type _rbcrecfmt |
@@ -342,6 +342,10 b' class revbranchcache(object):' | |||
|
342 | 342 | except (IOError, OSError), inst: |
|
343 | 343 | repo.ui.debug("couldn't read revision branch cache names: %s\n" % |
|
344 | 344 | inst) |
|
345 | if readonly: | |
|
346 | # don't try to use cache - fall back to the slow path | |
|
347 | self.branchinfo = self._branchinfo | |
|
348 | ||
|
345 | 349 | if self._names: |
|
346 | 350 | try: |
|
347 | 351 | data = repo.vfs.read(_rbcrevs) |
@@ -227,6 +227,9 b' def _runcatch(req):' | |||
|
227 | 227 | except (AttributeError, IndexError): |
|
228 | 228 | # it might be anything, for example a string |
|
229 | 229 | reason = inst.reason |
|
230 | if isinstance(reason, unicode): | |
|
231 | # SSLError of Python 2.7.9 contains a unicode | |
|
232 | reason = reason.encode(encoding.encoding, 'replace') | |
|
230 | 233 | ui.warn(_("abort: error: %s\n") % reason) |
|
231 | 234 | elif (util.safehasattr(inst, "args") |
|
232 | 235 | and inst.args and inst.args[0] == errno.EPIPE): |
@@ -41,7 +41,8 b' class namespaces(object):' | |||
|
41 | 41 | # i18n: column positioning for "hg log" |
|
42 | 42 | logfmt=_("tag: %s\n"), |
|
43 | 43 | listnames=tagnames, |
|
44 |
namemap=tagnamemap, nodemap=tagnodemap |
|
|
44 | namemap=tagnamemap, nodemap=tagnodemap, | |
|
45 | deprecated=set(['tip'])) | |
|
45 | 46 | self.addnamespace(n) |
|
46 | 47 | |
|
47 | 48 | bnames = lambda repo: repo.branchmap().keys() |
@@ -126,11 +127,13 b' class namespace(object):' | |||
|
126 | 127 | dictionary) |
|
127 | 128 | 'namemap': function that takes a name and returns a list of nodes |
|
128 | 129 | 'nodemap': function that takes a node and returns a list of names |
|
130 | 'deprecated': set of names to be masked for ordinary use | |
|
129 | 131 | |
|
130 | 132 | """ |
|
131 | 133 | |
|
132 | 134 | def __init__(self, name, templatename=None, logname=None, colorname=None, |
|
133 |
logfmt=None, listnames=None, namemap=None, nodemap=None |
|
|
135 | logfmt=None, listnames=None, namemap=None, nodemap=None, | |
|
136 | deprecated=None): | |
|
134 | 137 | """create a namespace |
|
135 | 138 | |
|
136 | 139 | name: the namespace to be registered (in plural form) |
@@ -144,6 +147,7 b' class namespace(object):' | |||
|
144 | 147 | listnames: function to list all names |
|
145 | 148 | namemap: function that inputs a node, output name(s) |
|
146 | 149 | nodemap: function that inputs a name, output node(s) |
|
150 | deprecated: set of names to be masked for ordinary use | |
|
147 | 151 | |
|
148 | 152 | """ |
|
149 | 153 | self.name = name |
@@ -168,6 +172,11 b' class namespace(object):' | |||
|
168 | 172 | # i18n: column positioning for "hg log" |
|
169 | 173 | self.logfmt = ("%s:" % self.logname).ljust(13) + "%s\n" |
|
170 | 174 | |
|
175 | if deprecated is None: | |
|
176 | self.deprecated = set() | |
|
177 | else: | |
|
178 | self.deprecated = deprecated | |
|
179 | ||
|
171 | 180 | def names(self, repo, node): |
|
172 | 181 | """method that returns a (sorted) list of names in a namespace that |
|
173 | 182 | match a given node""" |
@@ -274,7 +274,8 b' class repoview(object):' | |||
|
274 | 274 | unfichangelog = unfi.changelog |
|
275 | 275 | revs = filterrevs(unfi, self.filtername) |
|
276 | 276 | cl = self._clcache |
|
277 |
newkey = (len(unfichangelog), unfichangelog.tip(), hash(revs) |
|
|
277 | newkey = (len(unfichangelog), unfichangelog.tip(), hash(revs), | |
|
278 | unfichangelog._delayed) | |
|
278 | 279 | if cl is not None: |
|
279 | 280 | # we need to check curkey too for some obscure reason. |
|
280 | 281 | # MQ test show a corruption of the underlying repo (in _clcache) |
@@ -282,7 +283,7 b' class repoview(object):' | |||
|
282 | 283 | oldfilter = cl.filteredrevs |
|
283 | 284 | try: |
|
284 | 285 | cl.filteredrevs = () # disable filtering for tip |
|
285 | curkey = (len(cl), cl.tip(), hash(oldfilter)) | |
|
286 | curkey = (len(cl), cl.tip(), hash(oldfilter), cl._delayed) | |
|
286 | 287 | finally: |
|
287 | 288 | cl.filteredrevs = oldfilter |
|
288 | 289 | if newkey != self._clcachekey or newkey != curkey: |
@@ -527,7 +527,7 b' def branch(repo, subset, x):' | |||
|
527 | 527 | import branchmap |
|
528 | 528 | urepo = repo.unfiltered() |
|
529 | 529 | ucl = urepo.changelog |
|
530 | getbi = branchmap.revbranchcache(urepo).branchinfo | |
|
530 | getbi = branchmap.revbranchcache(urepo, readonly=True).branchinfo | |
|
531 | 531 | |
|
532 | 532 | try: |
|
533 | 533 | b = getstring(x, '') |
@@ -1277,6 +1277,7 b' def named(repo, subset, x):' | |||
|
1277 | 1277 | names = set() |
|
1278 | 1278 | for ns in namespaces: |
|
1279 | 1279 | for name in ns.listnames(repo): |
|
1280 | if name not in ns.deprecated: | |
|
1280 | 1281 | names.update(repo[n].rev() for n in ns.nodes(repo, name)) |
|
1281 | 1282 | |
|
1282 | 1283 | names -= set([node.nullrev]) |
@@ -199,10 +199,10 b' def showbookmarks(**args):' | |||
|
199 | 199 | """ |
|
200 | 200 | repo = args['ctx']._repo |
|
201 | 201 | bookmarks = args['ctx'].bookmarks() |
|
202 | hybrid = showlist('bookmark', bookmarks, **args) | |
|
203 | for value in hybrid.values: | |
|
204 | value['current'] = repo._bookmarkcurrent | |
|
205 | return hybrid | |
|
202 | current = repo._bookmarkcurrent | |
|
203 | c = [{'bookmark': x, 'current': current} for x in bookmarks] | |
|
204 | f = _showlist('bookmark', bookmarks, **args) | |
|
205 | return _hybrid(f, c, lambda x: x['bookmark']) | |
|
206 | 206 | |
|
207 | 207 | def showchildren(**args): |
|
208 | 208 | """:children: List of strings. The children of the changeset.""" |
@@ -720,7 +720,9 b' def copyfile(src, dest, hardlink=False):' | |||
|
720 | 720 | "copy a file, preserving mode and atime/mtime" |
|
721 | 721 | if os.path.lexists(dest): |
|
722 | 722 | unlink(dest) |
|
723 | if hardlink: | |
|
723 | # hardlinks are problematic on CIFS, quietly ignore this flag | |
|
724 | # until we find a way to work around it cleanly (issue4546) | |
|
725 | if False or hardlink: | |
|
724 | 726 | try: |
|
725 | 727 | oslink(src, dest) |
|
726 | 728 | return |
@@ -2381,6 +2381,11 b' Test current bookmark templating' | |||
|
2381 | 2381 | 2 |
|
2382 | 2382 | 1 |
|
2383 | 2383 | 0 |
|
2384 | $ hg book -r1 baz | |
|
2385 | $ hg log --template "{rev} {join(bookmarks, ' ')}\n" | |
|
2386 | 2 bar foo | |
|
2387 | 1 baz | |
|
2388 | 0 | |
|
2384 | 2389 | |
|
2385 | 2390 | Test stringify on sub expressions |
|
2386 | 2391 |
@@ -179,7 +179,7 b' Test pre-72a89cf86fcd backward compatibi' | |||
|
179 | 179 | TODO |
|
180 | 180 | #else |
|
181 | 181 | $ hg --debug odd | grep '^running' |
|
182 |
running "*/ |
|
|
182 | running "*/echo --foo='sp ace' 'sp ace' --bar='sp ace' 'sp ace'" in * (glob) | |
|
183 | 183 | #endif |
|
184 | 184 | |
|
185 | 185 | Empty argument must be quoted |
@@ -915,6 +915,77 b' locally (issue4109)' | |||
|
915 | 915 | $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS |
|
916 | 916 | #endif |
|
917 | 917 | |
|
918 | Test overridden functions work correctly even for repos disabling | |
|
919 | largefiles (issue4547) | |
|
920 | ||
|
921 | $ hg showconfig extensions | grep largefiles | |
|
922 | extensions.largefiles=! | |
|
923 | ||
|
924 | (test updating implied by clone) | |
|
925 | ||
|
926 | $ hg init enabled-but-no-largefiles | |
|
927 | $ echo normal1 > enabled-but-no-largefiles/normal1 | |
|
928 | $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal1 | |
|
929 | $ hg -R enabled-but-no-largefiles commit -m '#0@enabled-but-no-largefiles' | |
|
930 | Invoking status precommit hook | |
|
931 | A normal1 | |
|
932 | $ cat >> enabled-but-no-largefiles/.hg/hgrc <<EOF | |
|
933 | > [extensions] | |
|
934 | > # enable locally | |
|
935 | > largefiles= | |
|
936 | > EOF | |
|
937 | $ hg clone -q enabled-but-no-largefiles no-largefiles | |
|
938 | ||
|
939 | (test rebasing implied by pull: precommit while rebasing unexpectedly | |
|
940 | shows "normal3" as "?", because lfdirstate isn't yet written out at | |
|
941 | that time) | |
|
942 | ||
|
943 | $ echo normal2 > enabled-but-no-largefiles/normal2 | |
|
944 | $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal2 | |
|
945 | $ hg -R enabled-but-no-largefiles commit -m '#1@enabled-but-no-largefiles' | |
|
946 | Invoking status precommit hook | |
|
947 | A normal2 | |
|
948 | ||
|
949 | $ echo normal3 > no-largefiles/normal3 | |
|
950 | $ hg -R no-largefiles add no-largefiles/normal3 | |
|
951 | $ hg -R no-largefiles commit -m '#1@no-largefiles' | |
|
952 | Invoking status precommit hook | |
|
953 | A normal3 | |
|
954 | ||
|
955 | $ hg -R no-largefiles -q pull --rebase | |
|
956 | Invoking status precommit hook | |
|
957 | ? normal3 | |
|
958 | ||
|
959 | (test reverting) | |
|
960 | ||
|
961 | $ hg init subrepo-root | |
|
962 | $ cat >> subrepo-root/.hg/hgrc <<EOF | |
|
963 | > [extensions] | |
|
964 | > # enable locally | |
|
965 | > largefiles= | |
|
966 | > EOF | |
|
967 | $ echo large > subrepo-root/large | |
|
968 | $ hg -R subrepo-root add --large subrepo-root/large | |
|
969 | $ hg clone -q no-largefiles subrepo-root/no-largefiles | |
|
970 | $ cat > subrepo-root/.hgsub <<EOF | |
|
971 | > no-largefiles = no-largefiles | |
|
972 | > EOF | |
|
973 | $ hg -R subrepo-root add subrepo-root/.hgsub | |
|
974 | $ hg -R subrepo-root commit -m '#0' | |
|
975 | Invoking status precommit hook | |
|
976 | A .hgsub | |
|
977 | A large | |
|
978 | ? .hgsubstate | |
|
979 | $ echo dirty >> subrepo-root/large | |
|
980 | $ echo dirty >> subrepo-root/no-largefiles/normal1 | |
|
981 | $ hg -R subrepo-root status -S | |
|
982 | M large | |
|
983 | M no-largefiles/normal1 | |
|
984 | $ hg -R subrepo-root revert --all | |
|
985 | reverting subrepo-root/.hglf/large (glob) | |
|
986 | reverting subrepo no-largefiles | |
|
987 | reverting subrepo-root/no-largefiles/normal1 (glob) | |
|
988 | ||
|
918 | 989 | $ cd .. |
|
919 | 990 | |
|
920 | 991 |
General Comments 0
You need to be logged in to leave comments.
Login now