Show More
@@ -386,9 +386,7 b' def templatelabel(context, mapping, args' | |||||
386 | # i18n: "label" is a keyword |
|
386 | # i18n: "label" is a keyword | |
387 | raise error.ParseError(_("label expects two arguments")) |
|
387 | raise error.ParseError(_("label expects two arguments")) | |
388 |
|
388 | |||
389 |
thing = templater. |
|
389 | thing = templater._evalifliteral(args[1], context, mapping) | |
390 | thing = templater.runtemplate(context, mapping, |
|
|||
391 | templater.compiletemplate(thing, context)) |
|
|||
392 |
|
390 | |||
393 | # apparently, repo could be a string that is the favicon? |
|
391 | # apparently, repo could be a string that is the favicon? | |
394 | repo = mapping.get('repo', '') |
|
392 | repo = mapping.get('repo', '') |
@@ -159,6 +159,7 b' from mercurial import scmutil' | |||||
159 | from mercurial import util |
|
159 | from mercurial import util | |
160 | from mercurial import obsolete |
|
160 | from mercurial import obsolete | |
161 | from mercurial import merge as mergemod |
|
161 | from mercurial import merge as mergemod | |
|
162 | from mercurial.lock import release | |||
162 | from mercurial.i18n import _ |
|
163 | from mercurial.i18n import _ | |
163 |
|
164 | |||
164 | cmdtable = {} |
|
165 | cmdtable = {} | |
@@ -476,6 +477,15 b' def histedit(ui, repo, *freeargs, **opts' | |||||
476 | for intentional "edit" command, but also for resolving unexpected |
|
477 | for intentional "edit" command, but also for resolving unexpected | |
477 | conflicts). |
|
478 | conflicts). | |
478 | """ |
|
479 | """ | |
|
480 | lock = wlock = None | |||
|
481 | try: | |||
|
482 | wlock = repo.wlock() | |||
|
483 | lock = repo.lock() | |||
|
484 | _histedit(ui, repo, *freeargs, **opts) | |||
|
485 | finally: | |||
|
486 | release(lock, wlock) | |||
|
487 | ||||
|
488 | def _histedit(ui, repo, *freeargs, **opts): | |||
479 | # TODO only abort if we try and histedit mq patches, not just |
|
489 | # TODO only abort if we try and histedit mq patches, not just | |
480 | # blanket if mq patches are applied somewhere |
|
490 | # blanket if mq patches are applied somewhere | |
481 | mq = getattr(repo, 'mq', None) |
|
491 | mq = getattr(repo, 'mq', None) |
@@ -3010,12 +3010,13 b' msgstr ""' | |||||
3010 | " [repository]\n" |
|
3010 | " [repository]\n" | |
3011 | " native = LF" |
|
3011 | " native = LF" | |
3012 |
|
3012 | |||
3013 | msgid "" |
|
3013 | msgid ".. note::" | |
3014 |
".. note:: |
|
3014 | msgstr ".. note::" | |
|
3015 | ||||
|
3016 | msgid "" | |||
3015 | " The rules will first apply when files are touched in the working\n" |
|
3017 | " The rules will first apply when files are touched in the working\n" | |
3016 | " copy, e.g. by updating to null and back to tip to touch all files." |
|
3018 | " copy, e.g. by updating to null and back to tip to touch all files." | |
3017 | msgstr "" |
|
3019 | msgstr "" | |
3018 | ".. note::\n" |
|
|||
3019 | " As regras passarão a ser aplicadas a partir do momento em que os\n" |
|
3020 | " As regras passarão a ser aplicadas a partir do momento em que os\n" | |
3020 | " arquivos forem mexidos na cópia de trabalho, por exemplo após um\n" |
|
3021 | " arquivos forem mexidos na cópia de trabalho, por exemplo após um\n" | |
3021 | " update para null e de volta para a revisão atual para mexer em\n" |
|
3022 | " update para null e de volta para a revisão atual para mexer em\n" | |
@@ -4709,11 +4710,9 b' msgstr ""' | |||||
4709 | " svn = True" |
|
4710 | " svn = True" | |
4710 |
|
4711 | |||
4711 | msgid "" |
|
4712 | msgid "" | |
4712 | ".. note::\n" |
|
|||
4713 | " The more specific you are in your filename patterns the less you\n" |
|
4713 | " The more specific you are in your filename patterns the less you\n" | |
4714 | " lose speed in huge repositories." |
|
4714 | " lose speed in huge repositories." | |
4715 | msgstr "" |
|
4715 | msgstr "" | |
4716 | ".. note::\n" |
|
|||
4717 | " Quanto mais específico você for em seus padrões de arquivo,\n" |
|
4716 | " Quanto mais específico você for em seus padrões de arquivo,\n" | |
4718 | " menos velocidade será perdida em repositórios muito grandes." |
|
4717 | " menos velocidade será perdida em repositórios muito grandes." | |
4719 |
|
4718 | |||
@@ -6749,12 +6748,11 b' msgstr ""' | |||||
6749 | " Sem argumentos, imprime as guardas ativas no momento.\n" |
|
6748 | " Sem argumentos, imprime as guardas ativas no momento.\n" | |
6750 | " Com um argumento, define guardas para o patch pedido." |
|
6749 | " Com um argumento, define guardas para o patch pedido." | |
6751 |
|
6750 | |||
6752 | msgid "" |
|
6751 | msgid " .. note::" | |
6753 |
" .. note:: |
|
6752 | msgstr " .. note::" | |
6754 | " Specifying negative guards now requires '--'." |
|
6753 | ||
6755 | msgstr "" |
|
6754 | msgid " Specifying negative guards now requires '--'." | |
6756 | " .. note::\n" |
|
6755 | msgstr " A especificação de guardas negativas agora exige '--'." | |
6757 | " A especificação de guardas negativas agora exige '--'." |
|
|||
6758 |
|
6756 | |||
6759 | msgid " To set guards on another patch::" |
|
6757 | msgid " To set guards on another patch::" | |
6760 | msgstr " Para definir guardas em um outro patch::" |
|
6758 | msgstr " Para definir guardas em um outro patch::" | |
@@ -7342,7 +7340,7 b' msgid ""' | |||||
7342 | "Notifications will not be sent until the ``notify.test`` value is set\n" |
|
7340 | "Notifications will not be sent until the ``notify.test`` value is set\n" | |
7343 | "to ``False``; see below." |
|
7341 | "to ``False``; see below." | |
7344 | msgstr "" |
|
7342 | msgstr "" | |
7345 |
"Notificações |
|
7343 | "Notificações não serão enviadas até que você defina a entrada\n" | |
7346 | "``notify.test`` como ``False``; veja abaixo." |
|
7344 | "``notify.test`` como ``False``; veja abaixo." | |
7347 |
|
7345 | |||
7348 | msgid "" |
|
7346 | msgid "" | |
@@ -7433,7 +7431,7 b' msgid ""' | |||||
7433 | "notify.outgoing\n" |
|
7431 | "notify.outgoing\n" | |
7434 | " Template to use when run as an outgoing hook, overriding ``notify.template``." |
|
7432 | " Template to use when run as an outgoing hook, overriding ``notify.template``." | |
7435 | msgstr "" |
|
7433 | msgstr "" | |
7436 |
"notify. |
|
7434 | "notify.outgoing\n" | |
7437 | " O modelo usado ao executar o gancho outgoing; sobrepõe\n" |
|
7435 | " O modelo usado ao executar o gancho outgoing; sobrepõe\n" | |
7438 | " ``notify.template``." |
|
7436 | " ``notify.template``." | |
7439 |
|
7437 | |||
@@ -8946,7 +8944,6 b' msgstr ""' | |||||
8946 | " compartilha seu histórico com outro repositório." |
|
8944 | " compartilha seu histórico com outro repositório." | |
8947 |
|
8945 | |||
8948 | msgid "" |
|
8946 | msgid "" | |
8949 | " .. note::\n" |
|
|||
8950 | " using rollback or extensions that destroy/modify history (mq,\n" |
|
8947 | " using rollback or extensions that destroy/modify history (mq,\n" | |
8951 | " rebase, etc.) can cause considerable confusion with shared\n" |
|
8948 | " rebase, etc.) can cause considerable confusion with shared\n" | |
8952 | " clones. In particular, if two shared clones are both updated to\n" |
|
8949 | " clones. In particular, if two shared clones are both updated to\n" | |
@@ -8957,7 +8954,6 b' msgid ""' | |||||
8957 | " the broken clone to reset it to a changeset that still exists.\n" |
|
8954 | " the broken clone to reset it to a changeset that still exists.\n" | |
8958 | " " |
|
8955 | " " | |
8959 | msgstr "" |
|
8956 | msgstr "" | |
8960 | " .. note::\n" |
|
|||
8961 | " o uso de rollback ou extensões que destroem ou modificam\n" |
|
8957 | " o uso de rollback ou extensões que destroem ou modificam\n" | |
8962 | " o histórico (mq, rebase, etc) pode causar confusão considerável\n" |
|
8958 | " o histórico (mq, rebase, etc) pode causar confusão considerável\n" | |
8963 | " com clones compartilhados. Em particular, se dois clones\n" |
|
8959 | " com clones compartilhados. Em particular, se dois clones\n" | |
@@ -10790,11 +10786,9 b' msgstr ""' | |||||
10790 | " manualmente." |
|
10786 | " manualmente." | |
10791 |
|
10787 | |||
10792 | msgid "" |
|
10788 | msgid "" | |
10793 | " .. note::\n" |
|
|||
10794 | " backout cannot be used to fix either an unwanted or\n" |
|
10789 | " backout cannot be used to fix either an unwanted or\n" | |
10795 | " incorrect merge." |
|
10790 | " incorrect merge." | |
10796 | msgstr "" |
|
10791 | msgstr "" | |
10797 | " .. note::\n" |
|
|||
10798 | " backout não pode ser usado para corrigir uma mesclagem\n" |
|
10792 | " backout não pode ser usado para corrigir uma mesclagem\n" | |
10799 | " incorreta ou indesejada." |
|
10793 | " incorreta ou indesejada." | |
10800 |
|
10794 | |||
@@ -11230,12 +11224,10 b' msgid "set or show the current branch na' | |||||
11230 | msgstr "define ou mostra o nome de ramo atual" |
|
11224 | msgstr "define ou mostra o nome de ramo atual" | |
11231 |
|
11225 | |||
11232 | msgid "" |
|
11226 | msgid "" | |
11233 | " .. note::\n" |
|
|||
11234 | " Branch names are permanent and global. Use :hg:`bookmark` to create a\n" |
|
11227 | " Branch names are permanent and global. Use :hg:`bookmark` to create a\n" | |
11235 | " light-weight bookmark instead. See :hg:`help glossary` for more\n" |
|
11228 | " light-weight bookmark instead. See :hg:`help glossary` for more\n" | |
11236 | " information about named branches and bookmarks." |
|
11229 | " information about named branches and bookmarks." | |
11237 | msgstr "" |
|
11230 | msgstr "" | |
11238 | " .. note::\n" |
|
|||
11239 | " Nomes de ramos são permanentes e globais. Use :hg:`bookmark`\n" |
|
11231 | " Nomes de ramos são permanentes e globais. Use :hg:`bookmark`\n" | |
11240 | " para criar um marcador leve temporário. Veja :hg:`help glossary`\n" |
|
11232 | " para criar um marcador leve temporário. Veja :hg:`help glossary`\n" | |
11241 | " para mais informações sobre ramos nomeados e marcadores." |
|
11233 | " para mais informações sobre ramos nomeados e marcadores." | |
@@ -12461,12 +12453,10 b' msgstr ""' | |||||
12461 | " \"unified diff\"." |
|
12453 | " \"unified diff\"." | |
12462 |
|
12454 | |||
12463 | msgid "" |
|
12455 | msgid "" | |
12464 | " .. note::\n" |
|
|||
12465 | " diff may generate unexpected results for merges, as it will\n" |
|
12456 | " diff may generate unexpected results for merges, as it will\n" | |
12466 | " default to comparing against the working directory's first\n" |
|
12457 | " default to comparing against the working directory's first\n" | |
12467 | " parent changeset if no revisions are specified." |
|
12458 | " parent changeset if no revisions are specified." | |
12468 | msgstr "" |
|
12459 | msgstr "" | |
12469 | " .. note::\n" |
|
|||
12470 | " diff pode gerar resultados inesperados para mesclagens, já\n" |
|
12460 | " diff pode gerar resultados inesperados para mesclagens, já\n" | |
12471 | " que por padrão irá comparar com o primeiro pai do diretório de\n" |
|
12461 | " que por padrão irá comparar com o primeiro pai do diretório de\n" | |
12472 | " trabalho se uma revisão não for especificada." |
|
12462 | " trabalho se uma revisão não for especificada." | |
@@ -12569,12 +12559,10 b' msgstr ""' | |||||
12569 | " e comentário de consolidação." |
|
12559 | " e comentário de consolidação." | |
12570 |
|
12560 | |||
12571 | msgid "" |
|
12561 | msgid "" | |
12572 | " .. note::\n" |
|
|||
12573 | " export may generate unexpected diff output for merge\n" |
|
12562 | " export may generate unexpected diff output for merge\n" | |
12574 | " changesets, as it will compare the merge changeset against its\n" |
|
12563 | " changesets, as it will compare the merge changeset against its\n" | |
12575 | " first parent only." |
|
12564 | " first parent only." | |
12576 | msgstr "" |
|
12565 | msgstr "" | |
12577 | " .. note::\n" |
|
|||
12578 | " export pode gerar saída de diff inesperada para revisões\n" |
|
12566 | " export pode gerar saída de diff inesperada para revisões\n" | |
12579 | " de mesclagem, já que irá comparar a revisão de mesclagem\n" |
|
12567 | " de mesclagem, já que irá comparar a revisão de mesclagem\n" | |
12580 | " apenas com seu primeiro pai." |
|
12568 | " apenas com seu primeiro pai." | |
@@ -12761,12 +12749,8 b' msgstr ""' | |||||
12761 | " resolvidos, o processo de enxerto pode ser retomado usando a\n" |
|
12749 | " resolvidos, o processo de enxerto pode ser retomado usando a\n" | |
12762 | " opção -c/--continue." |
|
12750 | " opção -c/--continue." | |
12763 |
|
12751 | |||
12764 | msgid "" |
|
12752 | msgid " The -c/--continue option does not reapply earlier options." | |
12765 | " .. note::\n" |
|
12753 | msgstr " A opção -c/--continue não reaplica opções anteriores." | |
12766 | " The -c/--continue option does not reapply earlier options." |
|
|||
12767 | msgstr "" |
|
|||
12768 | " .. note::\n" |
|
|||
12769 | " A opção -c/--continue não reaplica opções anteriores." |
|
|||
12770 |
|
12754 | |||
12771 | msgid "" |
|
12755 | msgid "" | |
12772 | " - copy a single change to the stable branch and edit its description::" |
|
12756 | " - copy a single change to the stable branch and edit its description::" | |
@@ -13453,26 +13437,22 b' msgstr ""' | |||||
13453 | " mensagem de consolidação completa." |
|
13437 | " mensagem de consolidação completa." | |
13454 |
|
13438 | |||
13455 | msgid "" |
|
13439 | msgid "" | |
13456 | " .. note::\n" |
|
|||
13457 | " log -p/--patch may generate unexpected diff output for merge\n" |
|
13440 | " log -p/--patch may generate unexpected diff output for merge\n" | |
13458 | " changesets, as it will only compare the merge changeset against\n" |
|
13441 | " changesets, as it will only compare the merge changeset against\n" | |
13459 | " its first parent. Also, only files different from BOTH parents\n" |
|
13442 | " its first parent. Also, only files different from BOTH parents\n" | |
13460 | " will appear in files:." |
|
13443 | " will appear in files:." | |
13461 | msgstr "" |
|
13444 | msgstr "" | |
13462 | " .. note::\n" |
|
|||
13463 | " log -p/--patch pode gerar saídas de diff inesperadas para\n" |
|
13445 | " log -p/--patch pode gerar saídas de diff inesperadas para\n" | |
13464 | " mesclagens, pois irá comparar a revisão de mesclagem apenas\n" |
|
13446 | " mesclagens, pois irá comparar a revisão de mesclagem apenas\n" | |
13465 | " com seu primeiro pai. Além disso, apenas arquivos diferentes\n" |
|
13447 | " com seu primeiro pai. Além disso, apenas arquivos diferentes\n" | |
13466 | " de AMBOS os pais aparecerão na lista de arquivos." |
|
13448 | " de AMBOS os pais aparecerão na lista de arquivos." | |
13467 |
|
13449 | |||
13468 | msgid "" |
|
13450 | msgid "" | |
13469 | " .. note::\n" |
|
|||
13470 | " for performance reasons, log FILE may omit duplicate changes\n" |
|
13451 | " for performance reasons, log FILE may omit duplicate changes\n" | |
13471 | " made on branches and will not show deletions. To see all\n" |
|
13452 | " made on branches and will not show deletions. To see all\n" | |
13472 | " changes including duplicates and deletions, use the --removed\n" |
|
13453 | " changes including duplicates and deletions, use the --removed\n" | |
13473 | " switch." |
|
13454 | " switch." | |
13474 | msgstr "" |
|
13455 | msgstr "" | |
13475 | " .. note::\n" |
|
|||
13476 | " por razões de desempenho, log ARQUIVO pode omitir mudanças\n" |
|
13456 | " por razões de desempenho, log ARQUIVO pode omitir mudanças\n" | |
13477 | " duplicadas feitas em outros ramos, e não mostra remoções.\n" |
|
13457 | " duplicadas feitas em outros ramos, e não mostra remoções.\n" | |
13478 | " Para ver todas as mudanças incluindo duplicatas e remoções,\n" |
|
13458 | " Para ver todas as mudanças incluindo duplicatas e remoções,\n" | |
@@ -14033,12 +14013,10 b' msgstr ""' | |||||
14033 | " forçar outras mudanças." |
|
14013 | " forçar outras mudanças." | |
14034 |
|
14014 | |||
14035 | msgid "" |
|
14015 | msgid "" | |
14036 | " .. note::\n" |
|
|||
14037 | " Extra care should be taken with the -f/--force option,\n" |
|
14016 | " Extra care should be taken with the -f/--force option,\n" | |
14038 | " which will push all new heads on all branches, an action which will\n" |
|
14017 | " which will push all new heads on all branches, an action which will\n" | |
14039 | " almost always cause confusion for collaborators." |
|
14018 | " almost always cause confusion for collaborators." | |
14040 | msgstr "" |
|
14019 | msgstr "" | |
14041 | " .. note::\n" |
|
|||
14042 | " Cuidado extra deve ser tomado ao usar a opção -f/--force,\n" |
|
14020 | " Cuidado extra deve ser tomado ao usar a opção -f/--force,\n" | |
14043 | " que enviará todas as novas cabeças em todos os ramos, o que\n" |
|
14021 | " que enviará todas as novas cabeças em todos os ramos, o que\n" | |
14044 | " quase sempre confunde os outros colaboradores." |
|
14022 | " quase sempre confunde os outros colaboradores." | |
@@ -14363,12 +14341,10 b' msgstr ""' | |||||
14363 | "restaura arquivos para o estado correspondente a uma cópia de trabalho" |
|
14341 | "restaura arquivos para o estado correspondente a uma cópia de trabalho" | |
14364 |
|
14342 | |||
14365 | msgid "" |
|
14343 | msgid "" | |
14366 | " .. note::\n" |
|
|||
14367 | " To check out earlier revisions, you should use :hg:`update REV`.\n" |
|
14344 | " To check out earlier revisions, you should use :hg:`update REV`.\n" | |
14368 | " To cancel an uncommitted merge (and lose your changes),\n" |
|
14345 | " To cancel an uncommitted merge (and lose your changes),\n" | |
14369 | " use :hg:`update --clean .`." |
|
14346 | " use :hg:`update --clean .`." | |
14370 | msgstr "" |
|
14347 | msgstr "" | |
14371 | " .. note::\n" |
|
|||
14372 | " Para obter revisões anteriores, você deve usar :hg:`update REV`.\n" |
|
14348 | " Para obter revisões anteriores, você deve usar :hg:`update REV`.\n" | |
14373 | " Para cancelar uma mesclagem não consolidada (e descartar suas\n" |
|
14349 | " Para cancelar uma mesclagem não consolidada (e descartar suas\n" | |
14374 | " modificações), use :hg:`update --clean .`." |
|
14350 | " modificações), use :hg:`update --clean .`." | |
@@ -14735,13 +14711,11 b' msgstr ""' | |||||
14735 | " com -u/--unknown (desconhecidos) ou -i/--ignored (ignorados)." |
|
14711 | " com -u/--unknown (desconhecidos) ou -i/--ignored (ignorados)." | |
14736 |
|
14712 | |||
14737 | msgid "" |
|
14713 | msgid "" | |
14738 | " .. note::\n" |
|
|||
14739 | " status may appear to disagree with diff if permissions have\n" |
|
14714 | " status may appear to disagree with diff if permissions have\n" | |
14740 | " changed or a merge has occurred. The standard diff format does\n" |
|
14715 | " changed or a merge has occurred. The standard diff format does\n" | |
14741 | " not report permission changes and diff only reports changes\n" |
|
14716 | " not report permission changes and diff only reports changes\n" | |
14742 | " relative to one merge parent." |
|
14717 | " relative to one merge parent." | |
14743 | msgstr "" |
|
14718 | msgstr "" | |
14744 | " .. note::\n" |
|
|||
14745 | " o comando status pode aparentemente discordar do comando\n" |
|
14719 | " o comando status pode aparentemente discordar do comando\n" | |
14746 | " diff se ocorrer uma mudança de permissões ou uma mesclagem. O\n" |
|
14720 | " diff se ocorrer uma mudança de permissões ou uma mesclagem. O\n" | |
14747 | " formato diff padrão não informa mudanças de permissão e o\n" |
|
14721 | " formato diff padrão não informa mudanças de permissão e o\n" | |
@@ -23586,15 +23560,6 b' msgstr "IPv6 indispon\xc3\xadvel nesse sistema"' | |||||
23586 | msgid "cannot start server at '%s:%d': %s" |
|
23560 | msgid "cannot start server at '%s:%d': %s" | |
23587 | msgstr "não é possível iniciar o servidor em '%s:%d': %s" |
|
23561 | msgstr "não é possível iniciar o servidor em '%s:%d': %s" | |
23588 |
|
23562 | |||
23589 | msgid "exact revision search" |
|
|||
23590 | msgstr "busca exata por revisões" |
|
|||
23591 |
|
||||
23592 | msgid "literal keyword search" |
|
|||
23593 | msgstr "busca por palavra chave literal" |
|
|||
23594 |
|
||||
23595 | msgid "revset expression search" |
|
|||
23596 | msgstr "busca por expressão revset" |
|
|||
23597 |
|
||||
23598 | #, python-format |
|
23563 | #, python-format | |
23599 | msgid "(binary file %s, hash: %s)" |
|
23564 | msgid "(binary file %s, hash: %s)" | |
23600 | msgstr "(arquivo binário %s, hash: %s)" |
|
23565 | msgstr "(arquivo binário %s, hash: %s)" | |
@@ -24284,6 +24249,9 b' msgstr "aplica\xc3\xa7\xc3\xa3o do patch falhou"' | |||||
24284 | msgid "cannot %s; remote repository does not support the %r capability" |
|
24249 | msgid "cannot %s; remote repository does not support the %r capability" | |
24285 | msgstr "impossível %s; repositório remoto não suporta a funcionalidade '%r'" |
|
24250 | msgstr "impossível %s; repositório remoto não suporta a funcionalidade '%r'" | |
24286 |
|
24251 | |||
|
24252 | msgid "cannot lookup negative revision" | |||
|
24253 | msgstr "não é possível buscar por uma revisão negativa" | |||
|
24254 | ||||
24287 | msgid "cannot change null revision phase" |
|
24255 | msgid "cannot change null revision phase" | |
24288 | msgstr "não é possível mudar a fase da revisão nula" |
|
24256 | msgstr "não é possível mudar a fase da revisão nula" | |
24289 |
|
24257 | |||
@@ -26253,6 +26221,12 b' msgstr "autentica\xc3\xa7\xc3\xa3o http: usu\xc3\xa1rio %s, senha %s\\n"' | |||||
26253 | msgid "command '%s' failed: %s" |
|
26221 | msgid "command '%s' failed: %s" | |
26254 | msgstr "falha ao executar o comando '%s' : %s" |
|
26222 | msgstr "falha ao executar o comando '%s' : %s" | |
26255 |
|
26223 | |||
|
26224 | msgid "filename ends with '\\', which is invalid on Windows" | |||
|
26225 | msgstr "o nome de arquivo termina em '\\', o que não é permitido em Windows" | |||
|
26226 | ||||
|
26227 | msgid "directory name ends with '\\', which is invalid on Windows" | |||
|
26228 | msgstr "o nome de diretório termina em '\\', o que não é permitido em Windows" | |||
|
26229 | ||||
26256 | #, python-format |
|
26230 | #, python-format | |
26257 | msgid "filename contains '%s', which is reserved on Windows" |
|
26231 | msgid "filename contains '%s', which is reserved on Windows" | |
26258 | msgstr "o nome de arquivo contém '%s', que é um nome reservado em Windows" |
|
26232 | msgstr "o nome de arquivo contém '%s', que é um nome reservado em Windows" |
@@ -940,9 +940,7 b' def show_changeset(ui, repo, opts, buffe' | |||||
940 |
|
940 | |||
941 | tmpl = opts.get('template') |
|
941 | tmpl = opts.get('template') | |
942 | style = None |
|
942 | style = None | |
943 | if tmpl: |
|
943 | if not tmpl: | |
944 | tmpl = templater.parsestring(tmpl, quoted=False) |
|
|||
945 | else: |
|
|||
946 | style = opts.get('style') |
|
944 | style = opts.get('style') | |
947 |
|
945 | |||
948 | # ui settings |
|
946 | # ui settings |
@@ -52,7 +52,7 b' def tokenizer(data):' | |||||
52 | if not decode: |
|
52 | if not decode: | |
53 | yield ('string', program[s:pos].replace('\\', r'\\'), s) |
|
53 | yield ('string', program[s:pos].replace('\\', r'\\'), s) | |
54 | break |
|
54 | break | |
55 |
yield ('string', program[s:pos] |
|
55 | yield ('string', program[s:pos], s) | |
56 | break |
|
56 | break | |
57 | pos += 1 |
|
57 | pos += 1 | |
58 | else: |
|
58 | else: | |
@@ -80,19 +80,19 b' def compiletemplate(tmpl, context):' | |||||
80 | parsed = [] |
|
80 | parsed = [] | |
81 | pos, stop = 0, len(tmpl) |
|
81 | pos, stop = 0, len(tmpl) | |
82 | p = parser.parser(tokenizer, elements) |
|
82 | p = parser.parser(tokenizer, elements) | |
83 |
|
||||
84 | while pos < stop: |
|
83 | while pos < stop: | |
85 | n = tmpl.find('{', pos) |
|
84 | n = tmpl.find('{', pos) | |
86 | if n < 0: |
|
85 | if n < 0: | |
87 | parsed.append(("string", tmpl[pos:])) |
|
86 | parsed.append(("string", tmpl[pos:].decode("string-escape"))) | |
88 | break |
|
87 | break | |
89 | if n > 0 and tmpl[n - 1] == '\\': |
|
88 | if n > 0 and tmpl[n - 1] == '\\': | |
90 | # escaped |
|
89 | # escaped | |
91 |
parsed.append(("string", |
|
90 | parsed.append(("string", | |
|
91 | (tmpl[pos:n - 1] + "{").decode("string-escape"))) | |||
92 | pos = n + 1 |
|
92 | pos = n + 1 | |
93 | continue |
|
93 | continue | |
94 | if n > pos: |
|
94 | if n > pos: | |
95 | parsed.append(("string", tmpl[pos:n])) |
|
95 | parsed.append(("string", tmpl[pos:n].decode("string-escape"))) | |
96 |
|
96 | |||
97 | pd = [tmpl, n + 1, stop] |
|
97 | pd = [tmpl, n + 1, stop] | |
98 | parseres, pos = p.parse(pd) |
|
98 | parseres, pos = p.parse(pd) | |
@@ -258,6 +258,13 b' def get(context, mapping, args):' | |||||
258 | key = args[1][0](context, mapping, args[1][1]) |
|
258 | key = args[1][0](context, mapping, args[1][1]) | |
259 | yield dictarg.get(key) |
|
259 | yield dictarg.get(key) | |
260 |
|
260 | |||
|
261 | def _evalifliteral(arg, context, mapping): | |||
|
262 | t = stringify(arg[0](context, mapping, arg[1])) | |||
|
263 | if arg[0] == runstring: | |||
|
264 | yield runtemplate(context, mapping, compiletemplate(t, context)) | |||
|
265 | else: | |||
|
266 | yield t | |||
|
267 | ||||
261 | def if_(context, mapping, args): |
|
268 | def if_(context, mapping, args): | |
262 | if not (2 <= len(args) <= 3): |
|
269 | if not (2 <= len(args) <= 3): | |
263 | # i18n: "if" is a keyword |
|
270 | # i18n: "if" is a keyword | |
@@ -265,11 +272,9 b' def if_(context, mapping, args):' | |||||
265 |
|
272 | |||
266 | test = stringify(args[0][0](context, mapping, args[0][1])) |
|
273 | test = stringify(args[0][0](context, mapping, args[0][1])) | |
267 | if test: |
|
274 | if test: | |
268 |
|
|
275 | yield _evalifliteral(args[1], context, mapping) | |
269 | yield runtemplate(context, mapping, compiletemplate(t, context)) |
|
|||
270 | elif len(args) == 3: |
|
276 | elif len(args) == 3: | |
271 |
|
|
277 | yield _evalifliteral(args[2], context, mapping) | |
272 | yield runtemplate(context, mapping, compiletemplate(t, context)) |
|
|||
273 |
|
278 | |||
274 | def ifeq(context, mapping, args): |
|
279 | def ifeq(context, mapping, args): | |
275 | if not (3 <= len(args) <= 4): |
|
280 | if not (3 <= len(args) <= 4): | |
@@ -279,11 +284,9 b' def ifeq(context, mapping, args):' | |||||
279 | test = stringify(args[0][0](context, mapping, args[0][1])) |
|
284 | test = stringify(args[0][0](context, mapping, args[0][1])) | |
280 | match = stringify(args[1][0](context, mapping, args[1][1])) |
|
285 | match = stringify(args[1][0](context, mapping, args[1][1])) | |
281 | if test == match: |
|
286 | if test == match: | |
282 |
|
|
287 | yield _evalifliteral(args[2], context, mapping) | |
283 | yield runtemplate(context, mapping, compiletemplate(t, context)) |
|
|||
284 | elif len(args) == 4: |
|
288 | elif len(args) == 4: | |
285 |
|
|
289 | yield _evalifliteral(args[3], context, mapping) | |
286 | yield runtemplate(context, mapping, compiletemplate(t, context)) |
|
|||
287 |
|
290 | |||
288 | def join(context, mapping, args): |
|
291 | def join(context, mapping, args): | |
289 | if not (1 <= len(args) <= 2): |
|
292 | if not (1 <= len(args) <= 2): | |
@@ -313,8 +316,7 b' def label(context, mapping, args):' | |||||
313 | raise error.ParseError(_("label expects two arguments")) |
|
316 | raise error.ParseError(_("label expects two arguments")) | |
314 |
|
317 | |||
315 | # ignore args[0] (the label string) since this is supposed to be a a no-op |
|
318 | # ignore args[0] (the label string) since this is supposed to be a a no-op | |
316 | t = stringify(args[1][0](context, mapping, args[1][1])) |
|
319 | yield _evalifliteral(args[1], context, mapping) | |
317 | yield runtemplate(context, mapping, compiletemplate(t, context)) |
|
|||
318 |
|
320 | |||
319 | def rstdoc(context, mapping, args): |
|
321 | def rstdoc(context, mapping, args): | |
320 | if len(args) != 2: |
|
322 | if len(args) != 2: |
@@ -80,8 +80,8 b'' | |||||
80 | return m ? m[1] : null; |
|
80 | return m ? m[1] : null; | |
81 | }, |
|
81 | }, | |
82 | '.bigtable > tbody:nth-of-type(2)', |
|
82 | '.bigtable > tbody:nth-of-type(2)', | |
83 | '<tr class="%class%">\ |
|
83 | '<tr class="%class%">\\ | |
84 | <td colspan="3" style="text-align: center;">%text%</td>\ |
|
84 | <td colspan="3" style="text-align: center;">%text%</td>\\ | |
85 | </tr>' |
|
85 | </tr>' | |
86 | ); |
|
86 | ); | |
87 | </script> |
|
87 | </script> |
@@ -1601,3 +1601,23 b' Test date format:' | |||||
1601 | date: 70 01 01 02 +0000 |
|
1601 | date: 70 01 01 02 +0000 | |
1602 | date: 70 01 01 01 +0000 |
|
1602 | date: 70 01 01 01 +0000 | |
1603 | date: 70 01 01 00 +0000 |
|
1603 | date: 70 01 01 00 +0000 | |
|
1604 | ||||
|
1605 | Test string escaping: | |||
|
1606 | ||||
|
1607 | $ hg log -R latesttag -r 0 --template '>\n<>\\n<{if(rev, "[>\n<>\\n<]")}>\n<>\\n<\n' | |||
|
1608 | > | |||
|
1609 | <>\n<[> | |||
|
1610 | <>\n<]> | |||
|
1611 | <>\n< | |||
|
1612 | ||||
|
1613 | Test recursive evaluation: | |||
|
1614 | ||||
|
1615 | $ hg init r | |||
|
1616 | $ cd r | |||
|
1617 | $ echo a > a | |||
|
1618 | $ hg ci -Am '{rev}' | |||
|
1619 | adding a | |||
|
1620 | $ hg log -r 0 --template '{if(rev, desc)}\n' | |||
|
1621 | {rev} | |||
|
1622 | $ hg log -r 0 --template '{if(rev, "{author} {rev}")}\n' | |||
|
1623 | test 0 |
@@ -97,6 +97,7 b' log after edit' | |||||
97 | Check histedit_source |
|
97 | Check histedit_source | |
98 |
|
98 | |||
99 | $ hg log --debug --rev f518305ce889 |
|
99 | $ hg log --debug --rev f518305ce889 | |
|
100 | invalid branchheads cache (visible): tip differs | |||
100 | changeset: 4:f518305ce889c07cb5bd05522176d75590ef3324 |
|
101 | changeset: 4:f518305ce889c07cb5bd05522176d75590ef3324 | |
101 | tag: tip |
|
102 | tag: tip | |
102 | phase: draft |
|
103 | phase: draft |
General Comments 0
You need to be logged in to leave comments.
Login now