##// 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 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] [-n] [-B bookmark] [-r] REV...'))
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.org/mercurial\n"
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.org/mercurial\n"
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 "- expr % \"{template}\""
27679 msgid " expr % \"{template}\""
27674 msgstr "- expr % \"{modelo}\""
27680 msgstr " expr % \"{modelo}\""
27675
27681
27676 msgid ""
27682 msgid ""
27677 "As seen in the above example, \"{template}\" is interpreted as a template.\n"
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 \"\\{\"\n"
27684 "To prevent it from being interpreted, you can use an escape character ``\\{``\n"
27679 "or a raw string prefix, \"r'...'\"."
27685 "or a raw string prefix, ``r'...'``."
27680 msgstr ""
27686 msgstr ""
27681 "Como visto no exemplo acima, \"{modelo}\" é interpretado como um modelo.\n"
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 \"\\{\" ou um prefixo de string literal \"r'...'\"."
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 alterações no manifesto %s"
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 _('[-ac]'))
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] [-f] [[-r] REV]'))
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,15 +343,28 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
359 with lock.lock(poolvfs, '%s.lock' % basename):
348 if os.path.exists(sharepath):
360 if os.path.exists(sharepath):
349 ui.status(_('(sharing from existing pooled repository %s)\n') %
361 ui.status(_('(sharing from existing pooled repository %s)\n') %
350 basename)
362 basename)
351 else:
363 else:
352 ui.status(_('(sharing from new pooled repository %s)\n') % basename)
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.
365 # Always use pull mode because hardlinks in share mode don't work
354 # Never update because working copies aren't necessary in share mode.
366 # well. Never update because working copies aren't necessary in
367 # share mode.
355 clone(ui, peeropts, source, dest=sharepath, pull=True,
368 clone(ui, peeropts, source, dest=sharepath, pull=True,
356 rev=rev, update=False, stream=stream)
369 rev=rev, update=False, stream=stream)
357
370
@@ -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] [-n] [-B bookmark] [-r] REV...
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