##// END OF EJS Templates
merge with stable
Matt Mackall -
r28324:549ff28a merge default
parent child Browse files
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 121 158bdc8965720ca4061f8f8d806563cfc7cdb62e 0 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
@@ -134,3 +134,4 b' ea389970c08449440587712117f178d33bab3f1e'
134 134 158bdc8965720ca4061f8f8d806563cfc7cdb62e 3.7-rc
135 135 2408645de650d8a29a6ce9e7dce601d8dd0d1474 3.7
136 136 b698abf971e7377d9b7ec7fc8c52df45255b0329 3.7.1
137 d493d64757eb45ada99fcb3693e479a51b7782da 3.7.2
@@ -90,7 +90,7 b' def strip(ui, repo, revs, update=True, b'
90 90 "strip")),
91 91 ('B', 'bookmark', [], _("remove revs only reachable from given"
92 92 " bookmark"))],
93 _('hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...'))
93 _('hg strip [-k] [-f] [-B bookmark] [-r] REV...'))
94 94 def stripcmd(ui, repo, *revs, **opts):
95 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 5175 msgid " - `edit` to edit this changeset"
5176 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 5179 msgstr " Há diversas maneiras de selecionar a revisão raiz:"
5180 5180
5181 5181 msgid " - Specify ANCESTOR directly"
@@ -18670,6 +18670,10 b' msgstr ""'
18670 18670 " contendo quebras de linha misturadas são incluídos em cada\n"
18671 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 18677 msgid ""
18674 18678 "``copied()``\n"
18675 18679 " File that is recorded as being copied."
@@ -19569,8 +19573,8 b' msgstr ""'
19569 19573 "fará com que ``hg echo foo`` imprima ``foo`` em seu terminal.\n"
19570 19574 "Um exemplo melhor (em um Unix) poderia ser::"
19571 19575
19572 msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
19573 msgstr " purge = !$HG status --no-status --unknown -0 | xargs -0 rm"
19576 msgid " purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm"
19577 msgstr " purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm"
19574 19578
19575 19579 msgid ""
19576 19580 "which will make ``hg purge`` delete all unknown files in the\n"
@@ -19694,12 +19698,12 b' msgstr ""'
19694 19698 "autenticação. Por exemplo::"
19695 19699
19696 19700 msgid ""
19697 " foo.prefix = hg.intevation.org/mercurial\n"
19701 " foo.prefix = hg.intevation.de/mercurial\n"
19698 19702 " foo.username = foo\n"
19699 19703 " foo.password = bar\n"
19700 19704 " foo.schemes = http https"
19701 19705 msgstr ""
19702 " foo.prefix = hg.intevation.org/mercurial\n"
19706 " foo.prefix = hg.intevation.de/mercurial\n"
19703 19707 " foo.username = foo\n"
19704 19708 " foo.password = bar\n"
19705 19709 " foo.schemes = http https"
@@ -21079,10 +21083,12 b' msgstr "Por exemplo::"'
21079 21083
21080 21084 msgid ""
21081 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 21088 msgstr ""
21084 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 21093 msgid "This feature is only supported when using Python 2.6 or later."
21088 21094 msgstr ""
@@ -23447,7 +23453,7 b' msgid ""'
23447 23453 "``backgroundclose``\n"
23448 23454 " Whether to enable closing file handles on background threads during certain\n"
23449 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 23457 " on background threads, file write rate can increase substantially.\n"
23452 23458 " (default: true on Windows, false elsewhere)"
23453 23459 msgstr ""
@@ -27665,22 +27671,22 b' msgid ".. functionsmarker"'
27665 27671 msgstr ".. functionsmarker"
27666 27672
27667 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 27675 msgstr ""
27670 27676 "Além disso, para cada expressão que devolve uma lista, há um\n"
27671 "operador de lista:"
27672
27673 msgid "- expr % \"{template}\""
27674 msgstr "- expr % \"{modelo}\""
27675
27676 msgid ""
27677 "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 \"\\{\"\n"
27679 "or a raw string prefix, \"r'...'\"."
27680 msgstr ""
27681 "Como visto no exemplo acima, \"{modelo}\" é interpretado como um modelo.\n"
27677 "operador de lista::"
27678
27679 msgid " expr % \"{template}\""
27680 msgstr " expr % \"{modelo}\""
27681
27682 msgid ""
27683 "As seen in the above example, ``{template}`` is interpreted as a template.\n"
27684 "To prevent it from being interpreted, you can use an escape character ``\\{``\n"
27685 "or a raw string prefix, ``r'...'``."
27686 msgstr ""
27687 "Como visto no exemplo acima, ``{modelo}`` é interpretado como um modelo.\n"
27682 27688 "Para impedir que seja interpretado, você pode usar um caractere de\n"
27683 "escape \"\\{\" ou um prefixo de string literal \"r'...'\"."
27689 "escape ``\\{`` ou um prefixo de string literal ``r'...'``."
27684 27690
27685 27691 msgid "Some sample command line templates:"
27686 27692 msgstr "Alguns exemplos de modelos de linha de comando:"
@@ -32230,7 +32236,7 b' msgstr "arquivo sem nome no manifesto"'
32230 32236
32231 32237 #, python-format
32232 32238 msgid "reading manifest delta %s"
32233 msgstr "lendo alterações no manifesto %s"
32239 msgstr "lendo delta %s do manifesto"
32234 32240
32235 32241 msgid "crosschecking files in changesets and manifests\n"
32236 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 32327 msgid "number of cpus must be an integer"
32322 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 32445 #~ msgid ""
32325 32446 #~ "``merge``\n"
32326 32447 #~ "---------"
@@ -32368,6 +32489,25 b' msgstr "o n\xc3\xbamero de cpus deve ser um inteiro"'
32368 32489 #~ " que não são ignorados.\n"
32369 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 32511 #~ msgid ""
32372 32512 #~ "# Edit history between %s and %s\n"
32373 32513 #~ "#\n"
@@ -1270,7 +1270,7 b' def branch(ui, repo, label=None, **opts)'
1270 1270 _('show only branches that have unmerged heads (DEPRECATED)')),
1271 1271 ('c', 'closed', False, _('show normal and closed branches')),
1272 1272 ] + formatteropts,
1273 _('[-ac]'))
1273 _('[-c]'))
1274 1274 def branches(ui, repo, active=False, closed=False, **opts):
1275 1275 """list repository named branches
1276 1276
@@ -5234,7 +5234,7 b' def manifest(ui, repo, node=None, rev=No'
5234 5234 ('P', 'preview', None,
5235 5235 _('review revisions to merge (no merge is performed)'))
5236 5236 ] + mergetoolopts,
5237 _('[-P] [-f] [[-r] REV]'))
5237 _('[-P] [[-r] REV]'))
5238 5238 def merge(ui, repo, node=None, **opts):
5239 5239 """merge another revision into working directory
5240 5240
@@ -343,15 +343,28 b' def clonewithshare(ui, peeropts, sharepa'
343 343 "support clone by revision"))
344 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 357 basename = os.path.basename(sharepath)
347 358
359 with lock.lock(poolvfs, '%s.lock' % basename):
348 360 if os.path.exists(sharepath):
349 361 ui.status(_('(sharing from existing pooled repository %s)\n') %
350 362 basename)
351 363 else:
352 364 ui.status(_('(sharing from new pooled repository %s)\n') % basename)
353 # Always use pull mode because hardlinks in share mode don't work well.
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
366 # well. Never update because working copies aren't necessary in
367 # share mode.
355 368 clone(ui, peeropts, source, dest=sharepath, pull=True,
356 369 rev=rev, update=False, stream=stream)
357 370
@@ -1036,3 +1036,49 b" Test that auto sharing doesn't cause fai"
1036 1036 $ hg --config share.pool=share -q clone -e "python \"$TESTDIR/dummyssh\"" a ssh://user@dummy/remote
1037 1037 $ hg -R remote id -r 0
1038 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 661 $ hg strip -b tip
662 662 hg strip: option -b not recognized
663 hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...
663 hg strip [-k] [-f] [-B bookmark] [-r] REV...
664 664
665 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