##// END OF EJS Templates
merge with stable
Matt Mackall -
r21832:4b93e19c merge default
parent child Browse files
Show More
@@ -89,3 +89,4 b' 3f83fc5cfe715d292069ee8417c83804f6c6c1e4'
89 564f55b251224f16508dd1311452db7780dafe2b 0 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
@@ -102,3 +102,4 b' 3f83fc5cfe715d292069ee8417c83804f6c6c1e4'
102 564f55b251224f16508dd1311452db7780dafe2b 3.0-rc
102 564f55b251224f16508dd1311452db7780dafe2b 3.0-rc
103 2195ac506c6ababe86985b932f4948837c0891b5 3.0
103 2195ac506c6ababe86985b932f4948837c0891b5 3.0
104 269c80ee5b3cb3684fa8edc61501b3506d02eb10 3.0.1
104 269c80ee5b3cb3684fa8edc61501b3506d02eb10 3.0.1
105 2d8cd3d0e83c7336c0cb45a9f88638363f993848 3.0.2
@@ -343,7 +343,16 b' def rebase(ui, repo, **opts):'
343 'resolve, then hg rebase --continue)'))
343 'resolve, then hg rebase --continue)'))
344 finally:
344 finally:
345 ui.setconfig('ui', 'forcemerge', '', 'rebase')
345 ui.setconfig('ui', 'forcemerge', '', 'rebase')
346 cmdutil.duplicatecopies(repo, rev, target)
346 if collapsef:
347 cmdutil.duplicatecopies(repo, rev, target)
348 else:
349 # If we're not using --collapse, we need to
350 # duplicate copies between the revision we're
351 # rebasing and its first parent, but *not*
352 # duplicate any copies that have already been
353 # performed in the destination.
354 p1rev = repo[rev].p1().rev()
355 cmdutil.duplicatecopies(repo, rev, p1rev, skiprev=target)
347 if not collapsef:
356 if not collapsef:
348 newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn,
357 newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn,
349 editor=editor)
358 editor=editor)
@@ -149,8 +149,8 b' msgid ""'
149 msgstr ""
149 msgstr ""
150 "Project-Id-Version: Mercurial\n"
150 "Project-Id-Version: Mercurial\n"
151 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
151 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
152 "POT-Creation-Date: 2014-05-30 19:32+0900\n"
152 "POT-Creation-Date: 2014-06-30 18:45+0900\n"
153 "PO-Revision-Date: 2014-05-30 19:43+0900\n"
153 "PO-Revision-Date: 2014-06-30 19:03+0900\n"
154 "Last-Translator: Japanese translation team <mercurial-ja@googlegroups.com>\n"
154 "Last-Translator: Japanese translation team <mercurial-ja@googlegroups.com>\n"
155 "Language-Team: Japanese\n"
155 "Language-Team: Japanese\n"
156 "Language: ja\n"
156 "Language: ja\n"
@@ -15297,6 +15297,10 b' msgid "no definition for alias \'%s\'\\n"'
15297 msgstr "別名コマンド '%s' には実行対象の記述がありません\n"
15297 msgstr "別名コマンド '%s' には実行対象の記述がありません\n"
15298
15298
15299 #, python-format
15299 #, python-format
15300 msgid "error in definition for alias '%s': %s\n"
15301 msgstr "別名コマンド '%s' の定義が不正です: %s\n"
15302
15303 #, python-format
15300 msgid ""
15304 msgid ""
15301 "error in definition for alias '%s': %s may only be given on the command "
15305 "error in definition for alias '%s': %s may only be given on the command "
15302 "line\n"
15306 "line\n"
@@ -25204,8 +25208,8 b' msgid "default path for subrepository no'
25204 msgstr "サブリポジトリの連携先が見つかりません"
25208 msgstr "サブリポジトリの連携先が見つかりません"
25205
25209
25206 #, python-format
25210 #, python-format
25207 msgid "warning: removing potentially hostile .hg/hgrc in '%s'"
25211 msgid "warning: removing potentially hostile 'hgrc' in '%s'\n"
25208 msgstr "警告: '%s' 中の .hg/hgrc は潜在的な問題となりえるため破棄します"
25212 msgstr "警告: 潜在的な問題となりえる '%s' 中の hgrc ファイルを破棄します\n"
25209
25213
25210 #, python-format
25214 #, python-format
25211 msgid "unknown subrepo type %s"
25215 msgid "unknown subrepo type %s"
@@ -8265,13 +8265,13 b' msgstr "n\xc3\xa3o se pode especificar ao mesmo tempo uma revis\xc3\xa3o e uma origem"'
8265 msgid "empty \"rev\" revision set - nothing to rebase\n"
8265 msgid "empty \"rev\" revision set - nothing to rebase\n"
8266 msgstr "conjunto de revisões \"rev\" vazio - nada para rebasear\n"
8266 msgstr "conjunto de revisões \"rev\" vazio - nada para rebasear\n"
8267
8267
8268 msgid "empty \"source\" revision set - nothing to rebase"
8268 msgid "empty \"source\" revision set - nothing to rebase\n"
8269 msgstr "conjunto de revisões \"fonte\" vazio - nada para rebasear"
8269 msgstr "conjunto de revisões \"fonte\" vazio - nada para rebasear\n"
8270
8270
8271 msgid "empty \"base\" revision set - can't compute rebase set"
8271 msgid "empty \"base\" revision set - can't compute rebase set\n"
8272 msgstr ""
8272 msgstr ""
8273 "conjunto de revisões \"base\" vazio - não é possível calcular o conjunto de "
8273 "conjunto de revisões \"base\" vazio - não é possível calcular o conjunto de "
8274 "rebaseamento"
8274 "rebaseamento\n"
8275
8275
8276 #, python-format
8276 #, python-format
8277 msgid "nothing to rebase - %s is both \"base\" and destination\n"
8277 msgid "nothing to rebase - %s is both \"base\" and destination\n"
@@ -15604,6 +15604,10 b' msgid "no definition for alias \'%s\'\\n"'
15604 msgstr "nenhuma definição para o apelido '%s'\n"
15604 msgstr "nenhuma definição para o apelido '%s'\n"
15605
15605
15606 #, python-format
15606 #, python-format
15607 msgid "error in definition for alias '%s': %s\n"
15608 msgstr "erro na definição do apelido '%s': %s\n"
15609
15610 #, python-format
15607 msgid ""
15611 msgid ""
15608 "error in definition for alias '%s': %s may only be given on the command "
15612 "error in definition for alias '%s': %s may only be given on the command "
15609 "line\n"
15613 "line\n"
@@ -24133,31 +24137,35 b' msgstr "nota: poss\xc3\xadvel conflito - %s foi renomeado m\xc3\xbaltiplas vezes para:\\n"'
24133 msgid "note: possible conflict - %s was deleted and renamed to:\n"
24137 msgid "note: possible conflict - %s was deleted and renamed to:\n"
24134 msgstr "nota: possível conflito - %s foi apagado e renomeado para:\n"
24138 msgstr "nota: possível conflito - %s foi apagado e renomeado para:\n"
24135
24139
24136 #, fuzzy, python-format
24140 #, python-format
24137 msgid "note: merging %s and %s using bids from ancestors %s\n"
24141 msgid "note: merging %s and %s using bids from ancestors %s\n"
24138 msgstr ""
24142 msgstr "nota: mesclando %s e %s usando lances dos ancestrais %s\n"
24139
24143
24140 #, python-format
24144 #, python-format
24141 msgid ""
24145 msgid ""
24142 "\n"
24146 "\n"
24143 "calculating bids for ancestor %s\n"
24147 "calculating bids for ancestor %s\n"
24144 msgstr ""
24148 msgstr ""
24149 "\n"
24150 "calculando lances para o ancestral %s\n"
24145
24151
24146 msgid ""
24152 msgid ""
24147 "\n"
24153 "\n"
24148 "auction for merging merge bids\n"
24154 "auction for merging merge bids\n"
24149 msgstr ""
24155 msgstr ""
24156 "\n"
24157 "leilão para mesclar lances de mesclagem\n"
24150
24158
24151 #, python-format
24159 #, python-format
24152 msgid " %s: multiple bids for merge action:\n"
24160 msgid " %s: multiple bids for merge action:\n"
24153 msgstr ""
24161 msgstr " %s: múltiplos lances para ação de mesclagem:\n"
24154
24162
24155 #, python-format
24163 #, python-format
24156 msgid " %s: ambiguous merge - picked %s action\n"
24164 msgid " %s: ambiguous merge - picked %s action\n"
24157 msgstr ""
24165 msgstr " %s: mesclagem ambígua - escolhida a ação %s\n"
24158
24166
24159 msgid "end of auction"
24167 msgid "end of auction"
24160 msgstr ""
24168 msgstr "fim do leilão"
24161
24169
24162 #, python-format
24170 #, python-format
24163 msgid ""
24171 msgid ""
@@ -25737,8 +25745,8 b' msgid "default path for subrepository no'
25737 msgstr "o caminho padrão para o sub-repositório não foi encontrado"
25745 msgstr "o caminho padrão para o sub-repositório não foi encontrado"
25738
25746
25739 #, python-format
25747 #, python-format
25740 msgid "warning: removing potentially hostile .hg/hgrc in '%s'"
25748 msgid "warning: removing potentially hostile 'hgrc' in '%s'\n"
25741 msgstr "aviso: removendo .hg/hgrc potencialmente hostil em '%s'"
25749 msgstr "aviso: removendo 'hgrc' potencialmente hostil em '%s'\n"
25742
25750
25743 #, python-format
25751 #, python-format
25744 msgid "unknown subrepo type %s"
25752 msgid "unknown subrepo type %s"
@@ -1944,11 +1944,22 b' def cat(ui, repo, ctx, matcher, prefix, '
1944
1944
1945 return err
1945 return err
1946
1946
1947 def duplicatecopies(repo, rev, fromrev):
1947 def duplicatecopies(repo, rev, fromrev, skiprev=None):
1948 '''reproduce copies from fromrev to rev in the dirstate'''
1948 '''reproduce copies from fromrev to rev in the dirstate
1949
1950 If skiprev is specified, it's a revision that should be used to
1951 filter copy records. Any copies that occur between fromrev and
1952 skiprev will not be duplicated, even if they appear in the set of
1953 copies between fromrev and rev.
1954 '''
1955 exclude = {}
1956 if skiprev is not None:
1957 exclude = copies.pathcopies(repo[fromrev], repo[skiprev])
1949 for dst, src in copies.pathcopies(repo[fromrev], repo[rev]).iteritems():
1958 for dst, src in copies.pathcopies(repo[fromrev], repo[rev]).iteritems():
1950 # copies.pathcopies returns backward renames, so dst might not
1959 # copies.pathcopies returns backward renames, so dst might not
1951 # actually be in the dirstate
1960 # actually be in the dirstate
1961 if dst in exclude:
1962 continue
1952 if repo.dirstate[dst] in "nma":
1963 if repo.dirstate[dst] in "nma":
1953 repo.dirstate.copy(src, dst)
1964 repo.dirstate.copy(src, dst)
1954
1965
@@ -73,6 +73,15 b' def readlocaltags(ui, repo, alltags, tag'
73 filetags = _readtags(
73 filetags = _readtags(
74 ui, repo, data.splitlines(), "localtags",
74 ui, repo, data.splitlines(), "localtags",
75 recode=encoding.fromlocal)
75 recode=encoding.fromlocal)
76
77 # remove tags pointing to invalid nodes
78 cl = repo.changelog
79 for t in filetags.keys():
80 try:
81 cl.rev(filetags[t][0])
82 except (LookupError, ValueError):
83 del filetags[t]
84
76 _updatetags(filetags, "local", alltags, tagtypes)
85 _updatetags(filetags, "local", alltags, tagtypes)
77
86
78 def _readtags(ui, repo, lines, fn, recode=None):
87 def _readtags(ui, repo, lines, fn, recode=None):
@@ -907,3 +907,15 b' Test that a local tag blocks a changeset'
907 date: Thu Jan 01 00:00:00 1970 +0000
907 date: Thu Jan 01 00:00:00 1970 +0000
908 summary: A
908 summary: A
909
909
910 Test that removing a local tag does not cause some commands to fail
911
912 $ hg tag -l -r tip tiptag
913 $ hg tags
914 tiptag 2:3816541e5485
915 tip 2:3816541e5485
916 visible 0:193e9254ce7e
917 $ hg --config extensions.strip= strip -r tip --no-backup
918 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
919 $ hg tags
920 visible 0:193e9254ce7e
921 tip 0:193e9254ce7e
@@ -240,3 +240,84 b' Test rebase across repeating renames:'
240 1 files changed, 1 insertions(+), 0 deletions(-)
240 1 files changed, 1 insertions(+), 0 deletions(-)
241
241
242 $ cd ..
242 $ cd ..
243
244 Verify that copies get preserved (issue4192).
245 $ hg init copy-gets-preserved
246 $ cd copy-gets-preserved
247
248 $ echo a > a
249 $ hg add a
250 $ hg commit --message "File a created"
251 $ hg copy a b
252 $ echo b > b
253 $ hg commit --message "File b created as copy of a and modified"
254 $ hg copy b c
255 $ echo c > c
256 $ hg commit --message "File c created as copy of b and modified"
257 $ hg copy c d
258 $ echo d > d
259 $ hg commit --message "File d created as copy of c and modified"
260
261 Note that there are four entries in the log for d
262 $ hg tglog --follow d
263 @ 3: 'File d created as copy of c and modified'
264 |
265 o 2: 'File c created as copy of b and modified'
266 |
267 o 1: 'File b created as copy of a and modified'
268 |
269 o 0: 'File a created'
270
271 Update back to before we performed copies, and inject an unrelated change.
272 $ hg update 0
273 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
274
275 $ echo unrelated > unrelated
276 $ hg add unrelated
277 $ hg commit --message "Unrelated file created"
278 created new head
279 $ hg update 4
280 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
281
282 Rebase the copies on top of the unrelated change.
283 $ hg rebase --source 1 --dest 4
284 saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/*.hg (glob)
285 $ hg update 4
286 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
287
288 There should still be four entries in the log for d
289 $ hg tglog --follow d
290 @ 4: 'File d created as copy of c and modified'
291 |
292 o 3: 'File c created as copy of b and modified'
293 |
294 o 2: 'File b created as copy of a and modified'
295 |
296 o 0: 'File a created'
297
298 Same steps as above, but with --collapse on rebase to make sure the
299 copy records collapse correctly.
300 $ hg co 1
301 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
302 $ echo more >> unrelated
303 $ hg ci -m 'unrelated commit is unrelated'
304 created new head
305 $ hg rebase -s 2 --dest 5 --collapse
306 merging b and c to c
307 merging c and d to d
308 saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/*.hg (glob)
309 $ hg co tip
310 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
311
312 This should show both revision 3 and 0 since 'd' was transitively a
313 copy of 'a'.
314
315 $ hg tglog --follow d
316 @ 3: 'Collapsed revision
317 | * File b created as copy of a and modified
318 | * File c created as copy of b and modified
319 | * File d created as copy of c and modified'
320 o 0: 'File a created'
321
322
323 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now