Show More
@@ -0,0 +1,26 b'' | |||||
|
1 | # Dummy extension that adds a delay after acquiring a lock. | |||
|
2 | # | |||
|
3 | # This extension can be used to test race conditions between lock acquisition. | |||
|
4 | ||||
|
5 | from __future__ import absolute_import | |||
|
6 | ||||
|
7 | import os | |||
|
8 | import time | |||
|
9 | ||||
|
10 | from mercurial import ( | |||
|
11 | lock as lockmod, | |||
|
12 | ) | |||
|
13 | ||||
|
14 | class delaylock(lockmod.lock): | |||
|
15 | def lock(self): | |||
|
16 | delay = float(os.environ.get('HGPRELOCKDELAY', '0.0')) | |||
|
17 | if delay: | |||
|
18 | time.sleep(delay) | |||
|
19 | res = super(delaylock, self).lock() | |||
|
20 | delay = float(os.environ.get('HGPOSTLOCKDELAY', '0.0')) | |||
|
21 | if delay: | |||
|
22 | time.sleep(delay) | |||
|
23 | return res | |||
|
24 | ||||
|
25 | def extsetup(ui): | |||
|
26 | lockmod.lock = delaylock |
@@ -121,3 +121,4 b' ea389970c08449440587712117f178d33bab3f1e' | |||||
121 | 158bdc8965720ca4061f8f8d806563cfc7cdb62e 0 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 |
@@ -134,3 +134,4 b' ea389970c08449440587712117f178d33bab3f1e' | |||||
134 | 158bdc8965720ca4061f8f8d806563cfc7cdb62e 3.7-rc |
|
134 | 158bdc8965720ca4061f8f8d806563cfc7cdb62e 3.7-rc | |
135 | 2408645de650d8a29a6ce9e7dce601d8dd0d1474 3.7 |
|
135 | 2408645de650d8a29a6ce9e7dce601d8dd0d1474 3.7 | |
136 | b698abf971e7377d9b7ec7fc8c52df45255b0329 3.7.1 |
|
136 | b698abf971e7377d9b7ec7fc8c52df45255b0329 3.7.1 | |
|
137 | d493d64757eb45ada99fcb3693e479a51b7782da 3.7.2 |
@@ -90,7 +90,7 b' def strip(ui, repo, revs, update=True, b' | |||||
90 | "strip")), |
|
90 | "strip")), | |
91 | ('B', 'bookmark', [], _("remove revs only reachable from given" |
|
91 | ('B', 'bookmark', [], _("remove revs only reachable from given" | |
92 | " bookmark"))], |
|
92 | " bookmark"))], | |
93 |
_('hg strip [-k] [-f] [- |
|
93 | _('hg strip [-k] [-f] [-B bookmark] [-r] REV...')) | |
94 | def stripcmd(ui, repo, *revs, **opts): |
|
94 | def stripcmd(ui, repo, *revs, **opts): | |
95 | """strip changesets and all their descendants from the repository |
|
95 | """strip changesets and all their descendants from the repository | |
96 |
|
96 |
@@ -5175,7 +5175,7 b' msgstr " - `roll` como `fold`, mas descartando a descri\xc3\xa7\xc3\xa3o da revis\xc3\xa3o"' | |||||
5175 | msgid " - `edit` to edit this changeset" |
|
5175 | msgid " - `edit` to edit this changeset" | |
5176 | msgstr " - `edit` para editar a revisão" |
|
5176 | msgstr " - `edit` para editar a revisão" | |
5177 |
|
5177 | |||
5178 | msgid " There are a number of ways to select the root changset:" |
|
5178 | msgid " There are a number of ways to select the root changeset:" | |
5179 | msgstr " Há diversas maneiras de selecionar a revisão raiz:" |
|
5179 | msgstr " Há diversas maneiras de selecionar a revisão raiz:" | |
5180 |
|
5180 | |||
5181 | msgid " - Specify ANCESTOR directly" |
|
5181 | msgid " - Specify ANCESTOR directly" | |
@@ -18670,6 +18670,10 b' msgstr ""' | |||||
18670 | " contendo quebras de linha misturadas são incluídos em cada\n" |
|
18670 | " contendo quebras de linha misturadas são incluídos em cada\n" | |
18671 | " um dos estilos correspondentes." |
|
18671 | " um dos estilos correspondentes." | |
18672 |
|
18672 | |||
|
18673 | #. i18n: "eol" is a keyword | |||
|
18674 | msgid "eol requires a style name" | |||
|
18675 | msgstr "eol requer um nome de estilo" | |||
|
18676 | ||||
18673 | msgid "" |
|
18677 | msgid "" | |
18674 | "``copied()``\n" |
|
18678 | "``copied()``\n" | |
18675 | " File that is recorded as being copied." |
|
18679 | " File that is recorded as being copied." | |
@@ -19569,8 +19573,8 b' msgstr ""' | |||||
19569 | "fará com que ``hg echo foo`` imprima ``foo`` em seu terminal.\n" |
|
19573 | "fará com que ``hg echo foo`` imprima ``foo`` em seu terminal.\n" | |
19570 | "Um exemplo melhor (em um Unix) poderia ser::" |
|
19574 | "Um exemplo melhor (em um Unix) poderia ser::" | |
19571 |
|
19575 | |||
19572 | msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm" |
|
19576 | msgid " purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm" | |
19573 | msgstr " purge = !$HG status --no-status --unknown -0 | xargs -0 rm" |
|
19577 | msgstr " purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm" | |
19574 |
|
19578 | |||
19575 | msgid "" |
|
19579 | msgid "" | |
19576 | "which will make ``hg purge`` delete all unknown files in the\n" |
|
19580 | "which will make ``hg purge`` delete all unknown files in the\n" | |
@@ -19694,12 +19698,12 b' msgstr ""' | |||||
19694 | "autenticação. Por exemplo::" |
|
19698 | "autenticação. Por exemplo::" | |
19695 |
|
19699 | |||
19696 | msgid "" |
|
19700 | msgid "" | |
19697 |
" foo.prefix = hg.intevation. |
|
19701 | " foo.prefix = hg.intevation.de/mercurial\n" | |
19698 | " foo.username = foo\n" |
|
19702 | " foo.username = foo\n" | |
19699 | " foo.password = bar\n" |
|
19703 | " foo.password = bar\n" | |
19700 | " foo.schemes = http https" |
|
19704 | " foo.schemes = http https" | |
19701 | msgstr "" |
|
19705 | msgstr "" | |
19702 |
" foo.prefix = hg.intevation. |
|
19706 | " foo.prefix = hg.intevation.de/mercurial\n" | |
19703 | " foo.username = foo\n" |
|
19707 | " foo.username = foo\n" | |
19704 | " foo.password = bar\n" |
|
19708 | " foo.password = bar\n" | |
19705 | " foo.schemes = http https" |
|
19709 | " foo.schemes = http https" | |
@@ -21079,10 +21083,12 b' msgstr "Por exemplo::"' | |||||
21079 |
|
21083 | |||
21080 | msgid "" |
|
21084 | msgid "" | |
21081 | " [hostfingerprints]\n" |
|
21085 | " [hostfingerprints]\n" | |
21082 | " hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0" |
|
21086 | " hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33\n" | |
|
21087 | " hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33" | |||
21083 | msgstr "" |
|
21088 | msgstr "" | |
21084 | " [hostfingerprints]\n" |
|
21089 | " [hostfingerprints]\n" | |
21085 | " hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0" |
|
21090 | " hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33\n" | |
|
21091 | " hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33" | |||
21086 |
|
21092 | |||
21087 | msgid "This feature is only supported when using Python 2.6 or later." |
|
21093 | msgid "This feature is only supported when using Python 2.6 or later." | |
21088 | msgstr "" |
|
21094 | msgstr "" | |
@@ -23447,7 +23453,7 b' msgid ""' | |||||
23447 | "``backgroundclose``\n" |
|
23453 | "``backgroundclose``\n" | |
23448 | " Whether to enable closing file handles on background threads during certain\n" |
|
23454 | " Whether to enable closing file handles on background threads during certain\n" | |
23449 | " operations. Some platforms aren't very efficient at closing file\n" |
|
23455 | " operations. Some platforms aren't very efficient at closing file\n" | |
23450 | " handles that have been written or appened to. By performing file closing\n" |
|
23456 | " handles that have been written or appended to. By performing file closing\n" | |
23451 | " on background threads, file write rate can increase substantially.\n" |
|
23457 | " on background threads, file write rate can increase substantially.\n" | |
23452 | " (default: true on Windows, false elsewhere)" |
|
23458 | " (default: true on Windows, false elsewhere)" | |
23453 | msgstr "" |
|
23459 | msgstr "" | |
@@ -27665,22 +27671,22 b' msgid ".. functionsmarker"' | |||||
27665 | msgstr ".. functionsmarker" |
|
27671 | msgstr ".. functionsmarker" | |
27666 |
|
27672 | |||
27667 | msgid "" |
|
27673 | msgid "" | |
27668 | "Also, for any expression that returns a list, there is a list operator:" |
|
27674 | "Also, for any expression that returns a list, there is a list operator::" | |
27669 | msgstr "" |
|
27675 | msgstr "" | |
27670 | "Além disso, para cada expressão que devolve uma lista, há um\n" |
|
27676 | "Além disso, para cada expressão que devolve uma lista, há um\n" | |
27671 | "operador de lista:" |
|
27677 | "operador de lista::" | |
27672 |
|
27678 | |||
27673 |
msgid " |
|
27679 | msgid " expr % \"{template}\"" | |
27674 |
msgstr " |
|
27680 | msgstr " expr % \"{modelo}\"" | |
27675 |
|
27681 | |||
27676 | msgid "" |
|
27682 | msgid "" | |
27677 |
"As seen in the above example, |
|
27683 | "As seen in the above example, ``{template}`` is interpreted as a template.\n" | |
27678 |
"To prevent it from being interpreted, you can use an escape character |
|
27684 | "To prevent it from being interpreted, you can use an escape character ``\\{``\n" | |
27679 |
"or a raw string prefix, |
|
27685 | "or a raw string prefix, ``r'...'``." | |
27680 | msgstr "" |
|
27686 | msgstr "" | |
27681 |
"Como visto no exemplo acima, |
|
27687 | "Como visto no exemplo acima, ``{modelo}`` é interpretado como um modelo.\n" | |
27682 | "Para impedir que seja interpretado, você pode usar um caractere de\n" |
|
27688 | "Para impedir que seja interpretado, você pode usar um caractere de\n" | |
27683 |
"escape |
|
27689 | "escape ``\\{`` ou um prefixo de string literal ``r'...'``." | |
27684 |
|
27690 | |||
27685 | msgid "Some sample command line templates:" |
|
27691 | msgid "Some sample command line templates:" | |
27686 | msgstr "Alguns exemplos de modelos de linha de comando:" |
|
27692 | msgstr "Alguns exemplos de modelos de linha de comando:" | |
@@ -32230,7 +32236,7 b' msgstr "arquivo sem nome no manifesto"' | |||||
32230 |
|
32236 | |||
32231 | #, python-format |
|
32237 | #, python-format | |
32232 | msgid "reading manifest delta %s" |
|
32238 | msgid "reading manifest delta %s" | |
32233 |
msgstr "lendo |
|
32239 | msgstr "lendo delta %s do manifesto" | |
32234 |
|
32240 | |||
32235 | msgid "crosschecking files in changesets and manifests\n" |
|
32241 | msgid "crosschecking files in changesets and manifests\n" | |
32236 | msgstr "checagem cruzada de arquivos em revisões e no manifesto\n" |
|
32242 | msgstr "checagem cruzada de arquivos em revisões e no manifesto\n" | |
@@ -32321,6 +32327,121 b' msgstr "procurar mudan\xc3\xa7as remotas"' | |||||
32321 | msgid "number of cpus must be an integer" |
|
32327 | msgid "number of cpus must be an integer" | |
32322 | msgstr "o número de cpus deve ser um inteiro" |
|
32328 | msgstr "o número de cpus deve ser um inteiro" | |
32323 |
|
32329 | |||
|
32330 | #~ msgid "Check for unrecorded moves at commit time (EXPERIMENTAL)" | |||
|
32331 | #~ msgstr "" | |||
|
32332 | #~ "Testa por renomeações não registradas no momento da consolidação " | |||
|
32333 | #~ "(EXPERIMENTAL)" | |||
|
32334 | ||||
|
32335 | #~ msgid "" | |||
|
32336 | #~ "This extension checks at commit/amend time if any of the committed files\n" | |||
|
32337 | #~ "comes from an unrecorded mv." | |||
|
32338 | #~ msgstr "" | |||
|
32339 | #~ "Esta extensão verifica durante consolidações se algum arquivo consolidado\n" | |||
|
32340 | #~ "foi renomeado sem registrar essa renomeação pelo comando mv." | |||
|
32341 | ||||
|
32342 | #~ msgid "" | |||
|
32343 | #~ "The threshold at which a file is considered a move can be set with the\n" | |||
|
32344 | #~ "``automv.similarity`` config option. This option takes a percentage between 0\n" | |||
|
32345 | #~ "(disabled) and 100 (files must be identical), the default is 95." | |||
|
32346 | #~ msgstr "" | |||
|
32347 | #~ "O limiar no qual um arquivo será considerado uma renomeação\n" | |||
|
32348 | #~ "pode ser definido com a opção de configuração ``automv.similarity``.\n" | |||
|
32349 | #~ "Esta opção recebe uma porcentagem entre 0 (desabilitado) e 100\n" | |||
|
32350 | #~ "(os arquivos devem ser idênticos). O valor padrão é 95." | |||
|
32351 | ||||
|
32352 | #~ msgid "disable automatic file move detection" | |||
|
32353 | #~ msgstr "desabilita detecção automática de renomeações" | |||
|
32354 | ||||
|
32355 | #~ msgid "automv.similarity must be between 0 and 100" | |||
|
32356 | #~ msgstr "automv.similarity deve ser um número entre 0 e 100" | |||
|
32357 | ||||
|
32358 | #~ msgid "detected move of %s as %s (%d%% similar)\n" | |||
|
32359 | #~ msgstr "detectada remoção de %s como %s (%d%% de similaridade)\n" | |||
|
32360 | ||||
|
32361 | #~ msgid "detected move of %d files\n" | |||
|
32362 | #~ msgstr "foram detectadas renomeações de %d arquivos\n" | |||
|
32363 | ||||
|
32364 | #~ msgid "" | |||
|
32365 | #~ " [blackbox]\n" | |||
|
32366 | #~ " track = *\n" | |||
|
32367 | #~ " dirty = True" | |||
|
32368 | #~ msgstr "" | |||
|
32369 | #~ " [blackbox]\n" | |||
|
32370 | #~ " track = *" | |||
|
32371 | ||||
|
32372 | #~ msgid "histedit" | |||
|
32373 | #~ msgstr "histedit" | |||
|
32374 | ||||
|
32375 | #~ msgid "rebase" | |||
|
32376 | #~ msgstr "%d rebaseados" | |||
|
32377 | ||||
|
32378 | #~ msgid "nothing to rebase - updating instead\n" | |||
|
32379 | #~ msgstr "nada para rebasear de %s para %s\n" | |||
|
32380 | ||||
|
32381 | #~ msgid "invalid value for --daemon-postexec" | |||
|
32382 | #~ msgstr "valor %r inválido para a opção %s, int esperado" | |||
|
32383 | ||||
|
32384 | #~ msgid "forget added file %s (yn)?$$ &Yes $$ &No" | |||
|
32385 | #~ msgstr "a mesclagem de '%s' teve sucesso (yn)?$$ (&Y) sim $$ &Não" | |||
|
32386 | ||||
|
32387 | #~ msgid "no %s in progress" | |||
|
32388 | #~ msgstr "nenhum rebaseamento em andamento" | |||
|
32389 | ||||
|
32390 | #~ msgid "graft" | |||
|
32391 | #~ msgstr "força o enxerto" | |||
|
32392 | ||||
|
32393 | #~ msgid "" | |||
|
32394 | #~ "multiple matching bookmarks to rebase - please rebase to an explicit rev or " | |||
|
32395 | #~ "bookmark" | |||
|
32396 | #~ msgstr "" | |||
|
32397 | #~ "múltiplos marcadores para mesclar - por favor mescle com uma revisão ou " | |||
|
32398 | #~ "marcador explícitos" | |||
|
32399 | ||||
|
32400 | #~ msgid "" | |||
|
32401 | #~ "no matching bookmark to rebase - please rebase to an explicit rev or " | |||
|
32402 | #~ "bookmark" | |||
|
32403 | #~ msgstr "" | |||
|
32404 | #~ "nenhum marcador correspondente para mesclar - por favor mescle com uma " | |||
|
32405 | #~ "revisão ou marcador explícitos" | |||
|
32406 | ||||
|
32407 | #~ msgid "branch '%s' has %d heads - please rebase to an explicit rev" | |||
|
32408 | #~ msgstr "" | |||
|
32409 | #~ "o ramo '%s' tem %d cabeças - por favor mescle com uma revisão explícita" | |||
|
32410 | ||||
|
32411 | #~ msgid "heads are bookmarked - please rebase to an explicit rev" | |||
|
32412 | #~ msgstr "" | |||
|
32413 | #~ "as cabeças estão marcadas com bookmarks - por favor mescle com uma revisão " | |||
|
32414 | #~ "explícita" | |||
|
32415 | ||||
|
32416 | #~ msgid "branch '%s' has one head - please rebase to an explicit rev" | |||
|
32417 | #~ msgstr "" | |||
|
32418 | #~ "o ramo '%s' tem apenas uma cabeça - por favor mescle com uma revisão " | |||
|
32419 | #~ "explícita" | |||
|
32420 | ||||
|
32421 | #~ msgid "nothing to rebase" | |||
|
32422 | #~ msgstr "nada para rebasear\n" | |||
|
32423 | ||||
|
32424 | #~ msgid "use 'hg update' or rebase to an explicit revision" | |||
|
32425 | #~ msgstr "use 'hg update' ou mescle com uma revisão explícita" | |||
|
32426 | ||||
|
32427 | #~ msgid "source set is empty" | |||
|
32428 | #~ msgstr "o patch %s é vazio\n" | |||
|
32429 | ||||
|
32430 | #~ msgid "source set is rooted in multiple branches" | |||
|
32431 | #~ msgstr "a origem cvs não suporta a especificação de múltiplas revisões" | |||
|
32432 | ||||
|
32433 | #~ msgid "rebaseset is rooted in multiple named branches" | |||
|
32434 | #~ msgstr "não é possível colapsar múltiplos ramos nomeados" | |||
|
32435 | ||||
|
32436 | #~ msgid "specify an explicit destination with --dest" | |||
|
32437 | #~ msgstr "você não pode especificar uma revisão com --all" | |||
|
32438 | ||||
|
32439 | #~ msgid "%i other divergent bookmarks for \"%s\"\n" | |||
|
32440 | #~ msgstr "marcador divergente %s guardado como %s\n" | |||
|
32441 | ||||
|
32442 | #~ msgid "%i other heads for branch \"%s\"\n" | |||
|
32443 | #~ msgstr "novas cabeças remotas no ramo '%s':\n" | |||
|
32444 | ||||
32324 | #~ msgid "" |
|
32445 | #~ msgid "" | |
32325 | #~ "``merge``\n" |
|
32446 | #~ "``merge``\n" | |
32326 | #~ "---------" |
|
32447 | #~ "---------" | |
@@ -32368,6 +32489,25 b' msgstr "o n\xc3\xbamero de cpus deve ser um inteiro"' | |||||
32368 | #~ " que não são ignorados.\n" |
|
32489 | #~ " que não são ignorados.\n" | |
32369 | #~ " (padrão: ``abort``)" |
|
32490 | #~ " (padrão: ``abort``)" | |
32370 |
|
32491 | |||
|
32492 | #~ msgid "%s not in parent-directory manifest" | |||
|
32493 | #~ msgstr "abre o manifesto do diretório" | |||
|
32494 | ||||
|
32495 | #~ msgid "parent-directory manifest refers to unknown revision %s" | |||
|
32496 | #~ msgstr "revisão se refere a manifesto desconhecido %s" | |||
|
32497 | ||||
|
32498 | #~ msgid "checking directory manifests\n" | |||
|
32499 | #~ msgstr "abre o manifesto do diretório" | |||
|
32500 | ||||
|
32501 | #~ msgid "manifest refers to unknown revision %s" | |||
|
32502 | #~ msgstr "revisão se refere a manifesto desconhecido %s" | |||
|
32503 | ||||
|
32504 | #~ msgid "" | |||
|
32505 | #~ " [hostfingerprints]\n" | |||
|
32506 | #~ " hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0" | |||
|
32507 | #~ msgstr "" | |||
|
32508 | #~ " [hostfingerprints]\n" | |||
|
32509 | #~ " hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0" | |||
|
32510 | ||||
32371 | #~ msgid "" |
|
32511 | #~ msgid "" | |
32372 | #~ "# Edit history between %s and %s\n" |
|
32512 | #~ "# Edit history between %s and %s\n" | |
32373 | #~ "#\n" |
|
32513 | #~ "#\n" |
@@ -1270,7 +1270,7 b' def branch(ui, repo, label=None, **opts)' | |||||
1270 | _('show only branches that have unmerged heads (DEPRECATED)')), |
|
1270 | _('show only branches that have unmerged heads (DEPRECATED)')), | |
1271 | ('c', 'closed', False, _('show normal and closed branches')), |
|
1271 | ('c', 'closed', False, _('show normal and closed branches')), | |
1272 | ] + formatteropts, |
|
1272 | ] + formatteropts, | |
1273 |
_('[- |
|
1273 | _('[-c]')) | |
1274 | def branches(ui, repo, active=False, closed=False, **opts): |
|
1274 | def branches(ui, repo, active=False, closed=False, **opts): | |
1275 | """list repository named branches |
|
1275 | """list repository named branches | |
1276 |
|
1276 | |||
@@ -5234,7 +5234,7 b' def manifest(ui, repo, node=None, rev=No' | |||||
5234 | ('P', 'preview', None, |
|
5234 | ('P', 'preview', None, | |
5235 | _('review revisions to merge (no merge is performed)')) |
|
5235 | _('review revisions to merge (no merge is performed)')) | |
5236 | ] + mergetoolopts, |
|
5236 | ] + mergetoolopts, | |
5237 |
_('[-P] [ |
|
5237 | _('[-P] [[-r] REV]')) | |
5238 | def merge(ui, repo, node=None, **opts): |
|
5238 | def merge(ui, repo, node=None, **opts): | |
5239 | """merge another revision into working directory |
|
5239 | """merge another revision into working directory | |
5240 |
|
5240 |
@@ -343,17 +343,30 b' def clonewithshare(ui, peeropts, sharepa' | |||||
343 | "support clone by revision")) |
|
343 | "support clone by revision")) | |
344 | revs = [srcpeer.lookup(r) for r in rev] |
|
344 | revs = [srcpeer.lookup(r) for r in rev] | |
345 |
|
345 | |||
|
346 | # Obtain a lock before checking for or cloning the pooled repo otherwise | |||
|
347 | # 2 clients may race creating or populating it. | |||
|
348 | pooldir = os.path.dirname(sharepath) | |||
|
349 | # lock class requires the directory to exist. | |||
|
350 | try: | |||
|
351 | util.makedir(pooldir, False) | |||
|
352 | except OSError as e: | |||
|
353 | if e.errno != errno.EEXIST: | |||
|
354 | raise | |||
|
355 | ||||
|
356 | poolvfs = scmutil.vfs(pooldir) | |||
346 | basename = os.path.basename(sharepath) |
|
357 | basename = os.path.basename(sharepath) | |
347 |
|
358 | |||
348 | if os.path.exists(sharepath): |
|
359 | with lock.lock(poolvfs, '%s.lock' % basename): | |
349 | ui.status(_('(sharing from existing pooled repository %s)\n') % |
|
360 | if os.path.exists(sharepath): | |
350 | basename) |
|
361 | ui.status(_('(sharing from existing pooled repository %s)\n') % | |
351 | else: |
|
362 | basename) | |
352 | ui.status(_('(sharing from new pooled repository %s)\n') % basename) |
|
363 | else: | |
353 | # Always use pull mode because hardlinks in share mode don't work well. |
|
364 | ui.status(_('(sharing from new pooled repository %s)\n') % basename) | |
354 | # Never update because working copies aren't necessary in share mode. |
|
365 | # Always use pull mode because hardlinks in share mode don't work | |
355 | clone(ui, peeropts, source, dest=sharepath, pull=True, |
|
366 | # well. Never update because working copies aren't necessary in | |
356 | rev=rev, update=False, stream=stream) |
|
367 | # share mode. | |
|
368 | clone(ui, peeropts, source, dest=sharepath, pull=True, | |||
|
369 | rev=rev, update=False, stream=stream) | |||
357 |
|
370 | |||
358 | sharerepo = repository(ui, path=sharepath) |
|
371 | sharerepo = repository(ui, path=sharepath) | |
359 | share(ui, sharerepo, dest=dest, update=False, bookmarks=False) |
|
372 | share(ui, sharerepo, dest=dest, update=False, bookmarks=False) |
@@ -1036,3 +1036,49 b" Test that auto sharing doesn't cause fai" | |||||
1036 | $ hg --config share.pool=share -q clone -e "python \"$TESTDIR/dummyssh\"" a ssh://user@dummy/remote |
|
1036 | $ hg --config share.pool=share -q clone -e "python \"$TESTDIR/dummyssh\"" a ssh://user@dummy/remote | |
1037 | $ hg -R remote id -r 0 |
|
1037 | $ hg -R remote id -r 0 | |
1038 | acb14030fe0a |
|
1038 | acb14030fe0a | |
|
1039 | ||||
|
1040 | Cloning into pooled storage doesn't race (issue5104) | |||
|
1041 | ||||
|
1042 | $ HGPOSTLOCKDELAY=2.0 hg --config share.pool=racepool --config extensions.lockdelay=$TESTDIR/lockdelay.py clone source1a share-destrace1 > race1.log 2>&1 & | |||
|
1043 | $ HGPRELOCKDELAY=1.0 hg --config share.pool=racepool --config extensions.lockdelay=$TESTDIR/lockdelay.py clone source1a share-destrace2 > race2.log 2>&1 | |||
|
1044 | $ wait | |||
|
1045 | ||||
|
1046 | $ hg -R share-destrace1 log -r tip | |||
|
1047 | changeset: 2:e5bfe23c0b47 | |||
|
1048 | bookmark: bookA | |||
|
1049 | tag: tip | |||
|
1050 | user: test | |||
|
1051 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
1052 | summary: 1a | |||
|
1053 | ||||
|
1054 | ||||
|
1055 | $ hg -R share-destrace2 log -r tip | |||
|
1056 | changeset: 2:e5bfe23c0b47 | |||
|
1057 | bookmark: bookA | |||
|
1058 | tag: tip | |||
|
1059 | user: test | |||
|
1060 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
1061 | summary: 1a | |||
|
1062 | ||||
|
1063 | $ cat race1.log | |||
|
1064 | (sharing from new pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1) | |||
|
1065 | requesting all changes | |||
|
1066 | adding changesets | |||
|
1067 | adding manifests | |||
|
1068 | adding file changes | |||
|
1069 | added 3 changesets with 3 changes to 1 files | |||
|
1070 | updating working directory | |||
|
1071 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
1072 | searching for changes | |||
|
1073 | no changes found | |||
|
1074 | adding remote bookmark bookA | |||
|
1075 | ||||
|
1076 | $ cat race2.log | |||
|
1077 | (sharing from existing pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1) | |||
|
1078 | updating working directory | |||
|
1079 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
1080 | waiting for lock on repository share-destrace2 held by * (glob) | |||
|
1081 | got lock after \d+ seconds (re) | |||
|
1082 | searching for changes | |||
|
1083 | no changes found | |||
|
1084 | adding remote bookmark bookA |
@@ -660,7 +660,7 b' Make sure no one adds back a -b option:' | |||||
660 |
|
660 | |||
661 | $ hg strip -b tip |
|
661 | $ hg strip -b tip | |
662 | hg strip: option -b not recognized |
|
662 | hg strip: option -b not recognized | |
663 |
hg strip [-k] [-f] [- |
|
663 | hg strip [-k] [-f] [-B bookmark] [-r] REV... | |
664 |
|
664 | |||
665 | strip changesets and all their descendants from the repository |
|
665 | strip changesets and all their descendants from the repository | |
666 |
|
666 |
General Comments 0
You need to be logged in to leave comments.
Login now