##// 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 89 564f55b251224f16508dd1311452db7780dafe2b 0 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
@@ -102,3 +102,4 b' 3f83fc5cfe715d292069ee8417c83804f6c6c1e4'
102 102 564f55b251224f16508dd1311452db7780dafe2b 3.0-rc
103 103 2195ac506c6ababe86985b932f4948837c0891b5 3.0
104 104 269c80ee5b3cb3684fa8edc61501b3506d02eb10 3.0.1
105 2d8cd3d0e83c7336c0cb45a9f88638363f993848 3.0.2
@@ -343,7 +343,16 b' def rebase(ui, repo, **opts):'
343 343 'resolve, then hg rebase --continue)'))
344 344 finally:
345 345 ui.setconfig('ui', 'forcemerge', '', 'rebase')
346 if collapsef:
346 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 356 if not collapsef:
348 357 newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn,
349 358 editor=editor)
@@ -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: 2014-05-30 19:32+0900\n"
153 "PO-Revision-Date: 2014-05-30 19:43+0900\n"
152 "POT-Creation-Date: 2014-06-30 18:45+0900\n"
153 "PO-Revision-Date: 2014-06-30 19:03+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"
@@ -15297,6 +15297,10 b' msgid "no definition for alias \'%s\'\\n"'
15297 15297 msgstr "別名コマンド '%s' には実行対象の記述がありません\n"
15298 15298
15299 15299 #, python-format
15300 msgid "error in definition for alias '%s': %s\n"
15301 msgstr "別名コマンド '%s' の定義が不正です: %s\n"
15302
15303 #, python-format
15300 15304 msgid ""
15301 15305 "error in definition for alias '%s': %s may only be given on the command "
15302 15306 "line\n"
@@ -25204,8 +25208,8 b' msgid "default path for subrepository no'
25204 25208 msgstr "サブリポジトリの連携先が見つかりません"
25205 25209
25206 25210 #, python-format
25207 msgid "warning: removing potentially hostile .hg/hgrc in '%s'"
25208 msgstr "警告: '%s' 中の .hg/hgrc は潜在的な問題となりえるため破棄します"
25211 msgid "warning: removing potentially hostile 'hgrc' in '%s'\n"
25212 msgstr "警告: 潜在的な問題となりえる '%s' 中の hgrc ファイルを破棄します\n"
25209 25213
25210 25214 #, python-format
25211 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 8265 msgid "empty \"rev\" revision set - nothing to rebase\n"
8266 8266 msgstr "conjunto de revisões \"rev\" vazio - nada para rebasear\n"
8267 8267
8268 msgid "empty \"source\" revision set - nothing to rebase"
8269 msgstr "conjunto de revisões \"fonte\" vazio - nada para rebasear"
8270
8271 msgid "empty \"base\" revision set - can't compute rebase set"
8268 msgid "empty \"source\" revision set - nothing to rebase\n"
8269 msgstr "conjunto de revisões \"fonte\" vazio - nada para rebasear\n"
8270
8271 msgid "empty \"base\" revision set - can't compute rebase set\n"
8272 8272 msgstr ""
8273 8273 "conjunto de revisões \"base\" vazio - não é possível calcular o conjunto de "
8274 "rebaseamento"
8274 "rebaseamento\n"
8275 8275
8276 8276 #, python-format
8277 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 15604 msgstr "nenhuma definição para o apelido '%s'\n"
15605 15605
15606 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 15611 msgid ""
15608 15612 "error in definition for alias '%s': %s may only be given on the command "
15609 15613 "line\n"
@@ -24133,31 +24137,35 b' msgstr "nota: poss\xc3\xadvel conflito - %s foi renomeado m\xc3\xbaltiplas vezes para:\\n"'
24133 24137 msgid "note: possible conflict - %s was deleted and renamed to:\n"
24134 24138 msgstr "nota: possível conflito - %s foi apagado e renomeado para:\n"
24135 24139
24136 #, fuzzy, python-format
24140 #, python-format
24137 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 24144 #, python-format
24141 24145 msgid ""
24142 24146 "\n"
24143 24147 "calculating bids for ancestor %s\n"
24144 24148 msgstr ""
24149 "\n"
24150 "calculando lances para o ancestral %s\n"
24145 24151
24146 24152 msgid ""
24147 24153 "\n"
24148 24154 "auction for merging merge bids\n"
24149 24155 msgstr ""
24156 "\n"
24157 "leilão para mesclar lances de mesclagem\n"
24150 24158
24151 24159 #, python-format
24152 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 24163 #, python-format
24156 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 24167 msgid "end of auction"
24160 msgstr ""
24168 msgstr "fim do leilão"
24161 24169
24162 24170 #, python-format
24163 24171 msgid ""
@@ -25737,8 +25745,8 b' msgid "default path for subrepository no'
25737 25745 msgstr "o caminho padrão para o sub-repositório não foi encontrado"
25738 25746
25739 25747 #, python-format
25740 msgid "warning: removing potentially hostile .hg/hgrc in '%s'"
25741 msgstr "aviso: removendo .hg/hgrc potencialmente hostil em '%s'"
25748 msgid "warning: removing potentially hostile 'hgrc' in '%s'\n"
25749 msgstr "aviso: removendo 'hgrc' potencialmente hostil em '%s'\n"
25742 25750
25743 25751 #, python-format
25744 25752 msgid "unknown subrepo type %s"
@@ -1944,11 +1944,22 b' def cat(ui, repo, ctx, matcher, prefix, '
1944 1944
1945 1945 return err
1946 1946
1947 def duplicatecopies(repo, rev, fromrev):
1948 '''reproduce copies from fromrev to rev in the dirstate'''
1947 def duplicatecopies(repo, rev, fromrev, skiprev=None):
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 1958 for dst, src in copies.pathcopies(repo[fromrev], repo[rev]).iteritems():
1950 1959 # copies.pathcopies returns backward renames, so dst might not
1951 1960 # actually be in the dirstate
1961 if dst in exclude:
1962 continue
1952 1963 if repo.dirstate[dst] in "nma":
1953 1964 repo.dirstate.copy(src, dst)
1954 1965
@@ -73,6 +73,15 b' def readlocaltags(ui, repo, alltags, tag'
73 73 filetags = _readtags(
74 74 ui, repo, data.splitlines(), "localtags",
75 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 85 _updatetags(filetags, "local", alltags, tagtypes)
77 86
78 87 def _readtags(ui, repo, lines, fn, recode=None):
@@ -907,3 +907,15 b' Test that a local tag blocks a changeset'
907 907 date: Thu Jan 01 00:00:00 1970 +0000
908 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 240 1 files changed, 1 insertions(+), 0 deletions(-)
241 241
242 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