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-0 |
|
152 | "POT-Creation-Date: 2014-06-30 18:45+0900\n" | |
153 |
"PO-Revision-Date: 2014-0 |
|
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 |
|
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 |
#, |
|
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 |
|
25748 | msgid "warning: removing potentially hostile 'hgrc' in '%s'\n" | |
25741 |
msgstr "aviso: removendo |
|
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