# HG changeset patch # User Matt Mackall # Date 1359755313 21600 # Node ID 7068089c95a2ff3c1b536bbb52ca6bc1f06fc06e # Parent 8bd338c7c4c9831850e1c4ddf24b747222a44131# Parent 151f78a07607ae00e69c54b0efcc2be105ab3644 merge with stable diff -r 8bd338c7c4c9 -r 7068089c95a2 .hgsigs --- a/.hgsigs Sat Jan 19 17:20:39 2013 -0600 +++ b/.hgsigs Fri Feb 01 15:48:33 2013 -0600 @@ -63,3 +63,5 @@ 195ad823b5d58c68903a6153a25e3fb4ed25239d 0 iD8DBQBQkuT9ywK+sNU5EO8RAhB4AKCeerItoK2Jipm2cVf4euGofAa/WACeJj3TVd4pFILpb+ogj7ebweFLJi0= 0c10cf8191469e7c3c8844922e17e71a176cb7cb 0 iD8DBQBQvQWoywK+sNU5EO8RAnq3AJoCn98u4geFx5YaQaeh99gFhCd7bQCgjoBwBSUyOvGd0yBy60E3Vv3VZhM= a4765077b65e6ae29ba42bab7834717b5072d5ba 0 iD8DBQBQ486sywK+sNU5EO8RAhmJAJ90aLfLKZhmcZN7kqphigQJxiFOQACeJ5IUZxjGKH4xzi3MrgIcx9n+dB0= +f5fbe15ca7449f2c9a3cf817c86d0ae68b307214 0 iD8DBQBQ+yuYywK+sNU5EO8RAm9JAJoD/UciWvpGeKBcpGtZJBFJVcL/HACghDXSgQ+xQDjB+6uGrdgAQsRR1Lg= +a6088c05e43a8aee0472ca3a4f6f8d7dd914ebbf 0 iD8DBQBRDDROywK+sNU5EO8RAh75AJ9uJCGoCWnP0Lv/+XuYs4hvUl+sAgCcD36QgAnuw8IQXrvv684BAXAnHcA= diff -r 8bd338c7c4c9 -r 7068089c95a2 .hgtags --- a/.hgtags Sat Jan 19 17:20:39 2013 -0600 +++ b/.hgtags Fri Feb 01 15:48:33 2013 -0600 @@ -76,3 +76,5 @@ 195ad823b5d58c68903a6153a25e3fb4ed25239d 2.4 0c10cf8191469e7c3c8844922e17e71a176cb7cb 2.4.1 a4765077b65e6ae29ba42bab7834717b5072d5ba 2.4.2 +f5fbe15ca7449f2c9a3cf817c86d0ae68b307214 2.5-rc +a6088c05e43a8aee0472ca3a4f6f8d7dd914ebbf 2.5 diff -r 8bd338c7c4c9 -r 7068089c95a2 contrib/check-code.py --- a/contrib/check-code.py Sat Jan 19 17:20:39 2013 -0600 +++ b/contrib/check-code.py Fri Feb 01 15:48:33 2013 -0600 @@ -78,7 +78,7 @@ [ (r'^function', "don't use 'function', use old style"), (r'^diff.*-\w*N', "don't use 'diff -N'"), - (r'\$PWD', "don't use $PWD, use `pwd`"), + (r'\$PWD|\${PWD}', "don't use $PWD, use `pwd`"), (r'^([^"\'\n]|("[^"\n]*")|(\'[^\'\n]*\'))*\^', "^ must be quoted"), ] ] diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/histedit.py --- a/hgext/histedit.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/histedit.py Fri Feb 01 15:48:33 2013 -0600 @@ -454,8 +454,12 @@ if revs: revs = [repo.lookup(rev) for rev in revs] - parent = discovery.findcommonoutgoing( - repo, other, [], force=opts.get('force')).missing[0:1] + # hexlify nodes from outgoing, because we're going to parse + # parent[0] using revsingle below, and if the binary hash + # contains special revset characters like ":" the revset + # parser can choke. + parent = [node.hex(n) for n in discovery.findcommonoutgoing( + repo, other, [], force=opts.get('force')).missing[0:1]] else: if opts.get('force'): raise util.Abort(_('--force only allowed with --outgoing')) diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/basestore.py --- a/hgext/largefiles/basestore.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/basestore.py Fri Feb 01 15:48:33 2013 -0600 @@ -26,7 +26,7 @@ self.detail = detail def longmessage(self): - return (_("error getting %s from %s for %s: %s\n") % + return (_("error getting id %s from url %s for file %s: %s\n") % (self.hash, self.url, self.filename, self.detail)) def __str__(self): @@ -67,7 +67,7 @@ ui.note(_('getting %s:%s\n') % (filename, hash)) storefilename = lfutil.storepath(self.repo, hash) - tmpfile = util.atomictempfile(storefilename, + tmpfile = util.atomictempfile(storefilename + '.tmp', createmode=self.repo.store.createmode) try: @@ -75,16 +75,17 @@ except StoreError, err: ui.warn(err.longmessage()) hhash = "" + tmpfile.close() # has probably already been closed! if hhash != hash: if hhash != "": ui.warn(_('%s: data corruption (expected %s, got %s)\n') % (filename, hash, hhash)) - tmpfile.discard() # no-op if it's already closed + util.unlink(storefilename + '.tmp') missing.append(filename) continue - tmpfile.close() + util.rename(storefilename + '.tmp', storefilename) lfutil.linktousercache(self.repo, hash) success.append((filename, hhash)) @@ -105,8 +106,9 @@ cctx = self.repo[rev] cset = "%d:%s" % (cctx.rev(), node.short(cctx.node())) - failed = util.any(self._verifyfile( - cctx, cset, contents, standin, verified) for standin in cctx) + for standin in cctx: + if self._verifyfile(cctx, cset, contents, standin, verified): + failed = True numrevs = len(verified) numlfiles = len(set([fname for (fname, fnode) in verified])) @@ -163,6 +165,7 @@ path = '' remote = repo else: + path, _branches = hg.parseurl(path) remote = hg.peer(repo, {}, path) # The path could be a scheme so use Mercurial's normal functionality diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/lfutil.py Fri Feb 01 15:48:33 2013 -0600 @@ -224,13 +224,7 @@ '''Return a match object that applies pats to the standin directory''' standindir = repo.wjoin(shortname) if pats: - # patterns supplied: search standin directory relative to current dir - cwd = repo.getcwd() - if os.path.isabs(cwd): - # cwd is an absolute path for hg -R - # work relative to the repository root in this case - cwd = '' - pats = [os.path.join(standindir, cwd, pat) for pat in pats] + pats = [os.path.join(standindir, pat) for pat in pats] elif os.path.isdir(standindir): # no patterns: relative to repo root pats = [standindir] diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/overrides.py Fri Feb 01 15:48:33 2013 -0600 @@ -669,18 +669,18 @@ finally: wlock.release() -def hgupdate(orig, repo, node): - # Only call updatelfiles the standins that have changed to save time - oldstandins = lfutil.getstandinsstate(repo) - result = orig(repo, node) - newstandins = lfutil.getstandinsstate(repo) - filelist = lfutil.getlfilestoupdate(oldstandins, newstandins) - lfcommands.updatelfiles(repo.ui, repo, filelist=filelist, printmessage=True) - return result +def hgupdaterepo(orig, repo, node, overwrite): + if not overwrite: + # Only call updatelfiles on the standins that have changed to save time + oldstandins = lfutil.getstandinsstate(repo) -def hgclean(orig, repo, node, show_stats=True): - result = orig(repo, node, show_stats) - lfcommands.updatelfiles(repo.ui, repo) + result = orig(repo, node, overwrite) + + filelist = None + if not overwrite: + newstandins = lfutil.getstandinsstate(repo) + filelist = lfutil.getlfilestoupdate(oldstandins, newstandins) + lfcommands.updatelfiles(repo.ui, repo, filelist=filelist) return result def hgmerge(orig, repo, node, force=None, remind=True): @@ -1149,10 +1149,25 @@ def overridecat(orig, ui, repo, file1, *pats, **opts): ctx = scmutil.revsingle(repo, opts.get('rev')) - if not lfutil.standin(file1) in ctx: - result = orig(ui, repo, file1, *pats, **opts) - return result - return lfcommands.catlfile(repo, file1, ctx.rev(), opts.get('output')) + err = 1 + notbad = set() + m = scmutil.match(ctx, (file1,) + pats, opts) + origmatchfn = m.matchfn + def lfmatchfn(f): + lf = lfutil.splitstandin(f) + if lf is None: + return origmatchfn(f) + notbad.add(lf) + return origmatchfn(lf) + m.matchfn = lfmatchfn + m.bad = lambda f, msg: f not in notbad + for f in ctx.walk(m): + lf = lfutil.splitstandin(f) + if lf is None: + err = orig(ui, repo, f, **opts) + else: + err = lfcommands.catlfile(repo, lf, ctx.rev(), opts.get('output')) + return err def mercurialsinkbefore(orig, sink): sink.repo._isconverting = True diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/proto.py --- a/hgext/largefiles/proto.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/proto.py Fri Feb 01 15:48:33 2013 -0600 @@ -63,18 +63,16 @@ return wireproto.streamres(generator()) def statlfile(repo, proto, sha): - '''Return '2\n' if the largefile is missing, '1\n' if it has a - mismatched checksum, or '0\n' if it is in good condition''' + '''Return '2\n' if the largefile is missing, '0\n' if it seems to be in + good condition. + + The value 1 is reserved for mismatched checksum, but that is too expensive + to be verified on every stat and must be caught be running 'hg verify' + server side.''' filename = lfutil.findfile(repo, sha) if not filename: return '2\n' - fd = None - try: - fd = open(filename, 'rb') - return lfutil.hexsha1(fd) == sha and '0\n' or '1\n' - finally: - if fd: - fd.close() + return '0\n' def wirereposetup(ui, repo): class lfileswirerepository(repo.__class__): diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/remotestore.py --- a/hgext/largefiles/remotestore.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/remotestore.py Fri Feb 01 15:48:33 2013 -0600 @@ -48,11 +48,14 @@ def _getfile(self, tmpfile, filename, hash): # quit if the largefile isn't there - stat = self._stat(hash) + stat = self._stat([hash])[hash] if stat == 1: raise util.Abort(_('remotestore: largefile %s is invalid') % hash) elif stat == 2: raise util.Abort(_('remotestore: largefile %s is missing') % hash) + elif stat != 0: + raise RuntimeError('error getting file: unexpected response from ' + 'statlfile (%r)' % stat) try: length, infile = self._get(hash) @@ -74,7 +77,7 @@ return lfutil.copyandhash(lfutil.blockstream(infile), tmpfile) def _verify(self, hashes): - return self._stat(hashes) + return dict((h, s == 0) for (h, s) in self._stat(hashes).iteritems()) def _verifyfile(self, cctx, cset, contents, standin, verified): filename = lfutil.splitstandin(standin) @@ -87,7 +90,8 @@ verified.add(key) - stat = self._stat(hash) + expecthash = fctx.data()[0:40] + stat = self._stat([expecthash])[expecthash] if not stat: return False elif stat == 1: diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/uisetup.py --- a/hgext/largefiles/uisetup.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/uisetup.py Fri Feb 01 15:48:33 2013 -0600 @@ -109,11 +109,7 @@ entry = extensions.wrapfunction(commands, 'revert', overrides.overriderevert) - # clone uses hg._update instead of hg.update even though they are the - # same function... so wrap both of them) - extensions.wrapfunction(hg, 'update', overrides.hgupdate) - extensions.wrapfunction(hg, '_update', overrides.hgupdate) - extensions.wrapfunction(hg, 'clean', overrides.hgclean) + extensions.wrapfunction(hg, 'updaterepo', overrides.hgupdaterepo) extensions.wrapfunction(hg, 'merge', overrides.hgmerge) extensions.wrapfunction(archival, 'archive', overrides.overridearchive) diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/largefiles/wirestore.py --- a/hgext/largefiles/wirestore.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/largefiles/wirestore.py Fri Feb 01 15:48:33 2013 -0600 @@ -26,6 +26,8 @@ return self.remote.getlfile(hash) def _stat(self, hashes): + '''For each hash, return 2 if the largefile is missing, 1 if it has a + mismatched checksum, or 0 if it is in good condition''' batch = self.remote.batch() futures = {} for hash in hashes: @@ -33,5 +35,5 @@ batch.submit() retval = {} for hash in hashes: - retval[hash] = not futures[hash].value + retval[hash] = futures[hash].value return retval diff -r 8bd338c7c4c9 -r 7068089c95a2 hgext/rebase.py --- a/hgext/rebase.py Sat Jan 19 17:20:39 2013 -0600 +++ b/hgext/rebase.py Fri Feb 01 15:48:33 2013 -0600 @@ -68,6 +68,9 @@ same rebase or they will end up with duplicated changesets after pulling in your rebased changesets. + In its default configuration, Mercurial will prevent you from + rebasing published changes. See :hg:`help phases` for details. + If you don't specify a destination changeset (``-d/--dest``), rebase uses the tipmost head of the current named branch as the destination. (The destination changeset is not modified by @@ -85,6 +88,11 @@ the whole branch. If you specify neither ``-s`` nor ``-b``, rebase uses the parent of the working directory as the base. + For advanced usage, a third way is available through the ``--rev`` + option. It allows you to specify an arbitrary set of changesets to + rebase. Descendants of revs you specify with this option are not + automatically included in the rebase. + By default, rebase recreates the changesets in the source branch as descendants of dest and then destroys the originals. Use ``--keep`` to preserve the original source changesets. Some @@ -316,7 +324,7 @@ clearrebased(ui, repo, state, skipped, collapsedas) if currentbookmarks: - updatebookmarks(repo, nstate, currentbookmarks, **opts) + updatebookmarks(repo, dest, nstate, currentbookmarks) clearstatus(repo) ui.note(_("rebase completed\n")) @@ -493,14 +501,15 @@ mq.seriesdirty = True mq.savedirty() -def updatebookmarks(repo, nstate, originalbookmarks, **opts): - 'Move bookmarks to their correct changesets' +def updatebookmarks(repo, dest, nstate, originalbookmarks): + 'Move bookmarks to their correct changesets, and delete divergent ones' + destnode = dest.node() marks = repo._bookmarks for k, v in originalbookmarks.iteritems(): if v in nstate: - if nstate[v] > nullmerge: - # update the bookmarks for revs that have moved - marks[k] = nstate[v] + # update the bookmarks for revs that have moved + marks[k] = nstate[v] + bookmarks.deletedivergent(repo, [destnode], k) marks.write() diff -r 8bd338c7c4c9 -r 7068089c95a2 i18n/ja.po --- a/i18n/ja.po Sat Jan 19 17:20:39 2013 -0600 +++ b/i18n/ja.po Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ # Japanese translation for Mercurial # Mercurial 日本語翻訳 # -# Copyright (C) 2009-2012 the Mercurial team +# Copyright (C) 2009-2013 the Mercurial team # # ======================================== # 【翻訳用語集】 @@ -55,6 +55,7 @@ # change チェンジセット/差分 # changegroup( file) バンドルファイル # changeset リビジョン (or 「チェンジセット」/「変更内容」) +# changeset description コミットログ # changeset hash ハッシュ値 # changeset header ヘッダ情報 # changeset log コミットログ @@ -64,9 +65,11 @@ # commit コミット # commit comment コミットログ # commit message コミットログ +# commit text コミットログ # copy(of file, repo) 複製 # default(, by) 指定が無い場合/通常は # delete (作業領域からの)ファイル削除 +# description(, changeset) コミットログ # diff 差分 # directory ディレクトリ # dirstate dirstate @@ -122,6 +125,7 @@ # support(, not) (未)サポート # support(, un) (未)サポート # tag タグ +# topological xxxx 構造的 # tracked xxxx 構成管理対象の xxxx # tracked, un 未登録 # type, xxxxx xxxx 種別 @@ -135,7 +139,7 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-30 17:45+0900\n" +"POT-Creation-Date: 2013-01-31 18:04+0900\n" "PO-Revision-Date: 2009-11-16 21:24+0100\n" "Last-Translator: Japanese translation team \n" "Language-Team: Japanese\n" @@ -1642,6 +1646,10 @@ msgid "ignoring unknown color/effect %r (configured in color.%s)\n" msgstr "未知の色/効果指定 %r を無視(color.%s で設定記述)\n" +#. i18n: "label" is a keyword +msgid "label expects two arguments" +msgstr "label の引数は2つです" + #. i18n: 'always', 'auto', and 'never' are keywords and should #. not be translated msgid "when to colorize (boolean, always, auto, or never)" @@ -1970,8 +1978,8 @@ " :convert.cvsps.cache: Set to False to disable remote log caching,\n" " for testing and debugging purposes. Default is True." msgstr "" -" :convert.cvsps.cache: リモートログのキャッシュを抑止します\n" -" (試験およびデバッグ用)。 デフォルト値は True。" +" :convert.cvsps.cache: (試験およびデバッグ用) False 設定により、\n" +" リモートログのキャッシュを抑止します。 デフォルト値は True。" msgid "" " :convert.cvsps.fuzz: Specify the maximum time (in seconds) that is\n" @@ -2011,22 +2019,31 @@ " デフォルト値は ``{{mergefrombranch ([-\\w]+)}}``" msgid "" -" :hook.cvslog: Specify a Python function to be called at the end of\n" +" :convert.localtimezone: use local time (as determined by the TZ\n" +" environment variable) for changeset date/times. The default\n" +" is False (use UTC)." +msgstr "" +" :convert.localtimezone: 新規リビジョンの作成日時情報に、 実行環境の、\n" +" タイムゾーンを使用します (TZ 環境変数から推定)。 デフォルト値は\n" +" False です (UTC として扱います)。" + +msgid "" +" :hooks.cvslog: Specify a Python function to be called at the end of\n" " gathering the CVS log. The function is passed a list with the\n" " log entries, and can modify the entries in-place, or add or\n" " delete them." msgstr "" -" :hook.cvslog: CVS のログ収集処理後に呼ばれる Python 関数。\n" +" :hooks.cvslog: CVS のログ収集処理後に呼ばれる Python 関数。\n" " 関数呼び出しの際には、 ログエントリの一覧が渡され、\n" " 一覧要素の改変や、 追加/削除を、 直接実施できます。" msgid "" -" :hook.cvschangesets: Specify a Python function to be called after\n" +" :hooks.cvschangesets: Specify a Python function to be called after\n" " the changesets are calculated from the CVS log. The\n" " function is passed a list with the changeset entries, and can\n" " modify the changesets in-place, or add or delete them." msgstr "" -" :hook.cvschangesets: CVS ログからのリビジョン算出完了後に呼ばれる\n" +" :hooks.cvschangesets: CVS ログからのリビジョン算出完了後に呼ばれる\n" " Python 関数。 関数呼び出しの際には、 リビジョン一覧が渡され、\n" " リビジョンの改変や、 追加/削除を、 直接実施できます。" @@ -2463,6 +2480,9 @@ msgid "reading cvs log cache %s\n" msgstr "CVS ログキャッシュ %s 読み込み中\n" +msgid "ignoring old cache\n" +msgstr "古いログキャッシュを無視します\n" + #, python-format msgid "cache has %d log entries\n" msgstr "キャッシュには %d 件のログエントリがあります\n" @@ -2573,6 +2593,10 @@ msgstr "%r オブジェクトが %s から読み込めません" #, python-format +msgid "cannot read submodules config file in %s" +msgstr "%s におけるサブモジュールの設定ファイルが読み込めません" + +#, python-format msgid "cannot read changes in %s" msgstr "%s の変更を読み込めません" @@ -2708,8 +2732,8 @@ "svn: cannot probe remote repository, assume it could be a subversion " "repository. Use --source-type if you know better.\n" msgstr "" -"svn: subversion の連携先リポジトリの確認に失敗しました。 --source-type の使用" -"を検討してください。\n" +"svn: 連携先リポジトリの確認に失敗しました。連携先を subversion リポジトリと仮" +"定します。他の形式の場合は --source-type を使用してください。\n" #, python-format msgid "%s does not look like a Subversion repository" @@ -3550,9 +3574,6 @@ msgid "do not display revision or any of its ancestors" msgstr "当該リビジョンとその祖先の表示を抑止" -msgid "show hidden changesets (DEPRECATED)" -msgstr "隠れたリビジョンの表示 (DEPRECATED)" - msgid "[OPTION]... [FILE]" msgstr "[OPTION]... [FILE]" @@ -3889,7 +3910,7 @@ " pick 7c2fd3b9020c Add delta" msgid "" -" # Edit history between 633536316234 and 7c2fd3b9020c\n" +" # Edit history between c561b4e977df and 7c2fd3b9020c\n" " #\n" " # Commands:\n" " # p, pick = use commit\n" @@ -3900,7 +3921,7 @@ " # m, mess = edit message without changing commit content\n" " #" msgstr "" -" # 633536316234 から 7c2fd3b9020c にかけての履歴の編集\n" +" # c561b4e977df から 7c2fd3b9020c にかけての履歴の編集\n" " #\n" " # 指定可能コマンド:\n" " # p, pick = リビジョンを採用\n" @@ -4050,11 +4071,10 @@ "履歴は改変前の状態に戻ります。" msgid "" -"If we clone the example repository above and add three more changes, such " -"that\n" -"we have the following history::" -msgstr "" -"上記の実行例におけるリポジトリを複製し、 そこで履歴を3つ追加した結果、\n" +"If we clone the histedit-ed example repository above and add four more\n" +"changes, such that we have the following history::" +msgstr "" +"改変済みの実行例リポジトリを複製し、 そこで履歴を4つ追加した結果、\n" "以下の様な履歴になったものと仮定します::" msgid "" @@ -4124,16 +4144,16 @@ "# m, mess = edit message without changing commit content\n" "#\n" msgstr "" -" # %s から %s にかけての履歴の編集\n" -" #\n" -" # 指定可能コマンド:\n" -" # p, pick = リビジョンを採用\n" -" # e, edit = リビジョンを採用: 但し修正のために一旦実行を中断\n" -" # f, fold = リビジョンを採用: 但し直前のリビジョンに併合\n" -" # (このリビジョンが N 番目なら、N - 1 番目に併合)\n" -" # d, drop = リビジョンを破棄\n" -" # m, mess = 改変内容を維持しつつ、コミットログを修正\n" -" #\n" +"# %s から %s にかけての履歴の編集\n" +"#\n" +"# 指定可能コマンド:\n" +"# p, pick = リビジョンを採用\n" +"# e, edit = リビジョンを採用: 但し修正のために一旦実行を中断\n" +"# f, fold = リビジョンを採用: 但し直前のリビジョンに併合\n" +"# (このリビジョンが N 番目なら、N - 1 番目に併合)\n" +"# d, drop = リビジョンを破棄\n" +"# m, mess = 改変内容を維持しつつ、コミットログを修正\n" +"#\n" msgid "Fix up the change and run hg histedit --continue" msgstr "衝突解消後に \"hg histedit --continue\" してください" @@ -4396,12 +4416,6 @@ msgid "cannot start: socket is already bound" msgstr "ソケットが既にバインドされているため開始できません" -msgid "" -"cannot start: tried linking .hg/inotify.sock to a temporary socket but .hg/" -"inotify.sock already exists" -msgstr "" -"一時ソケットに使用する .hg/inotify.sock が既に存在するため開始できません" - #, python-format msgid "answering query for %r\n" msgstr "%r への問い合わせに返答中\n" @@ -4570,7 +4584,7 @@ msgstr "" "複数行に渡る展開や、 CVS の $Log$ のような増加する内容の展開は\n" "未サポートです。 キーワードテンプレート設定 \"Log = {desc}\" は、\n" -"コミットメッセージの最初の一行を埋め込みます。\n" +"コミットログの最初の一行を埋め込みます。\n" #, python-format msgid "overwriting %s expanding keywords\n" @@ -4984,6 +4998,10 @@ " --to-normal を指定します。 変換後リポジトリは、 largefiles\n" " エクステンション無しでも使用できます。" +#, python-format +msgid "error getting id %s from url %s for file %s: %s\n" +msgstr "識別子 %s (連携先 %s のファイル %s) に対するエラー: %s\n" + msgid "getting largefiles" msgstr "大容量ファイルの取得中" @@ -5139,17 +5157,17 @@ msgstr "ファイル名指定がありません" #, python-format -msgid "not removing %s: %s (use forget to undo)\n" -msgstr "%s は削除されません: %s (取り消し機能は forget)\n" - -msgid "file still exists" -msgstr "ファイルは維持されます" - -msgid "file is modified" -msgstr "ファイルは改変されています" - -msgid "file has been marked for add" -msgstr "追加登録予定のファイルです" +msgid "not removing %s: file still exists\n" +msgstr "%s は削除されません: ファイルは維持されます\n" + +#, python-format +msgid "not removing %s: file is modified (use -f to force removal)\n" +msgstr "" +"%s は削除されません: ファイルは改変されています(削除の強行は -f を指定)\n" + +#, python-format +msgid "not removing %s: file has been marked for add (use forget to undo)\n" +msgstr "%s は削除されません: 追加登録対象ファイルです (取り消しは forget)\n" #, python-format msgid "removing %s\n" @@ -5346,6 +5364,9 @@ msgid "verify largefile contents not just existence" msgstr "大容量ファイルの存在確認以外に、 内容の検証も実施" +msgid "display largefiles dirstate" +msgstr "大容量ファイルの作業領域状態を表示" + msgid "display outgoing largefiles" msgstr "転送対象大容量ファイルを表示" @@ -6471,7 +6492,7 @@ msgstr "パッチに記録された親リビジョンに対して適用" msgid "list patch name in commit text" -msgstr "コミットメッセージとしてパッチ名を列挙" +msgstr "コミットログとしてパッチ名を列挙" msgid "apply all patches" msgstr "全てのパッチを適用" @@ -7428,15 +7449,15 @@ "message contains two or three body parts:" msgstr "" "個々のメールの Subject ヘッダは、 \"[PATCH M of N]\" で始まり、 対応する\n" -"リビジョンのコミットメッセージの最初の行の内容が記載されます。 メールの\n" -"本文は、 以下の様な2ないし3の部位から構成されます:" +"リビジョンのコミットログの最初の行の内容が記載されます。 メールの本文は、\n" +"以下の様な2ないし3の部位から構成されます:" msgid "" "- The changeset description.\n" "- [Optional] The result of running diffstat on the patch.\n" "- The patch itself, as generated by :hg:`export`." msgstr "" -"- コミットメッセージ\n" +"- コミットログ\n" "- パッチの差分統計(diffstat)結果 [省略可能]\n" "- :hg:`export` 形式と同様のパッチ内容" @@ -7596,9 +7617,9 @@ " description." msgstr "" " 個々のメールの Subject ヘッダは、 \"[PATCH M of N]\" で始まり、\n" -" 対応するリビジョンのコミットメッセージの1行目が記載されます。\n" +" 対応するリビジョンのコミットログの1行目が記載されます。\n" " メール本文は、 2ないし3の部位から構成されます。\n" -" 最初の部位にはコミットメッセージの続きが配置されます。" +" 最初の部位にはコミットログの続きが配置されます。" msgid "" " With the -d/--diffstat option, if the diffstat program is\n" @@ -8245,9 +8266,6 @@ msgid "no matching revisions" msgstr "合致するリビジョンはありません" -msgid "can't rebase multiple roots" -msgstr "複数リビジョン由来のリビジョンは移動できません" - msgid "source is ancestor of destination" msgstr "移動元は移動先の祖先です" @@ -9225,9 +9243,8 @@ msgid "unknown parent" msgstr "未知の親" -#, python-format -msgid "integrity check failed on %s:%d" -msgstr "%s:%d の一貫性チェックに失敗" +msgid "unknown delta base" +msgstr "未知の差分ベース" msgid "cannot create new bundle repository" msgstr "バンドルリポジトリの新規作成はできません" @@ -9608,6 +9625,9 @@ msgid "display help and exit" msgstr "ヘルプ情報を表示して終了" +msgid "consider hidden changesets" +msgstr "不可視状態のリビジョンも対象に含める" + msgid "do not perform actions, just print output" msgstr "実施予定の処理内容の表示のみで処理実施は抑止" @@ -10156,6 +10176,15 @@ " hg bisect --skip\n" " hg bisect --skip 23" +msgid "" +" - skip all revisions that do not touch directories ``foo`` or ``bar``" +msgstr " - ``foo`` と ``bar`` の両方を改変したリビジョン以外をスキップ::" + +msgid "" +" hg bisect --skip '!( file(\"path:foo\") & file(\"path:bar\") )'" +msgstr "" +" hg bisect --skip '!( file(\"path:foo\") & file(\"path:bar\") )'" + msgid " - forget the current bisection::" msgstr " - 現行の検索状態をクリア::" @@ -10333,6 +10362,15 @@ " bookmarks エクステンションを有効にしてください。" msgid "" +" If you set a bookmark called '@', new clones of the repository will\n" +" have that revision checked out (and the bookmark made active) by\n" +" default." +msgstr "" +" ブックマーク '@' が設定されている場合、 特に指定がなければ、\n" +" 複製先の作業領域は、 そのリビジョンで更新されます (ブックマーク '@'\n" +" はアクティブになります)" + +msgid "" " With -i/--inactive, the new bookmark will not be made the active\n" " bookmark. If -r/--rev is given, the new bookmark will not be made\n" " active even if -i/--inactive is not given. If no NAME is given, the\n" @@ -10692,6 +10730,13 @@ " タグ「実施」リビジョンは、 複製先に取り込まれません。" msgid "" +" If the source repository has a bookmark called '@' set, that\n" +" revision will be checked out in the new repository by default." +msgstr "" +" 複製元リポジトリにブックマーク '@' が設定されている場合、\n" +" 特に指定がなければ、 複製先の作業領域は、 そのリビジョンで更新されます。" + +msgid "" " To check out a particular version, use -u/--update, or\n" " -U/--noupdate to create a clone with no working directory." msgstr "" @@ -10755,8 +10800,9 @@ " d) the changeset specified with -r\n" " e) the tipmost head specified with -b\n" " f) the tipmost head specified with the url#branch source syntax\n" -" g) the tipmost head of the default branch\n" -" h) tip" +" g) the revision marked with the '@' bookmark, if present\n" +" h) the tipmost head of the default branch\n" +" i) tip" msgstr "" " a) -U が指定されるか、 元リポジトリ履歴が空の場合は null リビジョン\n" " b) -u . が指定され、 且つ元リポジトリが同一ホストの場合、\n" @@ -10766,8 +10812,9 @@ " d) -r で指定されたリビジョン\n" " e) -b で指定sれたブランチの最新ヘッドリビジョン\n" " f) url#branch 形式で指定されたブランチの最新ヘッドリビジョン\n" -" g) default ブランチの最新ヘッドリビジョン\n" -" h) tip" +" g) ブックマーク '@' が存在する場合は、そのリビジョン\n" +" h) default ブランチの最新ヘッドリビジョン\n" +" i) tip" msgid " - clone a remote repository to a new directory named hg/::" msgstr " - 遠隔ホストのリポジトリを、 新規 hg/ ディレクトリ配下に複製::" @@ -11292,7 +11339,7 @@ msgstr " エディタが起動できません(vi にも PATH が通っていません)\n" msgid " (specify a commit editor in your configuration file)\n" -msgstr " (コミットメッセージ用エディタを設定ファイルで設定してください)\n" +msgstr " (コミットログ用エディタを設定ファイルで設定してください)\n" #, python-format msgid " Can't find editor '%s' in PATH\n" @@ -11450,6 +11497,62 @@ msgid "revision to check" msgstr "確認対象リビジョン" +msgid "[REV]" +msgstr "[REV]" + +msgid "show set of successors for revision" +msgstr "指定リビジョンの後継リビジョン群の表示" + +msgid "" +" A successors set of changeset A is a consistent group of revisions that\n" +" succeed A. It contains non-obsolete changesets only." +msgstr "" + +msgid "" +" In most cases a changeset A has a single successors set containing a " +"single\n" +" successor (changeset A replaced by A')." +msgstr "" + +msgid "" +" A changeset that is made obsolete with no successors are called \"pruned" +"\".\n" +" Such changesets have no successors sets at all." +msgstr "" + +msgid "" +" A changeset that has been \"split\" will have a successors set " +"containing\n" +" more than one successor." +msgstr "" + +msgid "" +" A changeset that has been rewritten in multiple different ways is " +"called\n" +" \"divergent\". Such changesets have multiple successor sets (each of " +"which\n" +" may also be split, i.e. have multiple successors)." +msgstr "" + +msgid " Results are displayed as follows::" +msgstr "" + +msgid "" +" \n" +" \n" +" \n" +" \n" +" " +msgstr "" + +msgid "" +" Here rev2 has two possible (i.e. divergent) successors sets. The first\n" +" holds one element, whereas the second holds three (i.e. the changeset " +"has\n" +" been split).\n" +" " +msgstr "" + msgid "show how files match on given patterns" msgstr "指定パターンへのファイル合致状況の表示" @@ -11899,7 +12002,7 @@ msgstr "指定リビジョンの子孫となるヘッドのみを表示" msgid "show topological heads only" -msgstr "子を持たない全てのリビジョンを表示" +msgstr "構造的なヘッドのみを表示" msgid "show active branchheads only (DEPRECATED)" msgstr "アクティブなブランチヘッドのみを表示 (非推奨)" @@ -12567,7 +12670,7 @@ " --removed を指定してください。" msgid " - changesets with full descriptions and file lists::" -msgstr " - 全リビジョンのコミットメッセージとファイル一覧の表示::" +msgstr " - 全リビジョンのコミットログとファイル一覧の表示::" msgid " hg log -v" msgstr " hg log -v" @@ -13268,19 +13371,6 @@ msgid "not removing %s: file is untracked\n" msgstr "%s は削除されません: 未登録ファイルです\n" -#, python-format -msgid "not removing %s: file still exists (use -f to force removal)\n" -msgstr "%s は削除されません: ファイルは保持されます(削除の強行は -f を指定)\n" - -#, python-format -msgid "not removing %s: file is modified (use -f to force removal)\n" -msgstr "" -"%s は削除されません: ファイルは改変されています(削除の強行は -f を指定)\n" - -#, python-format -msgid "not removing %s: file has been marked for add (use forget to undo)\n" -msgstr "%s は削除されません: 追加登録対象ファイルです (取り消しは forget)\n" - msgid "record a rename that has already occurred" msgstr "手動で改名済みのファイルに対して、 改名の旨を記録" @@ -14264,6 +14354,10 @@ " 特定のファイルだけを以前の状態に戻す場合は、\n" " :hg:`revert [-r リビジョン] ファイル名` を使用してください。" +#, python-format +msgid "updating to active bookmark %s\n" +msgstr "アクティブなブックマーク %s への更新中\n" + msgid "cannot specify both -c/--check and -C/--clean" msgstr "-c/--check と -C/--clean は併用できません" @@ -14325,13 +14419,13 @@ msgstr "%s を読み込めません(%s)" #, python-format +msgid "unknown revision '%s'" +msgstr "'%s' は未知のリビジョンです" + +#, python-format msgid "working directory has unknown parent '%s'!" msgstr "作業領域の親 '%s' が未知のリビジョンです!" -#, python-format -msgid "unknown revision '%s'" -msgstr "'%s' は未知のリビジョンです" - msgid "not found in manifest" msgstr "マニフェストにありません" @@ -14547,6 +14641,10 @@ msgid "broken pipe\n" msgstr "パイプ破壊(EPIPE)\n" +#, python-format +msgid "abort: %s: '%s'\n" +msgstr "中断: %s: '%s'\n" + msgid "interrupted!\n" msgstr "中断されました!\n" @@ -14770,6 +14868,10 @@ msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n" msgstr "%s のマージは不完全です (衝突解消後に 'hg resolve --mark' が必要)\n" +#, python-format +msgid "warning: internal:merge cannot merge symlinks for %s\n" +msgstr "警告: internal:merge はシンボリックリンク %s のマージができません\n" + msgid "" "``internal:dump``\n" "Creates three versions of the files to merge, containing the\n" @@ -17010,24 +17112,6 @@ " ツールの戻り値がマージ成功を示す場合でも、 常にマージ成否を問い合わせ。" msgid "" -"``checkchanged``\n" -" True is equivalent to ``check = changed``.\n" -" Default: False" -msgstr "" -"``checkchanged``\n" -" 本設定を True にするのは、 ``check = changed`` 設定と等価です。\n" -" デフォルト値: False" - -msgid "" -"``checkconflicts``\n" -" True is equivalent to ``check = conflicts``.\n" -" Default: False" -msgstr "" -"``checkconflicts``\n" -" 本設定を True にするのは、 ``check = conflicts`` 設定と等価です。\n" -" デフォルト値: False" - -msgid "" "``fixeol``\n" " Attempt to fix up EOL changes caused by the merge tool.\n" " Default: False" @@ -17335,6 +17419,29 @@ " デフォルト値: None (結果は標準エラー出力から出力)" msgid "" +"``sort``\n" +" Sort field. Specific to the ``ls`` instrumenting profiler.\n" +" One of ``callcount``, ``reccallcount``, ``totaltime`` and\n" +" ``inlinetime``.\n" +" Default: inlinetime." +msgstr "" +"``sort``\n" +" 出力の整列。 詳細プロファイラ ``ls`` 固有の設定。\n" +" ``callcount``, ``reccallcount``, ``totaltime`` または ``inlinetime``\n" +" から1つを指定してください。 デフォルト値: inlinetime" + +msgid "" +"``nested``\n" +" Show at most this number of lines of drill-down info in a tree " +"structure\n" +" after each main entry. This can help explain the difference between " +"Total\n" +" and Inline.\n" +" Specific to the ``ls`` instrumenting profiler.\n" +" Default: 5." +msgstr "" + +msgid "" "``revsetalias``\n" "---------------" msgstr "" @@ -17993,6 +18100,15 @@ " デフォルト値: False" msgid "" +"``archivesubrepos``\n" +" Whether to recurse into subrepositories when archiving. Default is\n" +" False." +msgstr "" +"``archivesubrepos``\n" +" アーカイブ作成における、 サブリポジトリへの再帰実施の有無。\n" +" デフォルト値: False" + +msgid "" "``baseurl``\n" " Base URL to use when publishing URLs in other locations, so\n" " third-party tools like email notification hooks can construct\n" @@ -18512,8 +18628,8 @@ msgstr "" "HGENCODING\n" " Mercurial によるロケール自動検出の上書き。 この設定は、 ユーザ名、\n" -" コミットメッセージ、 タグ名およびブランチ名を内部データ形式に変換する\n" -" 際に使用されます。 この環境変数設定は、 コマンドラインでの --encoding\n" +" コミットログ、 タグ名およびブランチ名の、 記録の際に使用されます。\n" +" この環境変数設定は、 コマンドラインでの --encoding\n" " 使用により、 更に上書きすることができます。" msgid "" @@ -18942,8 +19058,8 @@ "Branch\n" " (名詞) [ブランチ] ヘッドではない (= 他に子リビジョンを持つ)\n" " リビジョンを親として、 作成された子リビジョン。\n" -" これは 「位相的 (topological) ブランチ」 と呼ばれます。\n" -" ('Branch, topological' 参照) 位相的ブランチが名前を持つ場合は\n" +" これは 「構造的 (topological) ブランチ」 と呼ばれます。\n" +" ('Branch, topological' 参照) 構造的ブランチが名前を持つ場合は\n" " 「名前付きブランチ」、 名前を持たない場合は「名前無しブランチ」\n" " と呼ばれます。 (※ 訳注: 名前を「持つ/持たない」は、\n" " 「親と異なる名前」を持つ/持たない、 を意味します)\n" @@ -19028,7 +19144,7 @@ " :hg:`branches --active`." msgstr "" "Branch, inactive\n" -" [非アクティブなブランチ] 位相的なヘッドが無い名前付きブランチは、\n" +" [非アクティブなブランチ] 構造的なヘッドが無い名前付きブランチは、\n" " 非アクティブなブランチとみなされます。 例えば default ブランチに、\n" " 機能実装用の名前付きブランチがマージされると、 機能実装用ブランチは、\n" " 非アクティブになります。 :hg:`branches` は、 --active 指定が無い場合、\n" @@ -19072,10 +19188,10 @@ msgstr "" " 名前付きブランチは、 リポジトリの履歴を構成するリビジョン群を、\n" " 重複の無い部分集合へと分割する、 名前空間の一種とも言えます。\n" -" 名前付きブランチは、 必ずしも位相的ブランチである必要はありません。\n" +" 名前付きブランチは、 必ずしも構造的ブランチである必要はありません。\n" " ある名前付きブランチ (default でも可) のヘッドとなるリビジョンを親に、\n" " 別の名前付きブランチを新規生成した場合、 元ブランチに対して、\n" -" 以後の新規リビジョン追加が無ければ、 元ブランチは (位相的な意味で)\n" +" 以後の新規リビジョン追加が無ければ、 元ブランチは (構造的な意味で)\n" " 『分岐』したのではなく、 名前が付いているだけと言えます。" msgid "" @@ -19094,11 +19210,11 @@ " current, possibly default, branch." msgstr "" "Branch, topological\n" -" [位相的ブランチ] ヘッドではない (= 他に子リビジョンを持つ)\n" +" [構造的ブランチ] ヘッドではない (= 他に子リビジョンを持つ)\n" " リビジョンを親として、 新規に作成されたリビジョンは、 \n" -" 位相的ブランチとなります。 位相的ブランチに名前が与えられた場合、\n" +" 構造的ブランチとなります。 構造的ブランチに名前が与えられた場合、\n" " それは名前付きブランチとなります。 (※ 訳注: 名前付きブランチは、\n" -" 必ずしも位相的ブランチとは限りません) 名前が与えられない場合は、\n" +" 必ずしも構造的ブランチとは限りません) 名前が与えられない場合は、\n" " 現行の名前付きブランチ (一般的には default) における、\n" " 名前無しブランチとなります。" @@ -19434,14 +19550,14 @@ " A topological head which has not been closed." msgstr "" "Head, repository\n" -" [リポジトリ(の)ヘッド] 閉鎖されていない、 位相的なヘッド。" +" [リポジトリ(の)ヘッド] 閉鎖されていない、 構造的なヘッド。" msgid "" "Head, topological\n" " A changeset with no children in the repository." msgstr "" "Head, topological\n" -" [位相的(な)ヘッド] リポジトリ内に、 子を持たないリビジョン。" +" [構造的(な)ヘッド] リポジトリ内に、 子を持たないリビジョン。" msgid "" "History, immutable\n" @@ -20905,11 +21021,9 @@ " 時点の内容に含まれないもの::" msgid "" -" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged" -"())\"\n" -msgstr "" -" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tagged" -"())\"\n" +" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tag())\"\n" +msgstr "" +" hg log -r \"(keyword(bug) or keyword(issue)) and not ancestors(tag())\"\n" msgid "" "Subrepositories let you nest external repositories or projects into a\n" @@ -21312,8 +21426,104 @@ msgid "List of filters:" msgstr "フィルター一覧(入力と、 それに対する出力):" -msgid ".. filtersmarker\n" -msgstr ".. filtersmarker\n" +msgid ".. filtersmarker" +msgstr ".. filtersmarker" + +msgid "" +"Note that a filter is nothing more than a function call, i.e.\n" +"``expr|filter`` is equivalent to ``filter(expr)``." +msgstr "" +"フィルタは関数呼び出しに過ぎません。 例えば、 ``expr|filter`` は\n" +"``filter(expr)`` と等価です。" + +msgid "In addition to filters, there are some basic built-in functions:" +msgstr "フィルタの他に、 以下の様な基本的な組み込み関数があります:" + +msgid "- if(expr, then[, else])" +msgstr "- if(expr, then[, else])" + +msgid "- ifeq(expr, expr, then[, else])" +msgstr "- ifeq(expr, expr, then[, else])" + +msgid "- sub(pat, repl, expr)" +msgstr "- sub(pat, repl, expr)" + +msgid "- join(list, sep)" +msgstr "- join(list, sep)" + +msgid "- label(label, expr)" +msgstr "- label(label, expr)" + +msgid "- date(date[, fmt])" +msgstr "- date(date[, fmt])" + +msgid "- fill(text[, width])" +msgstr "- fill(text[, width])" + +msgid "Also, for any expression that returns a list, there is a list operator:" +msgstr "また、 列挙形式を返す expr に対しては、 以下の様な記述が可能です:" + +msgid "- expr % \"{template}\"" +msgstr "- expr % \"{template}\"" + +msgid "Some sample command line templates:" +msgstr "コマンドラインでのテンプレート指定例:" + +msgid "- Format lists, e.g. files::" +msgstr "- files のような列挙形式の整形::" + +msgid " $ hg log -r 0 --template \"files:\\n{files % ' {file}\\n'}\"" +msgstr " $ hg log -r 0 --template \"files:\\n{files % ' {file}\\n'}\"" + +msgid "- Join the list of files with a \", \"::" +msgstr "- ファイル一覧を \", \" で連結::" + +msgid " $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\"" +msgstr " $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\"" + +msgid "- Format date::" +msgstr "- 日時情報の整形::" + +msgid " $ hg log -r 0 --template \"{date(date, '%Y')}\\n\"" +msgstr " $ hg log -r 0 --template \"{date(date, '%Y')}\\n\"" + +msgid "- Output the description set to a fill-width of 30::" +msgstr "- コミットログの各行を30桁で揃えて出力::" + +msgid " $ hg log -r 0 --template \"{fill(desc, '30')}\"" +msgstr " $ hg log -r 0 --template \"{fill(desc, '30')}\"" + +msgid "- Use a conditional to test for the default branch::" +msgstr "- default ブランチか否かで表示内容を切り替え::" + +msgid "" +" $ hg log -r 0 --template \"{ifeq(branch, 'default', 'on the main " +"branch',\n" +" 'on branch {branch}')}\\n\"" +msgstr "" +" $ hg log -r 0 --template \"{ifeq(branch, 'default', 'on the main " +"branch',\n" +" 'on branch {branch}')}\\n\"" + +msgid "- Append a newline if not empty::" +msgstr "- 空でない場合は改行を追加::" + +msgid " $ hg tip --template \"{if(author, '{author}\\n')}\"" +msgstr " $ hg tip --template \"{if(author, '{author}\\n')}\"" + +msgid "- Label the output for use with the color extension::" +msgstr "- color エクステンション向けに、出力をラベル付け::" + +msgid "" +" $ hg log -r 0 --template \"{label('changeset.{phase}', node|short)}\\n\"" +msgstr "" +" $ hg log -r 0 --template \"{label('changeset.{phase}', node|short)}\\n\"" + +msgid "- Invert the firstline filter, i.e. everything but the first line::" +msgstr "- firstline フィルタの逆(一行目以外)::" + +msgid " $ hg log -r 0 --template \"{sub(r'^.*\\n?\\n?', '', desc)}\\n\"\n" +msgstr " $ hg log -r 0 --template \"{sub(r'^.*\\n?\\n?', '', desc)}\\n\"\n" msgid "Valid URLs are of the form::" msgstr "有効な URL 指定は以下の形式です::" @@ -21832,6 +22042,10 @@ msgstr "" #, python-format +msgid "push includes divergent changeset: %s!" +msgstr "履歴反映対象に分岐 (divergent) した後継リビジョンが含まれます!: %s" + +#, python-format msgid "updating %s to public failed!\n" msgstr "%s のフェーズの public 化に失敗!\n" @@ -21870,6 +22084,9 @@ msgid "received file revlog group is empty" msgstr "ファイルのリビジョンログが空です" +msgid "received spurious file revlog entry" +msgstr "ファイルのリビジョンログが不正な情報を含んでいます" + #, python-format msgid "missing file data for %s:%s - run hg verify" msgstr "%s:%s のファイルデータが不在です - hg verify を実施してください" @@ -21975,6 +22192,10 @@ msgstr "差分コンテキストでの行数指定が不正です: %r" #, python-format +msgid "warning: cannot merge flags for %s\n" +msgstr "警告: ファイル %s の属性設定はマージできません\n" + +#, python-format msgid "%s: untracked file differs\n" msgstr "%s: 未登録ファイルに差分あり\n" @@ -21986,23 +22207,6 @@ msgid "case-folding collision between %s and %s" msgstr "ファイル名の文字大小の問題で %s と %s が衝突します" -#, python-format -msgid "" -" conflicting flags for %s\n" -"(n)one, e(x)ec or sym(l)ink?" -msgstr "" -"ファイル %s のビット設定に衝突があります\n" -"どの設定にしますか? 無効:(n)one 実行可能:e(x)ec リンク:sym(l)ink" - -msgid "&None" -msgstr "&None" - -msgid "E&xec" -msgstr "E&xec" - -msgid "Sym&link" -msgstr "Sym&link" - msgid "resolving manifests\n" msgstr "管理ファイル一覧を解決しています\n" @@ -22306,15 +22510,16 @@ msgstr "%x は互換性のないリビジョンフラグです" #, python-format +msgid "integrity check failed on %s:%d" +msgstr "%s:%d の一貫性チェックに失敗" + +#, python-format msgid "%s not found in the transaction" msgstr "トランザクション中に %s は見つかりませんでした" msgid "consistency error in delta" msgstr "差分情報の不整合" -msgid "unknown delta base" -msgstr "未知の差分ベース" - #, python-format msgid "can't use %s here" msgstr "ここでは %s を使用できません" @@ -22459,6 +22664,19 @@ msgstr "bumped には引数が指定できません" msgid "" +"``bundle()``\n" +" Changesets in the bundle." +msgstr "" +"``bundle()``\n" +" バンドルファイル中のリビジョン群。" + +msgid " Bundle must be specified by the -R option." +msgstr " バンドルファイルは -R オプションで指定される必要があります。" + +msgid "no bundle provided - specify with -R" +msgstr "バンドルファイルが指定されていません。-R を使って指定してください。" + +msgid "" "``children(set)``\n" " Child changesets of changesets in set." msgstr "" @@ -22550,6 +22768,18 @@ " 指定相当とみなします。" msgid "" +"``divergent()``\n" +" Final successors of changesets with an alternative set of final " +"successors." +msgstr "" +"``divergent()``\n" +" 他の最終後継リビジョンが存在する、 最終後継リビジョン群。" + +#. i18n: "divergent" is a keyword +msgid "divergent takes no arguments" +msgstr "divergent には引数が指定できません" + +msgid "" "``draft()``\n" " Changeset in draft phase." msgstr "" @@ -22818,7 +23048,7 @@ " Changesets with more than one child." msgstr "" "``branchpoint()``\n" -" 子リビジョンを1つ以上持つリビジョン群。" +" 子リビジョンを2つ以上持つリビジョン群。" #. i18n: "branchpoint" is a keyword msgid "branchpoint takes no arguments" @@ -23244,6 +23474,10 @@ msgid "could not symlink to %r: %s" msgstr "%r に対してシンボリックリンクできません: %s" +#, python-format +msgid "%s not under root '%s'" +msgstr "%s はルートディレクトリ '%s' の配下にはありません" + msgid "empty revision range" msgstr "リビジョンの範囲指定が空です" @@ -23398,6 +23632,10 @@ msgstr "ファイル名キャッシュに不正なエントリ: %s 行目" #, python-format +msgid "(in subrepo %s)" +msgstr "(サブリポジトリ %s で発生)" + +#, python-format msgid "warning: subrepo spec file %s not found\n" msgstr "警告: サブリポジトリの spec ファイル %s が見つかりません\n" @@ -23459,9 +23697,8 @@ " サブリポジトリ %s のリビジョンに差分が検出されました\n" "どちらを採用しますか? 手元(%s):(l)ocal 連携先(%s):(r)emote\n" -#, python-format -msgid "default path for subrepository %s not found" -msgstr "サブリポジトリ %s の が見つかりません" +msgid "default path for subrepository not found" +msgstr "サブリポジトリの連携先が見つかりません" #, python-format msgid "unknown subrepo type %s" @@ -23660,7 +23897,7 @@ " ※ 後述する rfc3339date フィルタの説明も参照してください。" msgid ":localdate: Date. Converts a date to local date." -msgstr ":localdate: 日時情報。 ローカル日時で可読化します。" +msgstr ":localdate: 日時情報。 日時情報をローカルタイムゾーンに変換します。" msgid ":nonempty: Any text. Returns '(none)' if the string is empty." msgstr ":nonempty: 文字列。 与えられた文字列が空の場合 '(none)'となります。" @@ -23810,7 +24047,8 @@ msgid "" ":bookmarks: List of strings. Any bookmarks associated with the\n" " changeset." -msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたブックマークの一覧。" +msgstr "" +":bookmarks: 文字列列挙。 当該リビジョンに付与されたブックマークの一覧。" msgid ":children: List of strings. The children of the changeset." msgstr ":children: 文字列列挙。 リビジョンの子供。" @@ -23819,7 +24057,7 @@ msgstr ":date: 日時情報。 リビジョンが記録された日時。" msgid ":desc: String. The text of the changeset description." -msgstr ":desc: 文字列。 リビジョンのコミットメッセージ。" +msgstr ":desc: 文字列。 リビジョンのコミットログ。" msgid "" ":diffstat: String. Statistics of changes with the following format:\n" diff -r 8bd338c7c4c9 -r 7068089c95a2 i18n/pt_BR.po --- a/i18n/pt_BR.po Sat Jan 19 17:20:39 2013 -0600 +++ b/i18n/pt_BR.po Fri Feb 01 15:48:33 2013 -0600 @@ -31,7 +31,7 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-23 11:38-0200\n" +"POT-Creation-Date: 2013-01-21 11:21-0200\n" "PO-Revision-Date: 2011-06-28 09:55+0200\n" "Last-Translator: Wagner Bruna \n" "Language-Team: Brazilian Portuguese\n" @@ -1564,6 +1564,10 @@ msgid "ignoring unknown color/effect %r (configured in color.%s)\n" msgstr "ignorando cor/efeito desconhecido %r (configurado em color.%s)\n" +#. i18n: "label" is a keyword +msgid "label expects two arguments" +msgstr "label exige dois argumentos" + #. i18n: 'always', 'auto', and 'never' are keywords and should #. not be translated msgid "when to colorize (boolean, always, auto, or never)" @@ -1948,22 +1952,31 @@ " ``{{mergefrombranch ([-\\w]+)}}``" msgid "" -" :hook.cvslog: Specify a Python function to be called at the end of\n" +" :convert.localtimezone: use local time (as determined by the TZ\n" +" environment variable) for changeset date/times. The default\n" +" is False (use UTC)." +msgstr "" +" :convert.localtimezone: use o fuso horário local (determinado\n" +" pela variável de ambiente TZ) para horários e datas de\n" +" revisões. O padrão é False (usará UTC)." + +msgid "" +" :hooks.cvslog: Specify a Python function to be called at the end of\n" " gathering the CVS log. The function is passed a list with the\n" " log entries, and can modify the entries in-place, or add or\n" " delete them." msgstr "" -" :hook.cvslog: Especifica uma função Python a ser chamada ao término\n" +" :hooks.cvslog: Especifica uma função Python a ser chamada ao término\n" " da coleta do log do CVS. Essa função recebe uma lista com as\n" " entradas do log, e pode modificar, adicionar ou remover entradas." msgid "" -" :hook.cvschangesets: Specify a Python function to be called after\n" +" :hooks.cvschangesets: Specify a Python function to be called after\n" " the changesets are calculated from the CVS log. The\n" " function is passed a list with the changeset entries, and can\n" " modify the changesets in-place, or add or delete them." msgstr "" -" :hook.cvschangesets: Especifica uma função Python a ser chamada\n" +" :hooks.cvschangesets: Especifica uma função Python a ser chamada\n" " após os conjuntos de mudanças serem calculados a partir do\n" " log do CVS. Essa função recebe uma lista com as entradas do\n" " conjunto de mudanças, e pode modificar, adicionar ou\n" @@ -2415,6 +2428,9 @@ msgid "reading cvs log cache %s\n" msgstr "lendo cache de log do CVS %s\n" +msgid "ignoring old cache\n" +msgstr "ignorando cache antigo\n" + #, python-format msgid "cache has %d log entries\n" msgstr "cache possui %d entradas de log\n" @@ -2525,6 +2541,10 @@ msgstr "não é possível ler objeto %r em %s" #, python-format +msgid "cannot read submodules config file in %s" +msgstr "não é possível ler arquivo de configuração de submódulos em %s" + +#, python-format msgid "cannot read changes in %s" msgstr "não é possível ler mudanças em %s" @@ -3540,9 +3560,6 @@ msgid "do not display revision or any of its ancestors" msgstr "não exibe revisão ou qualquer de seus ancestrais" -msgid "show hidden changesets (DEPRECATED)" -msgstr "exibe revisões ocultas (OBSOLETO)" - msgid "[OPTION]... [FILE]" msgstr "[OPÇÃO]... [ARQUIVO]" @@ -3880,7 +3897,7 @@ " pick 7c2fd3b9020c Add delta" msgid "" -" # Edit history between 633536316234 and 7c2fd3b9020c\n" +" # Edit history between c561b4e977df and 7c2fd3b9020c\n" " #\n" " # Commands:\n" " # p, pick = use commit\n" @@ -3890,7 +3907,7 @@ " # m, mess = edit message without changing commit content\n" " #" msgstr "" -" # Editar o histórico entre 633536316234 e 7c2fd3b9020c\n" +" # Editar o histórico entre c561b4e977df e 7c2fd3b9020c\n" " #\n" " # Comandos:\n" " # p, pick = use a revisão\n" @@ -4037,11 +4054,11 @@ "à tentativa de edição de histórico." msgid "" -"If we clone the example repository above and add three more changes, such that\n" -"we have the following history::" +"If we clone the histedit-ed example repository above and add four more\n" +"changes, such that we have the following history::" msgstr "" "Se clonarmos o repositório de exemplo acima e adicionarmos mais\n" -"três mudanças, de modo que tenhamos o seguinte histórico::" +"quatro mudanças, de modo que tenhamos o seguinte histórico::" msgid "" " @ 6[tip] 038383181893 2009-04-27 18:04 -0500 stefan\n" @@ -4390,13 +4407,6 @@ msgid "cannot start: socket is already bound" msgstr "não é possível iniciar: o socket já está associado" -msgid "" -"cannot start: tried linking .hg/inotify.sock to a temporary socket but " -".hg/inotify.sock already exists" -msgstr "" -"não é possível iniciar: tentou lincar .hg/inotify.sock para um socket " -"temporário mas .hg/inotify.sock já existe" - #, python-format msgid "answering query for %r\n" msgstr "respondendo consulta para %r\n" @@ -4993,6 +5003,10 @@ " normais; após essa conversão, o repositório DEST poderá ser\n" " usado normalmente, sem a extensão largefiles." +#, python-format +msgid "error getting id %s from url %s for file %s: %s\n" +msgstr "erro ao obter id %s a partir da url %s para o arquivo %s: %s\n" + msgid "getting largefiles" msgstr "obtendo largefiles" @@ -5148,17 +5162,19 @@ msgstr "nenhum arquivo especificado" #, python-format -msgid "not removing %s: %s (use forget to undo)\n" -msgstr "%s não removido: %s (use forget para desfazer)\n" - -msgid "file still exists" -msgstr "o arquivo já existe" - -msgid "file is modified" -msgstr "o arquivo foi modificado" - -msgid "file has been marked for add" -msgstr "o arquivo foi marcado para adição" +msgid "not removing %s: file still exists\n" +msgstr "arquivo %s não removido: o arquivo ainda existe\n" + +#, python-format +msgid "not removing %s: file is modified (use -f to force removal)\n" +msgstr "" +"%s não removido: o arquivo foi modificado (use -f para forçar a remoção)\n" + +#, python-format +msgid "not removing %s: file has been marked for add (use forget to undo)\n" +msgstr "" +"%s não removido: o arquivo foi marcado para adição (use forget para " +"desfazer)\n" #, python-format msgid "removing %s\n" @@ -5358,6 +5374,9 @@ msgid "verify largefile contents not just existence" msgstr "verifica conteúdos de largefiles, não apenas existência" +msgid "display largefiles dirstate" +msgstr "mostra o dirstate de largefiles" + msgid "display outgoing largefiles" msgstr "exibe largefiles a serem enviados" @@ -8141,6 +8160,13 @@ " repositórios, que aparecerão como duplicatas das revisões rebaseadas." msgid "" +" In its default configuration, Mercurial will prevent you from\n" +" rebasing published changes. See :hg:`help phases` for details." +msgstr "" +" Em sua configuração padrão, o Mercurial impede que revisões\n" +" públicas sejam rebaseadas. Veja :hg:`help phases` para mais detalhes." + +msgid "" " If you don't specify a destination changeset (``-d/--dest``),\n" " rebase uses the tipmost head of the current named branch as the\n" " destination. (The destination changeset is not modified by\n" @@ -8179,6 +8205,18 @@ " como revisão base." msgid "" +" For advanced usage, a third way is available through the ``--rev``\n" +" option. It allows you to specify an arbitrary set of changesets to\n" +" rebase. Descendants of revs you specify with this option are not\n" +" automatically included in the rebase." +msgstr "" +" Um modo avançado adicional está disponível através da opção\n" +" ``--rev``. Ele possibilita a especificação de um conjunto\n" +" arbitrário de revisões a serem rebaseadas. Os descendentes\n" +" das revisões especificadas dessa maneira não serão\n" +" automaticamente incluídos no rebaseamento." + +msgid "" " By default, rebase recreates the changesets in the source branch\n" " as descendants of dest and then destroys the originals. Use\n" " ``--keep`` to preserve the original source changesets. Some\n" @@ -8321,9 +8359,6 @@ msgid "no matching revisions" msgstr "nenhuma revisão correspondente" -msgid "can't rebase multiple roots" -msgstr "não é possível rebasear múltiplas raízes" - msgid "source is ancestor of destination" msgstr "origem é ancestral do destino" @@ -9327,9 +9362,8 @@ msgid "unknown parent" msgstr "pai desconhecido" -#, python-format -msgid "integrity check failed on %s:%d" -msgstr "checagem de integridade falhou em %s:%d" +msgid "unknown delta base" +msgstr "base de delta desconhecida" msgid "cannot create new bundle repository" msgstr "não é possível criar novo repositório de bundle" @@ -9720,6 +9754,9 @@ msgid "display help and exit" msgstr "exibe ajuda e sai" +msgid "consider hidden changesets" +msgstr "considera revisões ocultas" + msgid "do not perform actions, just print output" msgstr "não realiza ações, apenas imprime a saída" @@ -10280,6 +10317,15 @@ " hg bisect --skip\n" " hg bisect --skip 23" +msgid "" +" - skip all revisions that do not touch directories ``foo`` or ``bar``" +msgstr "" +" - omite todas as revisões que não mexerem nos diretórios ``foo`` ou " +"``bar``" + +msgid " hg bisect --skip '!( file(\"path:foo\") & file(\"path:bar\") )'" +msgstr " hg bisect --skip '!( file(\"path:foo\") & file(\"path:bar\") )'" + msgid " - forget the current bisection::" msgstr " - esquece a bissecção atual::" @@ -10465,6 +10511,15 @@ " " msgid "" +" If you set a bookmark called '@', new clones of the repository will\n" +" have that revision checked out (and the bookmark made active) by\n" +" default." +msgstr "" +" Se você definir um marcador chamado '@', novos clones do\n" +" repositório por padrão atualizarão para essa revisão e\n" +" tornarão esse marcador ativo." + +msgid "" " With -i/--inactive, the new bookmark will not be made the active\n" " bookmark. If -r/--rev is given, the new bookmark will not be made\n" " active even if -i/--inactive is not given. If no NAME is given, the\n" @@ -10827,6 +10882,14 @@ " etiquetada mas não incluirá a revisão que define a etiqueta em si." msgid "" +" If the source repository has a bookmark called '@' set, that\n" +" revision will be checked out in the new repository by default." +msgstr "" +" Se o repositório de origem possuir um marcador de nome '@'\n" +" definido, por padrão o novo repositório será atualizado para\n" +" essa revisão." + +msgid "" " To check out a particular version, use -u/--update, or\n" " -U/--noupdate to create a clone with no working directory." msgstr "" @@ -10891,8 +10954,9 @@ " d) the changeset specified with -r\n" " e) the tipmost head specified with -b\n" " f) the tipmost head specified with the url#branch source syntax\n" -" g) the tipmost head of the default branch\n" -" h) tip" +" g) the revision marked with the '@' bookmark, if present\n" +" h) the tipmost head of the default branch\n" +" i) tip" msgstr "" " a) null, se for passada a opção -U ou se o repositório de origem não\n" " tiver revisões\n" @@ -10904,8 +10968,9 @@ " e) a cabeça mais recente especificada com -b\n" " f) a cabeça mais recente especificada com a sintaxe de origem\n" " url#ramo\n" -" g) a cabeça mais recente do ramo default\n" -" h) a tip" +" g) a revisão apontada pelo marcador '@', se presente\n" +" h) a cabeça mais recente do ramo default\n" +" i) a tip" msgid " - clone a remote repository to a new directory named hg/::" msgstr "" @@ -11600,6 +11665,77 @@ msgid "revision to check" msgstr "revisão para verificar" +msgid "[REV]" +msgstr "[REV]" + +msgid "show set of successors for revision" +msgstr "mostra conjunto de sucessores da revisão" + +msgid "" +" A successors set of changeset A is a consistent group of revisions that\n" +" succeed A. It contains non-obsolete changesets only." +msgstr "" +" Um conjunto de sucessores de uma revisão A é um grupo consistente de\n" +" revisões que sucedem A. Pode conter apenas revisões não obsoletas." + +msgid "" +" In most cases a changeset A has a single successors set containing a single\n" +" successor (changeset A replaced by A')." +msgstr "" +" Na maior parte dos casos uma revisão A possui um único conjunto\n" +" de sucessores contendo um único sucessor (revisão A substituída por A')." + +msgid "" +" A changeset that is made obsolete with no successors are called \"pruned\".\n" +" Such changesets have no successors sets at all." +msgstr "" +" Uma revisão sem sucessores tornada obsoleta é chamada \"podada\".\n" +" Tais revisões não possuem nenhum conjunto de sucessores." + +msgid "" +" A changeset that has been \"split\" will have a successors set containing\n" +" more than one successor." +msgstr "" +" Uma revisão que tenha sido \"dividida\" terá um conjunto de\n" +" sucessores contendo mais de um sucessor." + +msgid "" +" A changeset that has been rewritten in multiple different ways is called\n" +" \"divergent\". Such changesets have multiple successor sets (each of which\n" +" may also be split, i.e. have multiple successors)." +msgstr "" +" Uma revisão que tenha sido reescrita de múltiplas formas diferentes\n" +" é chamada \"divergente\". Tais revisões possuem múltiplos conjuntos\n" +" de sucessores (cada um dos quais pode também ser dividido, isto é,\n" +" ter múltiplos sucessores)." + +msgid " Results are displayed as follows::" +msgstr " Os resultados são mostrados da seguinte maneira::" + +msgid "" +" \n" +" \n" +" \n" +" \n" +" " +msgstr "" +" \n" +" \n" +" \n" +" \n" +" " + +msgid "" +" Here rev2 has two possible (i.e. divergent) successors sets. The first\n" +" holds one element, whereas the second holds three (i.e. the changeset has\n" +" been split).\n" +" " +msgstr "" +" Aqui, rev2 possui dois (ou seja, divergentes) possíveis conjuntos\n" +" de sucessores. O primeiro possui um elemento, e o segundo possui\n" +" três (a revisão foi dividida).\n" +" " + msgid "show how files match on given patterns" msgstr "mostra como os arquivos casam com os padrões pedidos" @@ -13497,22 +13633,6 @@ msgid "not removing %s: file is untracked\n" msgstr "arquivo %s não removido: arquivo não rastreado\n" -#, python-format -msgid "not removing %s: file still exists (use -f to force removal)\n" -msgstr "" -"%s não removido: o arquivo ainda existe (use -f para forçar a remoção)\n" - -#, python-format -msgid "not removing %s: file is modified (use -f to force removal)\n" -msgstr "" -"%s não removido: o arquivo foi modificado (use -f para forçar a remoção)\n" - -#, python-format -msgid "not removing %s: file has been marked for add (use forget to undo)\n" -msgstr "" -"%s não removido: o arquivo foi marcado para adição (use forget para " -"desfazer)\n" - msgid "record a rename that has already occurred" msgstr "grava uma renomeação que já ocorreu" @@ -14533,6 +14653,10 @@ " Se você quiser reverter apenas um arquivo para seu conteúdo em\n" " uma revisão anterior, use :hg:`revert [-r REV] NOME`." +#, python-format +msgid "updating to active bookmark %s\n" +msgstr "atualizando para o marcador ativo %s\n" + msgid "cannot specify both -c/--check and -C/--clean" msgstr "não se pode especificar ao mesmo tempo -c/--check e -C/--clean" @@ -14594,13 +14718,13 @@ msgstr "não é possível incluir %s (%s)" #, python-format +msgid "unknown revision '%s'" +msgstr "revisão desconhecida '%s'" + +#, python-format msgid "working directory has unknown parent '%s'!" msgstr "diretório de trabalho tem pai desconhecido '%s'!" -#, python-format -msgid "unknown revision '%s'" -msgstr "revisão desconhecida '%s'" - msgid "not found in manifest" msgstr "não encontrado no manifesto" @@ -14820,6 +14944,10 @@ msgid "broken pipe\n" msgstr "pipe quebrado\n" +#, python-format +msgid "abort: %s: '%s'\n" +msgstr "abortado: %s: '%s'\n" + msgid "interrupted!\n" msgstr "interrompido!\n" @@ -15048,6 +15176,10 @@ "a mesclagem de %s está incompleta! (edite os conflitos, e em seguida use 'hg" " resolve --mark')\n" +#, python-format +msgid "warning: internal:merge cannot merge symlinks for %s\n" +msgstr "aviso: internal:merge não é capaz de mesclar links simbólicos para %s\n" + msgid "" "``internal:dump``\n" "Creates three versions of the files to merge, containing the\n" @@ -17316,24 +17448,6 @@ " Sempre perguntar se a mesclagem teve sucesso, sem levar em conta o informado pela ferramenta." msgid "" -"``checkchanged``\n" -" True is equivalent to ``check = changed``.\n" -" Default: False" -msgstr "" -"``checkchanged``\n" -" True equivale a ``check = changed``.\n" -" Padrão: False" - -msgid "" -"``checkconflicts``\n" -" True is equivalent to ``check = conflicts``.\n" -" Default: False" -msgstr "" -"``checkconflicts``\n" -" True equivale a ``check = conflicts``.\n" -" Padrão: False" - -msgid "" "``fixeol``\n" " Attempt to fix up EOL changes caused by the merge tool.\n" " Default: False" @@ -17649,6 +17763,34 @@ " são impressos na saída de erros." msgid "" +"``sort``\n" +" Sort field. Specific to the ``ls`` instrumenting profiler.\n" +" One of ``callcount``, ``reccallcount``, ``totaltime`` and\n" +" ``inlinetime``.\n" +" Default: inlinetime." +msgstr "" +"``sort``\n" +" Campo de ordenação. Específico para o profiler de instrumentação.\n" +" Pode ter os valores ``callcount``, ``reccallcount``, ``totaltime``\n" +" e ``inlinetime``.\n" +" Padrão: inlinetime." + +msgid "" +"``nested``\n" +" Show at most this number of lines of drill-down info in a tree structure\n" +" after each main entry. This can help explain the difference between Total\n" +" and Inline.\n" +" Specific to the ``ls`` instrumenting profiler.\n" +" Default: 5." +msgstr "" +"``nested``\n" +" Mostra no máximo este número de linhas de informações em uma\n" +" estrutura de árvore após cada entrada principal. Isto pode\n" +" ajudar a explicar a diferença entre Total e Inline.\n" +" Específico do profiler de instrumentação ``ls``.\n" +" Padrão: 5." + +msgid "" "``revsetalias``\n" "---------------" msgstr "" @@ -18321,6 +18463,15 @@ " O padrão é False." msgid "" +"``archivesubrepos``\n" +" Whether to recurse into subrepositories when archiving. Default is\n" +" False." +msgstr "" +"``archivesubrepos``\n" +" Determina se sub-repositórios devem ser percorridos recursivamente\n" +" em uma operação archive. O padrão é False." + +msgid "" "``baseurl``\n" " Base URL to use when publishing URLs in other locations, so\n" " third-party tools like email notification hooks can construct\n" @@ -21341,10 +21492,10 @@ msgid "" " hg log -r \"(keyword(bug) or keyword(issue)) and not " -"ancestors(tagged())\"\n" +"ancestors(tag())\"\n" msgstr "" " hg log -r \"(keyword(bug) or keyword(issue)) and not " -"ancestors(tagged())\"\n" +"ancestors(tag())\"\n" msgid "" "Subrepositories let you nest external repositories or projects into a\n" @@ -21768,8 +21919,103 @@ msgid "List of filters:" msgstr "Lista de filtros:" -msgid ".. filtersmarker\n" -msgstr ".. filtersmarker\n" +msgid ".. filtersmarker" +msgstr ".. filtersmarker" + +msgid "" +"Note that a filter is nothing more than a function call, i.e.\n" +"``expr|filter`` is equivalent to ``filter(expr)``." +msgstr "" +"Note que um filtro é apenas uma chamada de função, ou seja,\n" +"``expr|filtro`` é equivalente a ``filtro(expr)``." + +msgid "In addition to filters, there are some basic built-in functions:" +msgstr "Além de filtros, há algumas funções básicas disponíveis:" + +msgid "- if(expr, then[, else])" +msgstr "- if(expr, então[, senão])" + +msgid "- ifeq(expr, expr, then[, else])" +msgstr "- ifeq(expr, expr, então[, senão])" + +msgid "- sub(pat, repl, expr)" +msgstr "- sub(padrão, substituição, expr)" + +msgid "- join(list, sep)" +msgstr "- join(lista, separador)" + +msgid "- label(label, expr)" +msgstr "- label(label, expr)" + +msgid "- date(date[, fmt])" +msgstr "- date(data[, formato])" + +msgid "- fill(text[, width])" +msgstr "- fill(texto[, comprimento])" + +msgid "" +"Also, for any expression that returns a list, there is a list operator:" +msgstr "" +"Além disso, para cada expressão que devolve uma lista, há um\n" +"operador de lista:" + +msgid "- expr % \"{template}\"" +msgstr "- expr % \"{modelo}\"" + +msgid "Some sample command line templates:" +msgstr "Alguns exemplos de modelos de linha de comando:" + +msgid "- Format lists, e.g. files::" +msgstr "- Formatação de listas, por exemplo arquivos::" + +msgid " $ hg log -r 0 --template \"files:\\n{files % ' {file}\\n'}\"" +msgstr " $ hg log -r 0 --template \"files:\\n{files % ' {file}\\n'}\"" + +msgid "- Join the list of files with a \", \"::" +msgstr "- Juntar a lista de arquivos com \", \"::" + +msgid " $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\"" +msgstr " $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\"" + +msgid "- Format date::" +msgstr "- Formatação de datas::" + +msgid " $ hg log -r 0 --template \"{date(date, '%Y')}\\n\"" +msgstr " $ hg log -r 0 --template \"{date(date, '%Y')}\\n\"" + +msgid "- Output the description set to a fill-width of 30::" +msgstr "- Informar as descrições em um campo de largura 30::" + +msgid " $ hg log -r 0 --template \"{fill(desc, '30')}\"" +msgstr " $ hg log -r 0 --template \"{fill(desc, '30')}\"" + +msgid "- Use a conditional to test for the default branch::" +msgstr "- Usar uma conditional para testar pelo ramo default::" + +msgid "" +" $ hg log -r 0 --template \"{ifeq(branch, 'default', 'on the main branch',\n" +" 'on branch {branch}')}\\n\"" +msgstr "" +" $ hg log -r 0 --template \"{ifeq(branch, 'default', 'on the main branch',\n" +" 'on branch {branch}')}\\n\"" + +msgid "- Append a newline if not empty::" +msgstr "- Anexar uma quebra de linha se não for vazio::" + +msgid " $ hg tip --template \"{if(author, '{author}\\n')}\"" +msgstr " $ hg tip --template \"{if(author, '{author}\\n')}\"" + +msgid "- Label the output for use with the color extension::" +msgstr "- Rotular a saída para uso da extensão color::" + +msgid " $ hg log -r 0 --template \"{label('changeset.{phase}', node|short)}\\n\"" +msgstr " $ hg log -r 0 --template \"{label('changeset.{phase}', node|short)}\\n\"" + +msgid "- Invert the firstline filter, i.e. everything but the first line::" +msgstr "- Inverter o filtro firstline, ou seja, tudo menos a primeira linha::" + +msgid " $ hg log -r 0 --template \"{sub(r'^.*\\n?\\n?', '', desc)}\\n\"\n" +msgstr " $ hg log -r 0 --template \"{sub(r'^.*\\n?\\n?', '', desc)}\\n\"\n" msgid "Valid URLs are of the form::" msgstr "URLs válidas são da forma::" @@ -22306,6 +22552,10 @@ msgstr "push inclui revisão colidida: %s!" #, python-format +msgid "push includes divergent changeset: %s!" +msgstr "push inclui uma revisão divergente: %s!" + +#, python-format msgid "updating %s to public failed!\n" msgstr "a atualização da fase de %s para pública falhou!\n" @@ -22344,6 +22594,9 @@ msgid "received file revlog group is empty" msgstr "grupo recebido de arquivos revlog vazio" +msgid "received spurious file revlog entry" +msgstr "recebida entrada de revlog de arquivo espúria" + #, python-format msgid "missing file data for %s:%s - run hg verify" msgstr "faltando dados de arquivo para %s:%s - execute hg verify" @@ -22452,6 +22705,10 @@ msgstr "o número de linhas de contexto de diff deve ser um inteiro, e não %r" #, python-format +msgid "warning: cannot merge flags for %s\n" +msgstr "aviso: não é possível mesclar flags para %s\n" + +#, python-format msgid "%s: untracked file differs\n" msgstr "%s: arquivo não rastreado é diferente\n" @@ -22465,23 +22722,6 @@ msgid "case-folding collision between %s and %s" msgstr "conflito de maiúsculas e minúsculas entre %s e %s" -#, python-format -msgid "" -" conflicting flags for %s\n" -"(n)one, e(x)ec or sym(l)ink?" -msgstr "" -" modo conflitante para %s\n" -"(n)enhum, e(x)ecutável ou (l)ink simbólico?" - -msgid "&None" -msgstr "&Nenhum" - -msgid "E&xec" -msgstr "E&xecutável" - -msgid "Sym&link" -msgstr "&Link simbólico" - msgid "resolving manifests\n" msgstr "examinando manifestos\n" @@ -22793,15 +23033,16 @@ msgstr "marcação de revisão incompatível %x" #, python-format +msgid "integrity check failed on %s:%d" +msgstr "checagem de integridade falhou em %s:%d" + +#, python-format msgid "%s not found in the transaction" msgstr "%s não encontrado na transação" msgid "consistency error in delta" msgstr "erro de consistência no delta" -msgid "unknown delta base" -msgstr "base de delta desconhecida" - #, python-format msgid "can't use %s here" msgstr "não se pode usar %s aqui" @@ -22943,6 +23184,19 @@ msgstr "bumped não tem argumentos" msgid "" +"``bundle()``\n" +" Changesets in the bundle." +msgstr "" +"``bundle()``\n" +" Revisões no bundle." + +msgid " Bundle must be specified by the -R option." +msgstr " Um bundle deve ser especificado pela opção -R." + +msgid "no bundle provided - specify with -R" +msgstr "nenhum bundle fornecido - especifique com -R" + +msgid "" "``children(set)``\n" " Child changesets of changesets in set." msgstr "" @@ -23033,6 +23287,18 @@ " não for especificado, será o mesmo que especificar all()." msgid "" +"``divergent()``\n" +" Final successors of changesets with an alternative set of final successors." +msgstr "" +"``divergent()``\n" +" Sucessores finais de revisões com um conjunto alternativo de\n" +" sucessores finais." + +#. i18n: "divergent" is a keyword +msgid "divergent takes no arguments" +msgstr "divergent não tem argumentos" + +msgid "" "``draft()``\n" " Changeset in draft phase." msgstr "" @@ -23730,6 +23996,10 @@ msgid "could not symlink to %r: %s" msgstr "impossível criar link simbólico para %r: %s" +#, python-format +msgid "%s not under root '%s'" +msgstr "%s não está sob a raiz '%s'" + msgid "empty revision range" msgstr "faixa de revisões vazia" @@ -23892,6 +24162,10 @@ msgstr "entrada inválida na fncache, linha %s" #, python-format +msgid "(in subrepo %s)" +msgstr "(no sub-repositório %s)" + +#, python-format msgid "warning: subrepo spec file %s not found\n" msgstr "aviso: arquivo spec de sub-repositório %s não encontrado\n" @@ -23955,9 +24229,8 @@ " as origens do sub-repositório %s diferem (na versão do diretório de trabalho)\n" "usar origem (l)ocal (%s) ou (r)emota (%s)?\n" -#, python-format -msgid "default path for subrepository %s not found" -msgstr "o caminho padrão para o sub-repositório %s não foi encontrado" +msgid "default path for subrepository not found" +msgstr "o caminho padrão para o sub-repositório não foi encontrado" #, python-format msgid "unknown subrepo type %s" diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/bookmarks.py --- a/mercurial/bookmarks.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/bookmarks.py Fri Feb 01 15:48:33 2013 -0600 @@ -134,6 +134,19 @@ finally: wlock.release() +def iscurrent(repo, mark=None, parents=None): + '''Tell whether the current bookmark is also active + + I.e., the bookmark listed in .hg/bookmarks.current also points to a + parent of the working directory. + ''' + if not mark: + mark = repo._bookmarkcurrent + if not parents: + parents = [p.node() for p in repo[None].parents()] + marks = repo._bookmarks + return (mark in marks and marks[mark] in parents) + def updatecurrentbookmark(repo, oldnode, curbranch): try: return update(repo, oldnode, repo.branchtip(curbranch)) @@ -143,6 +156,20 @@ else: raise util.Abort(_("branch %s not found") % curbranch) +def deletedivergent(repo, deletefrom, bm): + '''Delete divergent versions of bm on nodes in deletefrom. + + Return True if at least one bookmark was deleted, False otherwise.''' + deleted = False + marks = repo._bookmarks + divergent = [b for b in marks if b.split('@', 1)[0] == bm.split('@', 1)[0]] + for mark in divergent: + if mark and marks[mark] in deletefrom: + if mark != bm: + del marks[mark] + deleted = True + return deleted + def update(repo, parents, node): marks = repo._bookmarks update = False @@ -150,16 +177,16 @@ if not cur: return False - toupdate = [b for b in marks if b.split('@', 1)[0] == cur.split('@', 1)[0]] - for mark in toupdate: - if mark and marks[mark] in parents: - old = repo[marks[mark]] - new = repo[node] - if old.descendant(new) and mark == cur: - marks[cur] = new.node() - update = True - if mark != cur: - del marks[mark] + if marks[cur] in parents: + old = repo[marks[cur]] + new = repo[node] + if old.descendant(new): + marks[cur] = new.node() + update = True + + if deletedivergent(repo, parents, cur): + update = True + if update: marks.write() return update @@ -170,9 +197,10 @@ marks = getattr(repo, '_bookmarks', {}) d = {} + hasnode = repo.changelog.hasnode for k, v in marks.iteritems(): # don't expose local divergent bookmarks - if '@' not in k or k.endswith('@'): + if hasnode(v) and ('@' not in k or k.endswith('@')): d[k] = hex(v) return d diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/commands.py --- a/mercurial/commands.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/commands.py Fri Feb 01 15:48:33 2013 -0600 @@ -785,6 +785,10 @@ repositories to support bookmarks. For versions prior to 1.8, this means the bookmarks extension must be enabled. + If you set a bookmark called '@', new clones of the repository will + have that revision checked out (and the bookmark made active) by + default. + With -i/--inactive, the new bookmark will not be made the active bookmark. If -r/--rev is given, the new bookmark will not be made active even if -i/--inactive is not given. If no NAME is given, the @@ -869,7 +873,7 @@ else: # show bookmarks for bmark, n in sorted(marks.iteritems()): current = repo._bookmarkcurrent - if bmark == current and n == cur: + if bmark == current: prefix, label = '*', 'bookmarks.current' else: prefix, label = ' ', '' @@ -1146,6 +1150,9 @@ tag will include the tagged changeset but not the changeset containing the tag. + If the source repository has a bookmark called '@' set, that + revision will be checked out in the new repository by default. + To check out a particular version, use -u/--update, or -U/--noupdate to create a clone with no working directory. @@ -1181,8 +1188,9 @@ d) the changeset specified with -r e) the tipmost head specified with -b f) the tipmost head specified with the url#branch source syntax - g) the tipmost head of the default branch - h) tip + g) the revision marked with the '@' bookmark, if present + h) the tipmost head of the default branch + i) tip Examples: @@ -2473,13 +2481,13 @@ succeed A. It contains non-obsolete changesets only. In most cases a changeset A has a single successors set containing a single - successors (changeset A replaced by A'). + successor (changeset A replaced by A'). A changeset that is made obsolete with no successors are called "pruned". Such changesets have no successors sets at all. A changeset that has been "split" will have a successors set containing - more than one successors. + more than one successor. A changeset that has been rewritten in multiple different ways is called "divergent". Such changesets have multiple successor sets (each of which @@ -5866,7 +5874,7 @@ Returns 0 on success. """ displayer = cmdutil.show_changeset(ui, repo, opts) - displayer.show(repo[len(repo) - 1]) + displayer.show(repo['tip']) displayer.close() @command('unbundle', @@ -5961,7 +5969,12 @@ # with no argument, we also move the current bookmark, if any movemarkfrom = None if rev is None: - movemarkfrom = repo['.'].node() + curmark = repo._bookmarkcurrent + if bookmarks.iscurrent(repo): + movemarkfrom = repo['.'].node() + elif curmark: + ui.status(_("updating to active bookmark %s\n") % curmark) + rev = curmark # if we defined a bookmark, we have to remember the original bookmark name brev = rev diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/context.py --- a/mercurial/context.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/context.py Fri Feb 01 15:48:33 2013 -0600 @@ -44,8 +44,8 @@ self._rev = nullrev return if changeid == 'tip': - self._rev = len(repo.changelog) - 1 - self._node = repo.changelog.node(self._rev) + self._node = repo.changelog.tip() + self._rev = repo.changelog.rev(self._node) return if len(changeid) == 20: try: diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/graphmod.py --- a/mercurial/graphmod.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/graphmod.py Fri Feb 01 15:48:33 2013 -0600 @@ -181,7 +181,7 @@ ncols = len(seen) nextseen = seen[:] nextseen[nodeidx:nodeidx + 1] = newparents - edges = [(nodeidx, nextseen.index(p)) for p in knownparents] + edges = [(nodeidx, nextseen.index(p)) for p in knownparents if p != nullrev] while len(newparents) > 2: # ascii() only knows how to add or remove a single column between two diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/hbisect.py --- a/mercurial/hbisect.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/hbisect.py Fri Feb 01 15:48:33 2013 -0600 @@ -38,7 +38,7 @@ # set nodes descended from goodrevs for rev in goodrevs: ancestors[rev] = [] - for rev in xrange(goodrev + 1, len(changelog)): + for rev in changelog.revs(goodrev + 1): for prev in clparents(rev): if ancestors[prev] == []: ancestors[rev] = [] @@ -46,7 +46,7 @@ # clear good revs from array for rev in goodrevs: ancestors[rev] = None - for rev in xrange(len(changelog), goodrev, -1): + for rev in changelog.revs(len(changelog), goodrev): if ancestors[rev] is None: for prev in clparents(rev): ancestors[prev] = None diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/help/config.txt --- a/mercurial/help/config.txt Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/help/config.txt Fri Feb 01 15:48:33 2013 -0600 @@ -990,6 +990,19 @@ file exists, it is replaced. Default: None, data is printed on stderr +``sort`` + Sort field. Specific to the ``ls`` instrumenting profiler. + One of ``callcount``, ``reccallcount``, ``totaltime`` and + ``inlinetime``. + Default: inlinetime. + +``nested`` + Show at most this number of lines of drill-down info in a tree structure + after each main entry. This can help explain the difference between Total + and Inline. + Specific to the ``ls`` instrumenting profiler. + Default: 5. + ``revsetalias`` --------------- diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/help/revsets.txt --- a/mercurial/help/revsets.txt Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/help/revsets.txt Fri Feb 01 15:48:33 2013 -0600 @@ -118,4 +118,4 @@ - Changesets mentioning "bug" or "issue" that are not in a tagged release:: - hg log -r "(keyword(bug) or keyword(issue)) and not ancestors(tagged())" + hg log -r "(keyword(bug) or keyword(issue)) and not ancestors(tag())" diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/help/templates.txt --- a/mercurial/help/templates.txt Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/help/templates.txt Fri Feb 01 15:48:33 2013 -0600 @@ -38,3 +38,61 @@ List of filters: .. filtersmarker + +Note that a filter is nothing more than a function call, i.e. +``expr|filter`` is equivalent to ``filter(expr)``. + +In addition to filters, there are some basic built-in functions: + +- if(expr, then[, else]) + +- ifeq(expr, expr, then[, else]) + +- sub(pat, repl, expr) + +- join(list, sep) + +- label(label, expr) + +- date(date[, fmt]) + +- fill(text[, width]) + +Also, for any expression that returns a list, there is a list operator: + +- expr % "{template}" + +Some sample command line templates: + +- Format lists, e.g. files:: + + $ hg log -r 0 --template "files:\n{files % ' {file}\n'}" + +- Join the list of files with a ", ":: + + $ hg log -r 0 --template "files: {join(files, ', ')}\n" + +- Format date:: + + $ hg log -r 0 --template "{date(date, '%Y')}\n" + +- Output the description set to a fill-width of 30:: + + $ hg log -r 0 --template "{fill(desc, '30')}" + +- Use a conditional to test for the default branch:: + + $ hg log -r 0 --template "{ifeq(branch, 'default', 'on the main branch', + 'on branch {branch}')}\n" + +- Append a newline if not empty:: + + $ hg tip --template "{if(author, '{author}\n')}" + +- Label the output for use with the color extension:: + + $ hg log -r 0 --template "{label('changeset.{phase}', node|short)}\n" + +- Invert the firstline filter, i.e. everything but the first line:: + + $ hg log -r 0 --template "{sub(r'^.*\n?\n?', '', desc)}\n" diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/hg.py --- a/mercurial/hg.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/hg.py Fri Feb 01 15:48:33 2013 -0600 @@ -171,14 +171,11 @@ r = repository(ui, root) default = srcrepo.ui.config('paths', 'default') - if not default: - # set default to source for being able to clone subrepos - default = os.path.abspath(util.urllocalpath(origsource)) - fp = r.opener("hgrc", "w", text=True) - fp.write("[paths]\n") - fp.write("default = %s\n" % default) - fp.close() - r.ui.setconfig('paths', 'default', default) + if default: + fp = r.opener("hgrc", "w", text=True) + fp.write("[paths]\n") + fp.write("default = %s\n" % default) + fp.close() if update: r.ui.status(_("updating working directory\n")) @@ -558,7 +555,7 @@ revs = [repo.lookup(rev) for rev in scmutil.revrange(repo, revs)] other = peer(repo, opts, dest) - outgoing = discovery.findcommonoutgoing(repo, other, revs, + outgoing = discovery.findcommonoutgoing(repo.unfiltered(), other, revs, force=opts.get('force')) o = outgoing.missing if not o: diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/hgweb/hgweb_mod.py Fri Feb 01 15:48:33 2013 -0600 @@ -7,7 +7,7 @@ # GNU General Public License version 2 or any later version. import os -from mercurial import ui, hg, hook, error, encoding, templater, util +from mercurial import ui, hg, hook, error, encoding, templater, util, repoview from common import get_stat, ErrorResponse, permhooks, caching from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR @@ -24,7 +24,7 @@ 'pushkey': 'push', } -def makebreadcrumb(url): +def makebreadcrumb(url, prefix=''): '''Return a 'URL breadcrumb' list A 'URL breadcrumb' is a list of URL-name pairs, @@ -33,6 +33,8 @@ ''' if url.endswith('/'): url = url[:-1] + if prefix: + url = '/' + prefix + url relpath = url if relpath.startswith('/'): relpath = relpath[1:] @@ -59,7 +61,7 @@ else: self.repo = repo - self.repo = self.repo.filtered('served') + self.repo = self._getview(self.repo) self.repo.ui.setconfig('ui', 'report_untrusted', 'off') self.repo.ui.setconfig('ui', 'nontty', 'true') hook.redirect(True) @@ -86,6 +88,15 @@ return self.repo.ui.configlist(section, name, default, untrusted=untrusted) + def _getview(self, repo): + viewconfig = self.config('web', 'view', 'served') + if viewconfig == 'all': + return repo.unfiltered() + elif viewconfig in repoview.filtertable: + return repo.filtered(viewconfig) + else: + return repo.filtered('served') + def refresh(self, request=None): if request: self.repo.ui.environ = request.env @@ -96,7 +107,7 @@ self.mtime = st.st_mtime self.size = st.st_size self.repo = hg.repository(self.repo.ui, self.repo.root) - self.repo = self.repo.filtered('served') + self.repo = self._getview(self.repo) self.maxchanges = int(self.config("web", "maxchanges", 10)) self.stripecount = int(self.config("web", "stripes", 1)) self.maxshortchanges = int(self.config("web", "maxshortchanges", @@ -231,10 +242,10 @@ return content - except error.LookupError, err: + except (error.LookupError, error.RepoLookupError), err: req.respond(HTTP_NOT_FOUND, ctype) msg = str(err) - if 'manifest' not in msg: + if util.safehasattr(err, 'name') and 'manifest' not in msg: msg = 'revision not found: %s' % err.name return tmpl('error', error=msg) except (error.RepoError, error.RevlogError), inst: diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/hgweb/hgwebdir_mod.py --- a/mercurial/hgweb/hgwebdir_mod.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/hgweb/hgwebdir_mod.py Fri Feb 01 15:48:33 2013 -0600 @@ -133,6 +133,12 @@ if self.stripecount: self.stripecount = int(self.stripecount) self._baseurl = self.ui.config('web', 'baseurl') + prefix = self.ui.config('web', 'prefix', '') + if prefix.startswith('/'): + prefix = prefix[1:] + if prefix.endswith('/'): + prefix = prefix[:-1] + self.prefix = prefix self.lastrefresh = time.time() def run(self): @@ -395,7 +401,7 @@ self.updatereqenv(req.env) return tmpl("index", entries=entries, subdir=subdir, - pathdef=makebreadcrumb('/' + subdir), + pathdef=makebreadcrumb('/' + subdir, self.prefix), sortcolumn=sortcolumn, descending=descending, **dict(sort)) diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/hgweb/webcommands.py Fri Feb 01 15:48:33 2013 -0600 @@ -129,9 +129,10 @@ qw = lower(query).split() def revgen(): + cl = web.repo.changelog for i in xrange(len(web.repo) - 1, 0, -100): l = [] - for j in xrange(max(0, i - 100), i + 1): + for j in cl.revs(max(0, i - 100), i + 1): ctx = web.repo[j] l.append(ctx) l.reverse() @@ -188,7 +189,7 @@ if 'rev' in req.form: hi = req.form['rev'][0] else: - hi = len(web.repo) - 1 + hi = 'tip' try: ctx = web.repo[hi] except error.RepoError: @@ -292,7 +293,7 @@ node=ctx.hex(), parent=webutil.parents(ctx), child=webutil.children(ctx), - currentbaseline=basectx.hex(), + basenode=basectx.hex(), changesettag=showtags, changesetbookmark=showbookmarks, changesetbranch=showbranch, @@ -424,7 +425,7 @@ latestentry=lambda **x: entries(True, True, **x)) def bookmarks(web, req, tmpl): - i = web.repo._bookmarks.items() + i = [b for b in web.repo._bookmarks.items() if b[1] in web.repo] parity = paritygen(web.stripecount) def entries(latestonly, **map): diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/hgweb/webutil.py --- a/mercurial/hgweb/webutil.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/hgweb/webutil.py Fri Feb 01 15:48:33 2013 -0600 @@ -91,9 +91,9 @@ if rev not in self._revlog: continue if pos < rev < limit: - navafter.append(("+%d" % f, self.hex(rev))) + navafter.append(("+%d" % abs(rev - pos), self.hex(rev))) if 0 < rev < pos: - navbefore.append(("-%d" % f, self.hex(rev))) + navbefore.append(("-%d" % abs(rev - pos), self.hex(rev))) navafter.append(("tip", "tip")) diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/localrepo.py Fri Feb 01 15:48:33 2013 -0600 @@ -1688,10 +1688,14 @@ "changegroupsubset.")) else: cg = remote.changegroupsubset(fetch, heads, 'pull') - clstart = len(self.changelog) + # we use unfiltered changelog here because hidden revision must + # be taken in account for phase synchronization. They may + # becomes public and becomes visible again. + cl = self.unfiltered().changelog + clstart = len(cl) result = self.addchangegroup(cg, 'pull', remote.url()) - clend = len(self.changelog) - added = [self.changelog.node(r) for r in xrange(clstart, clend)] + clend = len(cl) + added = [cl.node(r) for r in xrange(clstart, clend)] # compute target subset if heads is None: @@ -1870,6 +1874,20 @@ cheads.extend(c.node() for c in revset) # even when we don't push, exchanging phase data is useful remotephases = remote.listkeys('phases') + if (self.ui.configbool('ui', '_usedassubrepo', False) + and remotephases # server supports phases + and ret is None # nothing was pushed + and remotephases.get('publishing', False)): + # When: + # - this is a subrepo push + # - and remote support phase + # - and no changeset was pushed + # - and remote is publishing + # We may be in issue 3871 case! + # We drop the possible phase synchronisation done by + # courtesy to publish changesets possibly locally draft + # on the remote. + remotephases = {'publishing': 'True'} if not remotephases: # old server or public only repo phases.advanceboundary(self, phases.public, cheads) # don't push any phase data as there is nothing to push diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/merge.py --- a/mercurial/merge.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/merge.py Fri Feb 01 15:48:33 2013 -0600 @@ -228,7 +228,10 @@ break # Compare manifests - for f, n in sorted(m1.iteritems()): + visit = m1.iteritems() + if repo.ui.debugflag: + visit = sorted(visit) + for f, n in visit: if partial and not partial(f): continue if f in m2: @@ -248,7 +251,7 @@ elif nol and n2 == a: # remote only changed 'x' act("update permissions", "e", f, fl2) elif nol and n == a: # local only changed 'x' - act("remote is newer", "g", f, fl) + act("remote is newer", "g", f, fl1) else: # both changed something act("versions differ", "m", f, f, f, False) elif f in copied: # files we'll deal with on m2 side @@ -274,7 +277,10 @@ else: act("other deleted", "r", f) - for f, n in sorted(m2.iteritems()): + visit = m2.iteritems() + if repo.ui.debugflag: + visit = sorted(visit) + for f, n in visit: if partial and not partial(f): continue if f in m1 or f in copied: # files already visited diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/parsers.c --- a/mercurial/parsers.c Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/parsers.c Fri Feb 01 15:48:33 2013 -0600 @@ -1234,8 +1234,14 @@ self->ntrev = (int)start; } self->length = start + 1; - if (start < self->raw_length) + if (start < self->raw_length) { + if (self->cache) { + Py_ssize_t i; + for (i = start; i < self->raw_length; i++) + Py_CLEAR(self->cache[i]); + } self->raw_length = start; + } goto done; } diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/posix.py --- a/mercurial/posix.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/posix.py Fri Feb 01 15:48:33 2013 -0600 @@ -195,6 +195,11 @@ def normcase(path): try: + path.decode('ascii') # throw exception for non-ASCII character + return path.lower() + except UnicodeDecodeError: + pass + try: u = path.decode('utf-8') except UnicodeDecodeError: # percent-encode any characters that don't round-trip diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/repoview.py --- a/mercurial/repoview.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/repoview.py Fri Feb 01 15:48:33 2013 -0600 @@ -9,7 +9,7 @@ import copy import phases import util -import obsolete, bookmarks, revset +import obsolete, revset def hideablerevs(repo): @@ -32,7 +32,7 @@ if r not in hideable] for par in repo[None].parents(): blockers.append(par.rev()) - for bm in bookmarks.listbookmarks(repo).values(): + for bm in repo._bookmarks.values(): blockers.append(repo[bm].rev()) blocked = cl.ancestors(blockers, inclusive=True) return frozenset(r for r in hideable if r not in blocked) @@ -72,7 +72,7 @@ def computeimpactable(repo): """Everything impactable by mutable revision - The mutable filter still have some chance to get invalidated. This will + The immutable filter still have some chance to get invalidated. This will happen when: - you garbage collect hidden changeset, diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/revset.py --- a/mercurial/revset.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/revset.py Fri Feb 01 15:48:33 2013 -0600 @@ -8,7 +8,6 @@ import re import parser, util, error, discovery, hbisect, phases import node -import bookmarks as bookmarksmod import match as matchmod from i18n import _ import encoding @@ -223,13 +222,9 @@ return stringset(repo, subset, x) def rangeset(repo, subset, x, y): - m = getset(repo, subset, x) - if not m: - m = getset(repo, list(repo), x) - - n = getset(repo, subset, y) - if not n: - n = getset(repo, list(repo), y) + cl = repo.changelog + m = getset(repo, cl, x) + n = getset(repo, cl, y) if not m or not n: return [] @@ -326,7 +321,7 @@ raise error.ParseError(_("~ expects a number")) ps = set() cl = repo.changelog - for r in getset(repo, subset, x): + for r in getset(repo, cl, x): for i in range(n): r = cl.parentrevs(r)[0] ps.add(r) @@ -379,14 +374,14 @@ _('the argument to bookmark must be a string')) kind, pattern, matcher = _stringmatcher(bm) if kind == 'literal': - bmrev = bookmarksmod.listbookmarks(repo).get(bm, None) + bmrev = repo._bookmarks.get(bm, None) if not bmrev: raise util.Abort(_("bookmark '%s' does not exist") % bm) bmrev = repo[bmrev].rev() return [r for r in subset if r == bmrev] else: matchrevs = set() - for name, bmrev in bookmarksmod.listbookmarks(repo).iteritems(): + for name, bmrev in repo._bookmarks.iteritems(): if matcher(name): matchrevs.add(bmrev) if not matchrevs: @@ -398,7 +393,7 @@ return [r for r in subset if r in bmrevs] bms = set([repo[r].rev() - for r in bookmarksmod.listbookmarks(repo).values()]) + for r in repo._bookmarks.values()]) return [r for r in subset if r in bms] def branch(repo, subset, x): @@ -1139,7 +1134,7 @@ raise error.ParseError(_("^ expects a number 0, 1, or 2")) ps = set() cl = repo.changelog - for r in getset(repo, subset, x): + for r in getset(repo, cl, x): if n == 0: ps.add(r) elif n == 1: diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/scmutil.py --- a/mercurial/scmutil.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/scmutil.py Fri Feb 01 15:48:33 2013 -0600 @@ -6,6 +6,7 @@ # GNU General Public License version 2 or any later version. from i18n import _ +from mercurial.node import nullrev import util, error, osutil, revset, similar, encoding, phases import match as matchmod import os, errno, re, stat, sys, glob @@ -647,6 +648,8 @@ start, end = spec.split(_revrangesep, 1) start = revfix(repo, start, 0) end = revfix(repo, end, len(repo) - 1) + if end == nullrev and start <= 0: + start = nullrev rangeiter = repo.changelog.revs(start, end) if not seen and not l: # by far the most common case: revs = ["-1:0"] diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/subrepo.py --- a/mercurial/subrepo.py Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/subrepo.py Fri Feb 01 15:48:33 2013 -0600 @@ -264,6 +264,9 @@ return repo.ui.config('paths', 'default-push') if repo.ui.config('paths', 'default'): return repo.ui.config('paths', 'default') + if repo.sharedpath != repo.path: + # chop off the .hg component to get the default path form + return os.path.dirname(repo.sharedpath) if abort: raise util.Abort(_("default path for subrepository not found")) @@ -420,6 +423,7 @@ v = r.ui.config(s, k) if v: self._repo.ui.setconfig(s, k, v) + self._repo.ui.setconfig('ui', '_usedassubrepo', 'True') self._initrepo(r, state[0], create) @annotatesubrepoerror diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/bookmarkentry.tmpl --- a/mercurial/templates/atom/bookmarkentry.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/bookmarkentry.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {bookmark|escape} - - {urlbase}{url}#bookmark-{node} + + {urlbase}{url|urlescape}#bookmark-{node} {date|rfc3339date} {date|rfc3339date} {bookmark|strip|escape} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/bookmarks.tmpl --- a/mercurial/templates/atom/bookmarks.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/bookmarks.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} - {urlbase}{url} - - + {urlbase}{url|urlescape} + + {repo|escape}: bookmarks {repo|escape} bookmark history Mercurial SCM diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/branchentry.tmpl --- a/mercurial/templates/atom/branchentry.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/branchentry.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {branch|escape} - - {urlbase}{url}#branch-{node} + + {urlbase}{url|urlescape}#branch-{node} {date|rfc3339date} {date|rfc3339date} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/branches.tmpl --- a/mercurial/templates/atom/branches.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/branches.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} - {urlbase}{url} - - + {urlbase}{url|urlescape} + + {repo|escape}: branches {repo|escape} branch history Mercurial SCM diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/changelog.tmpl --- a/mercurial/templates/atom/changelog.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/changelog.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,8 +1,8 @@ {header} - {urlbase}{url} - - + {urlbase}{url|urlescape} + + {repo|escape} Changelog {latestentry%feedupdated} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/changelogentry.tmpl --- a/mercurial/templates/atom/changelogentry.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/changelogentry.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {desc|strip|firstline|strip|escape|nonempty} - {urlbase}{url}#changeset-{node} - + {urlbase}{url|urlescape}#changeset-{node} + {author|person|escape} {author|email|obfuscate} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/error.tmpl --- a/mercurial/templates/atom/error.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/error.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,8 +1,8 @@ {header} - {urlbase}{url} - - + {urlbase}{url|urlescape} + + Error 1970-01-01T00:00:00+00:00 diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/filelog.tmpl --- a/mercurial/templates/atom/filelog.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/filelog.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,6 +1,6 @@ {header} - {urlbase}{url}atom-log/tip/{file|escape} - + {urlbase}{url|urlescape}atom-log/tip/{file|escape} + {repo|escape}: {file|escape} history {latestentry%feedupdated} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/tagentry.tmpl --- a/mercurial/templates/atom/tagentry.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/tagentry.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {tag|escape} - - {urlbase}{url}#tag-{node} + + {urlbase}{url|urlescape}#tag-{node} {date|rfc3339date} {date|rfc3339date} {tag|strip|escape} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/atom/tags.tmpl --- a/mercurial/templates/atom/tags.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/atom/tags.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} - {urlbase}{url} - - + {urlbase}{url|urlescape} + + {repo|escape}: tags {repo|escape} tag history Mercurial SCM diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/coal/header.tmpl --- a/mercurial/templates/coal/header.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/coal/header.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ - + - - + + diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/coal/map --- a/mercurial/templates/coal/map Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/coal/map Fri Feb 01 15:48:33 2013 -0600 @@ -13,14 +13,14 @@ help = ../paper/help.tmpl helptopics = ../paper/helptopics.tmpl -helpentry = '{topic|escape}{summary|escape}' +helpentry = '{topic|escape}{summary|escape}' -naventry = '{label|escape} ' -navshortentry = '{label|escape} ' -navgraphentry = '{label|escape} ' -filenaventry = '{label|escape} ' -filedifflink = '{file|escape} ' -filenodelink = '{file|escape} ' +naventry = '{label|escape} ' +navshortentry = '{label|escape} ' +navgraphentry = '{label|escape} ' +filenaventry = '{label|escape} ' +filedifflink = '{file|escape} ' +filenodelink = '{file|escape} ' filenolink = '{file|escape} ' fileellipses = '...' diffstatlink = ../paper/diffstat.tmpl @@ -38,10 +38,10 @@ direntry = ' - - dir. {basename|escape}/ + + dir. {basename|escape}/ - + {emptydirs|escape} @@ -52,8 +52,8 @@ fileentry = ' - - file {basename|escape} + + file {basename|escape} {size} @@ -72,7 +72,7 @@ annotateline = ' - {author|user}@{rev} {linenumber} {line|escape} @@ -97,19 +97,19 @@ changelogparent = ' parent {rev}: - {node|short} + {node|short} ' -changesetparent = '{node|short} ' +changesetparent = '{node|short} ' -filerevparent = '{rename%filerename}{node|short} ' -filerevchild = '{node|short} ' +filerevparent = '{rename%filerename}{node|short} ' +filerevchild = '{node|short} ' filerename = '{file|escape}@' filelogrename = ' base - + {file|escape}@{node|short} ' @@ -117,17 +117,17 @@ parent: - + {rename%filerename}{node|short} ' -changesetchild = ' {node|short}' +changesetchild = ' {node|short}' changelogchild = ' child - + {node|short} @@ -136,7 +136,7 @@ child: - + {node|short} @@ -145,7 +145,7 @@ tagentry = ' - + {tag|escape} @@ -157,7 +157,7 @@ bookmarkentry = ' - + {bookmark|escape} @@ -169,7 +169,7 @@ branchentry = ' - + {branch|escape} @@ -186,41 +186,41 @@ filediffparent = ' parent {rev}: - {node|short} + {node|short} ' filelogparent = ' parent {rev}: - {node|short} + {node|short} ' filediffchild = ' child {rev}: - {node|short} + {node|short} ' filelogchild = ' child {rev}: - {node|short} + {node|short} ' indexentry = ' - {name|escape} + {name|escape} {description} {contact|obfuscate} {lastchange|rfc822date} {archives%indexarchiveentry} \n' -indexarchiveentry = ' ↓{type|escape}' +indexarchiveentry = ' ↓{type|escape}' index = ../paper/index.tmpl archiveentry = '
  • - {type|escape} + {type|escape}
  • ' notfound = ../paper/notfound.tmpl error = ../paper/error.tmpl urlparameter = '{separator}{name}={value|urlescape}' hiddenformentry = '' -breadcrumb = '> {name} ' +breadcrumb = '> {name|escape} ' diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/bookmarks.tmpl --- a/mercurial/templates/gitweb/bookmarks.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/bookmarks.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Bookmarks + href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}"/> @@ -13,15 +13,15 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/branches.tmpl --- a/mercurial/templates/gitweb/branches.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/branches.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Branches + href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}"/> @@ -13,15 +13,15 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/changelog.tmpl --- a/mercurial/templates/gitweb/changelog.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/changelog.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Changelog + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -12,7 +12,7 @@ Mercurial {pathdef%breadcrumb} / changelog -
    + {sessionvars%hiddenformentry}
    diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/error.tmpl --- a/mercurial/templates/gitweb/error.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/error.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Error + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,14 +13,14 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/fileannotate.tmpl --- a/mercurial/templates/gitweb/fileannotate.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/fileannotate.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: {file|escape}@{node|short} (annotated) + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,23 +13,23 @@ @@ -46,7 +46,7 @@ {branch%filerevbranch} - + {parent%fileannotateparent} {child%fileannotatechild} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/filecomparison.tmpl --- a/mercurial/templates/gitweb/filecomparison.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/filecomparison.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: comparison {file|escape} + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,23 +13,23 @@ @@ -39,7 +39,7 @@ {branch%filerevbranch} - + {parent%filecompparent} {child%filecompchild}
    changeset {rev}{node|short}
    {node|short}
    changeset {rev}{node|short}
    {node|short}
    diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/filediff.tmpl --- a/mercurial/templates/gitweb/filediff.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/filediff.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: diff {file|escape} + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,23 +13,23 @@
    @@ -39,7 +39,7 @@ {branch%filerevbranch} changeset {rev} - {node|short} + {node|short} {parent%filediffparent} {child%filediffchild} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/filelog.tmpl --- a/mercurial/templates/gitweb/filelog.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/filelog.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: File revisions + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,20 +13,20 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/filerevision.tmpl --- a/mercurial/templates/gitweb/filerevision.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/filerevision.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: {file|escape}@{node|short} + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,23 +13,23 @@ @@ -46,7 +46,7 @@ {branch%filerevbranch} changeset {rev} - {node|short} + {node|short} {parent%filerevparent} {child%filerevchild} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/footer.tmpl --- a/mercurial/templates/gitweb/footer.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/footer.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -2,8 +2,8 @@ -
    + {sessionvars%hiddenformentry}
    @@ -89,7 +89,7 @@ } var item = '
  • '; - item += '' + cur[3] + ''; + item += '' + cur[3] + ''; item += ' ' + tagspan + ''; item += '' + cur[5] + ', by ' + cur[4] + '
  • '; @@ -103,8 +103,8 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/header.tmpl --- a/mercurial/templates/gitweb/header.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/header.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -2,7 +2,7 @@ - + - - + + diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/help.tmpl --- a/mercurial/templates/gitweb/help.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/help.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Branches + href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}"/> @@ -13,14 +13,14 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/helptopics.tmpl --- a/mercurial/templates/gitweb/helptopics.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/helptopics.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Branches + href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}"/> @@ -13,14 +13,14 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/manifest.tmpl --- a/mercurial/templates/gitweb/manifest.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/manifest.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: files + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -13,16 +13,16 @@ @@ -32,7 +32,7 @@ drwxr-xr-x -[up] +[up]   {dentries%direntry} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/map --- a/mercurial/templates/gitweb/map Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/map Fri Feb 01 15:48:33 2013 -0600 @@ -11,35 +11,35 @@ help = help.tmpl helptopics = helptopics.tmpl -helpentry = '{topic|escape}{summary|escape}' +helpentry = '{topic|escape}{summary|escape}' -naventry = '{label|escape} ' -navshortentry = '{label|escape} ' -navgraphentry = '{label|escape} ' -filenaventry = '{label|escape} ' -filedifflink = '{file|escape} ' +naventry = '{label|escape} ' +navshortentry = '{label|escape} ' +navgraphentry = '{label|escape} ' +filenaventry = '{label|escape} ' +filedifflink = '{file|escape} ' filenodelink = ' - {file|escape} + {file|escape} - file | - annotate | - diff | - comparison | - revisions + file | + annotate | + diff | + comparison | + revisions ' filenolink = ' - {file|escape} + {file|escape} file | annotate | - diff | - comparison | - revisions + diff | + comparison | + revisions ' @@ -59,11 +59,11 @@ - {basename|escape} - {emptydirs|escape} + {basename|escape} + {emptydirs|escape} - files + files ' fileentry = ' @@ -72,12 +72,12 @@ {date|isodate} {size} - {basename|escape} + {basename|escape} - file | - revisions | - annotate + file | + revisions | + annotate ' filerevision = filerevision.tmpl @@ -92,7 +92,7 @@ annotateline = ' - {author|user}@{rev}
    {linenumber}
    @@ -117,34 +117,34 @@ parent {rev}: - {node|short} + {node|short} ' -changesetbranch = 'branch{name}' +changesetbranch = 'branch{name|escape}' changesetparent = ' parent {rev} - {node|short} + {node|short} ' -filerevbranch = 'branch{name}' +filerevbranch = 'branch{name|escape}' filerevparent = ' parent {rev} - + {rename%filerename}{node|short} ' filerename = '{file|escape}@' -filelogrename = '| base' +filelogrename = '| base' fileannotateparent = ' parent {rev} - + {rename%filerename}{node|short} @@ -152,59 +152,59 @@ changelogchild = ' child {rev}: - {node|short} + {node|short} ' changesetchild = ' child {rev} - {node|short} + {node|short} ' filerevchild = ' child {rev} - {node|short} + {node|short} ' fileannotatechild = ' child {rev} - {node|short} + {node|short} ' tags = tags.tmpl tagentry = ' {date|rfc822date} - {tag|escape} + {tag|escape} - changeset | - changelog | - files + changeset | + changelog | + files ' bookmarks = bookmarks.tmpl bookmarkentry = ' {date|rfc822date} - {bookmark|escape} + {bookmark|escape} - changeset | - changelog | - files + changeset | + changelog | + files ' branches = branches.tmpl branchentry = ' {date|rfc822date} - {node|short} + {node|short} {branch|escape} - changeset | - changelog | - files + changeset | + changelog | + files ' diffblock = '
    {lines}
    ' @@ -212,7 +212,7 @@ parent {rev} - + {node|short} @@ -221,7 +221,7 @@ parent {rev} - + {node|short} @@ -229,64 +229,64 @@ filelogparent = ' parent {rev}:  - {node|short} + {node|short} ' filediffchild = ' child {rev} - {node|short} + {node|short} ' filecompchild = ' child {rev} - {node|short} + {node|short} ' filelogchild = ' child {rev}:  - {node|short} + {node|short} ' shortlog = shortlog.tmpl graph = graph.tmpl -tagtag = '{name} ' -branchtag = '{name} ' -inbranchtag = '{name} ' -bookmarktag = '{name} ' +tagtag = '{name|escape} ' +branchtag = '{name|escape} ' +inbranchtag = '{name|escape} ' +bookmarktag = '{name|escape} ' shortlogentry = ' {date|rfc822date} {author|person} - + {desc|strip|firstline|escape|nonempty} {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag} - changeset | - files + changeset | + files ' filelogentry = ' {date|rfc822date} - + {desc|strip|firstline|escape|nonempty} - file | diff | annotate {rename%filelogrename} + file | diff | annotate {rename%filelogrename} ' -archiveentry = ' | {type|escape} ' +archiveentry = ' | {type|escape} ' indexentry = ' - + {name|escape} @@ -296,13 +296,13 @@ {archives%indexarchiveentry} {if(isdirectory, '', '' )} \n' -indexarchiveentry = ' {type|escape} ' +indexarchiveentry = ' {type|escape} ' index = index.tmpl urlparameter = '{separator}{name}={value|urlescape}' hiddenformentry = '' -breadcrumb = '> {name} ' +breadcrumb = '> {name|escape} ' diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/notfound.tmpl --- a/mercurial/templates/gitweb/notfound.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/notfound.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -12,7 +12,7 @@ The specified repository "{repo|escape}" is unknown, sorry.

    -Please go back to the main repository list page. +Please go back to the main repository list page. {footer} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/search.tmpl --- a/mercurial/templates/gitweb/search.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/search.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Search + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -11,7 +11,7 @@ Mercurial Mercurial {pathdef%breadcrumb} / search -
    + {sessionvars%hiddenformentry} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/shortlog.tmpl --- a/mercurial/templates/gitweb/shortlog.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/shortlog.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: Shortlog + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> @@ -12,22 +12,22 @@ Mercurial {pathdef%breadcrumb} / shortlog - + {sessionvars%hiddenformentry}
    diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/gitweb/summary.tmpl --- a/mercurial/templates/gitweb/summary.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/gitweb/summary.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,16 +1,16 @@ {header} {repo|escape}: Summary + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    -

    mercurial

    +

    mercurial

    diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/manifest.tmpl --- a/mercurial/templates/monoblue/manifest.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/manifest.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} {repo|escape}: files - - + + @@ -9,7 +9,7 @@ @@ -43,7 +43,7 @@ drwxr-xr-x - [up] + [up]   {dentries%direntry} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/map --- a/mercurial/templates/monoblue/map Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/map Fri Feb 01 15:48:33 2013 -0600 @@ -11,35 +11,35 @@ help = help.tmpl helptopics = helptopics.tmpl -helpentry = '{topic|escape}{summary|escape}' +helpentry = '{topic|escape}{summary|escape}' -naventry = '{label|escape} ' -navshortentry = '{label|escape} ' -navgraphentry = '{label|escape} ' -filenaventry = '{label|escape}' -filedifflink = '{file|escape} ' +naventry = '{label|escape} ' +navshortentry = '{label|escape} ' +navgraphentry = '{label|escape} ' +filenaventry = '{label|escape}' +filedifflink = '{file|escape} ' filenodelink = ' - {file|escape} + {file|escape} - file | - annotate | - diff | - comparison | - revisions + file | + annotate | + diff | + comparison | + revisions ' filenolink = ' - {file|escape} + {file|escape} file | annotate | - diff | - comparison | - revisions + diff | + comparison | + revisions ' @@ -58,19 +58,19 @@ drwxr-xr-x - {basename|escape} - files + {basename|escape} + files ' fileentry = ' {permissions|permissions} {date|isodate} {size} - {basename|escape} + {basename|escape} - file | - revisions | - annotate + file | + revisions | + annotate ' filerevision = filerevision.tmpl @@ -85,7 +85,7 @@ annotateline = ' - {author|user}@{rev} @@ -112,136 +112,136 @@ parent {rev}: - {node|short} + {node|short} ' -changesetbranch = '
    branch
    {name}
    ' +changesetbranch = '
    branch
    {name|escape}
    ' changesetparent = '
    parent {rev}
    -
    {node|short}
    ' -filerevbranch = '
    branch
    {name}
    ' +
    {node|short}
    ' +filerevbranch = '
    branch
    {name|escape}
    ' filerevparent = '
    parent {rev}
    - + {rename%filerename}{node|short}
    ' filerename = '{file|escape}@' -filelogrename = '| base' +filelogrename = '| base' fileannotateparent = '
    parent {rev}
    - + {rename%filerename}{node|short}
    ' changelogchild = '
    child {rev}:
    -
    {node|short}
    ' +
    {node|short}
    ' changesetchild = '
    child {rev}
    -
    {node|short}
    ' +
    {node|short}
    ' filerevchild = '
    child {rev}
    - {node|short} + {node|short}
    ' fileannotatechild = '
    child {rev}
    - {node|short} + {node|short}
    ' tags = tags.tmpl tagentry = ' {date|rfc822date} - {tag|escape} + {tag|escape} - changeset | - changelog | - files + changeset | + changelog | + files ' bookmarks = bookmarks.tmpl bookmarkentry = ' {date|rfc822date} - {bookmark|escape} + {bookmark|escape} - changeset | - changelog | - files + changeset | + changelog | + files ' branches = branches.tmpl branchentry = ' {date|rfc822date} - {node|short} + {node|short} {branch|escape} - changeset | - changelog | - files + changeset | + changelog | + files ' diffblock = '
    {lines}
    ' filediffparent = '
    parent {rev}
    -
    {node|short}
    ' +
    {node|short}
    ' filecompparent = '
    parent {rev}
    -
    {node|short}
    ' +
    {node|short}
    ' filelogparent = ' parent {rev}:  - {node|short} + {node|short} ' filediffchild = '
    child {rev}
    -
    {node|short}
    ' +
    {node|short}
    ' filecompchild = '
    child {rev}
    -
    {node|short}
    ' +
    {node|short}
    ' filelogchild = ' child {rev}:  - {node|short} + {node|short} ' shortlog = shortlog.tmpl -tagtag = '{name} ' -branchtag = '{name} ' -inbranchtag = '{name} ' -bookmarktag = '{name} ' +tagtag = '{name|escape} ' +branchtag = '{name|escape} ' +inbranchtag = '{name|escape} ' +bookmarktag = '{name|escape} ' shortlogentry = ' {date|rfc822date} {author|person} - + {desc|strip|firstline|escape|nonempty} {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag} - changeset | - files + changeset | + files ' filelogentry = ' {date|rfc822date} - {desc|strip|firstline|escape|nonempty} + {desc|strip|firstline|escape|nonempty} - file | diff | annotate + file | diff | annotate {rename%filelogrename} ' -archiveentry = '
  • {type|escape}
  • ' +archiveentry = '
  • {type|escape}
  • ' indexentry = ' - {name|escape} + {name|escape} {description} {contact|obfuscate} {lastchange|rfc822date} @@ -249,14 +249,14 @@ {if(isdirectory, '', '' )} \n' -indexarchiveentry = '{type|escape} ' +indexarchiveentry = '{type|escape} ' index = index.tmpl urlparameter = '{separator}{name}={value|urlescape}' hiddenformentry = '' graph = graph.tmpl -breadcrumb = '> {name} ' +breadcrumb = '> {name|escape} ' diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/notfound.tmpl --- a/mercurial/templates/monoblue/notfound.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/notfound.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} {repo|escape}: Mercurial repository not found - - + + @@ -9,7 +9,7 @@

    The specified repository "{repo|escape}" is unknown, sorry.

    -

    Please go back to the main repository list page.

    +

    Please go back to the main repository list page.

    {footer} diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/search.tmpl --- a/mercurial/templates/monoblue/search.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/search.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} {repo|escape}: Search - - + + @@ -9,7 +9,7 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/shortlog.tmpl --- a/mercurial/templates/monoblue/shortlog.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/shortlog.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} {repo|escape}: shortlog - - + + @@ -9,7 +9,7 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/summary.tmpl --- a/mercurial/templates/monoblue/summary.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/summary.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} {repo|escape}: Summary - - + + @@ -9,7 +9,7 @@ @@ -42,27 +42,27 @@
    {lastchange|rfc822date}
    -

    Changes

    +

    Changes

    {shortlog} - +
    ......
    -

    Tags

    +

    Tags

    {tags} - +
    ......
    -

    Bookmarks

    +

    Bookmarks

    {bookmarks%bookmarkentry} - +
    ......
    diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/monoblue/tags.tmpl --- a/mercurial/templates/monoblue/tags.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/monoblue/tags.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,7 +1,7 @@ {header} {repo|escape}: Tags - - + + @@ -9,7 +9,7 @@ diff -r 8bd338c7c4c9 -r 7068089c95a2 mercurial/templates/paper/bookmarks.tmpl --- a/mercurial/templates/paper/bookmarks.tmpl Sat Jan 19 17:20:39 2013 -0600 +++ b/mercurial/templates/paper/bookmarks.tmpl Fri Feb 01 15:48:33 2013 -0600 @@ -1,9 +1,9 @@ {header} {repo|escape}: bookmarks + href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" /> + href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" /> @@ -11,22 +11,22 @@ @@ -35,7 +35,7 @@

    bookmarks

    -