Mercurial > hg
changeset 12247:bf2afc4bbbeb stable
merge with i18n-stable
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Sat, 11 Sep 2010 00:39:34 +0200 |
parents | 0f6164806283 (diff) 7853a550a61b (current diff) |
children | 81869cc892f2 4481f8a93c7a 2ca3a845f640 |
files | |
diffstat | 46 files changed, 281 insertions(+), 134 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/mercurial.spec Tue Sep 07 18:37:59 2010 -0300 +++ b/contrib/mercurial.spec Sat Sep 11 00:39:34 2010 +0200 @@ -1,4 +1,4 @@ -Summary: Mercurial -- a distributed SCM +Summary: A fast, lightweight Source Control Management system Name: mercurial Version: snapshot Release: 0 @@ -40,8 +40,8 @@ rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} -install contrib/hgk $RPM_BUILD_ROOT%{_bindir} -install contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir} +install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir} +install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir} bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d mkdir -p $bash_completion_dir @@ -52,11 +52,11 @@ install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir} -install contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir} -install contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir} +install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir} +install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir} mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d -install contrib/mergetools.hgrc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d/mergetools.rc +install -m 644 contrib/mergetools.hgrc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d/mergetools.rc %clean rm -rf $RPM_BUILD_ROOT @@ -66,15 +66,17 @@ %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi %doc %attr(644,root,root) %{_mandir}/man?/hg* %doc %attr(644,root,root) contrib/*.svg contrib/sample.hgrc -%{_sysconfdir}/bash_completion.d/mercurial.sh +%dir %{_datadir}/zsh/ +%dir %{_datadir}/zsh/site-functions/ %{_datadir}/zsh/site-functions/_mercurial +%dir %{_datadir}/emacs/site-lisp/ %{_datadir}/emacs/site-lisp/mercurial.el %{_datadir}/emacs/site-lisp/mq.el %{_bindir}/hg %{_bindir}/hgk %{_bindir}/hg-ssh %dir %{_sysconfdir}/bash_completion.d/ -%dir %{_datadir}/zsh/site-functions/ +%config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh %dir %{_sysconfdir}/mercurial %dir %{_sysconfdir}/mercurial/hgrc.d %config(noreplace) %{_sysconfdir}/mercurial/hgrc.d/mergetools.rc
--- a/contrib/win32/mercurial.iss Tue Sep 07 18:37:59 2010 -0300 +++ b/contrib/win32/mercurial.iss Sat Sep 11 00:39:34 2010 +0200 @@ -52,6 +52,10 @@ Source: contrib\hgk; DestDir: {app}/Contrib; DestName: hgk.tcl Source: contrib\xml.rnc; DestDir: {app}/Contrib Source: contrib\shrink-revlog.py; DestDir: {app}/Contrib +Source: contrib\mercurial.el; DestDir: {app}/Contrib +Source: contrib\mq.el; DestDir: {app}/Contrib +Source: contrib\hgweb.fcgi; DestDir: {app}/Contrib +Source: contrib\hgweb.wsgi; DestDir: {app}/Contrib Source: contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme Source: contrib\mergetools.hgrc; DestDir: {tmp}; Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini; Check: CheckFile; AfterInstall: ConcatenateFiles;
--- a/hgext/bookmarks.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/bookmarks.py Sat Sep 11 00:39:34 2010 +0200 @@ -18,7 +18,7 @@ By default, when several bookmarks point to the same changeset, they will all move forward together. It is possible to obtain a more git-like experience by adding the following configuration option to -your .hgrc:: +your configuration file:: [bookmarks] track.current = True @@ -451,7 +451,8 @@ ui.status(_("deleting remote bookmark %s\n") % b) new = '' # delete else: - ui.warn(_('bookmark %s does not exist on the local or remote repository!\n') % b) + ui.warn(_('bookmark %s does not exist on the local ' + 'or remote repository!\n') % b) return 2 old = rb.get(b, '') r = other.pushkey('bookmarks', b, old, new)
--- a/hgext/churn.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/churn.py Sat Sep 11 00:39:34 2010 +0200 @@ -129,8 +129,14 @@ aliases = repo.wjoin('.hgchurn') if aliases: for l in open(aliases, "r"): - alias, actual = l.split('=' in l and '=' or None, 1) - amap[alias.strip()] = actual.strip() + try: + alias, actual = l.split('=' in l and '=' or None, 1) + amap[alias.strip()] = actual.strip() + except ValueError: + l = l.strip() + if l: + ui.warn(_("skipping malformed alias: %s\n" % l)) + continue rate = countrate(ui, repo, amap, *pats, **opts).items() if not rate:
--- a/hgext/color.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/color.py Sat Sep 11 00:39:34 2010 +0200 @@ -29,7 +29,7 @@ function (aka ANSI escape codes). This module also provides the render_text function, which can be used to add effects to any text. -Default effects may be overridden from the .hgrc file:: +Default effects may be overridden from your configuration file:: [color] status.modified = blue bold underline red_background
--- a/hgext/convert/__init__.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/convert/__init__.py Sat Sep 11 00:39:34 2010 +0200 @@ -40,7 +40,7 @@ (given in a format understood by the source). If no destination directory name is specified, it defaults to the - basename of the source with '-hg' appended. If the destination + basename of the source with ``-hg`` appended. If the destination repository doesn't exist, it will be created. By default, all sources except Mercurial will use --branchsort. @@ -67,14 +67,17 @@ <source ID> <destination ID> If the file doesn't exist, it's automatically created. It's - updated on each commit copied, so convert-repo can be interrupted + updated on each commit copied, so :hg:`convert` can be interrupted and can be run repeatedly to copy new commits. - The [username mapping] file is a simple text file that maps each + The username mapping file is a simple text file that maps each source commit author to a destination commit author. It is handy for source SCMs that use unix logins to identify authors (eg: - CVS). One line per author mapping and the line format is: - srcauthor=whatever string you want + CVS). One line per author mapping and the line format is:: + + source author = destination author + + Empty lines and lines starting with a ``#`` are ignored. The filemap is a file that allows filtering and remapping of files and directories. Each line can contain one of the following @@ -86,25 +89,29 @@ rename path/to/source path/to/destination - Comment lines start with '#'. A specificed path matches if it + Comment lines start with ``#``. A specificed path matches if it equals the full relative name of a file or one of its parent - directories. The 'include' or 'exclude' directive with the longest - matching path applies, so line order does not matter. + directories. The ``include`` or ``exclude`` directive with the + longest matching path applies, so line order does not matter. - The 'include' directive causes a file, or all files under a + The ``include`` directive causes a file, or all files under a directory, to be included in the destination repository, and the exclusion of all other files and directories not explicitly - included. The 'exclude' directive causes files or directories to - be omitted. The 'rename' directive renames a file or directory if + included. The ``exclude`` directive causes files or directories to + be omitted. The ``rename`` directive renames a file or directory if is converted. To rename from a subdirectory into the root of the - repository, use '.' as the path to rename to. + repository, use ``.`` as the path to rename to. The splicemap is a file that allows insertion of synthetic history, letting you specify the parents of a revision. This is useful if you want to e.g. give a Subversion merge two parents, or graft two disconnected series of history together. Each entry contains a key, followed by a space, followed by one or two - comma-separated values. The key is the revision ID in the source + comma-separated values:: + + key parent1, parent2 + + The key is the revision ID in the source revision control system whose parents should be modified (same format as a key in .hg/shamap). The values are the revision IDs (in either the source or destination revision control system) that @@ -118,11 +125,15 @@ conjunction with a splicemap, it allows for a powerful combination to help fix even the most badly mismanaged repositories and turn them into nicely structured Mercurial repositories. The branchmap contains - lines of the form "original_branch_name new_branch_name". - "original_branch_name" is the name of the branch in the source - repository, and "new_branch_name" is the name of the branch is the - destination repository. This can be used to (for instance) move code - in one repository from "default" to a named branch. + lines of the form:: + + original_branch_name new_branch_name + + where "original_branch_name" is the name of the branch in the + source repository, and "new_branch_name" is the name of the branch + is the destination repository. No whitespace is allowed in the + branch names. This can be used to (for instance) move code in one + repository from "default" to a named branch. Mercurial Source ----------------
--- a/hgext/gpg.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/gpg.py Sat Sep 11 00:39:34 2010 +0200 @@ -227,7 +227,7 @@ data = node2txt(repo, n, sigver) sig = mygpg.sign(data) if not sig: - raise util.Abort(_("Error while signing")) + raise util.abort(_("error while signing")) sig = binascii.b2a_base64(sig) sig = sig.replace("\n", "") sigmessage += "%s %s %s\n" % (hexnode, sigver, sig)
--- a/hgext/hgk.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/hgk.py Sat Sep 11 00:39:34 2010 +0200 @@ -19,7 +19,7 @@ The :hg:`view` command will launch the hgk Tcl script. For this command to work, hgk must be in your search path. Alternately, you can specify -the path to hgk in your .hgrc file:: +the path to hgk in your configuration file:: [hgk] path=/location/of/hgk
--- a/hgext/keyword.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/keyword.py Sat Sep 11 00:39:34 2010 +0200 @@ -35,6 +35,9 @@ change history. The mechanism can be regarded as a convenience for the current user or for archive distribution. +Keywords expand to the changeset data pertaining to the latest change +relative to the working directory parent of each file. + Configuration is done in the [keyword], [keywordset] and [keywordmaps] sections of hgrc files.
--- a/hgext/mq.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/mq.py Sat Sep 11 00:39:34 2010 +0200 @@ -2083,7 +2083,7 @@ if not files: raise util.Abort(_('qfold requires at least one patch name')) if not q.check_toppatch(repo)[0]: - raise util.Abort(_('No patches applied')) + raise util.Abort(_('no patches applied')) q.check_localchanges(repo) message = cmdutil.logmessage(opts) @@ -2110,7 +2110,7 @@ pf = q.join(p) (patchsuccess, files, fuzz) = q.patch(repo, pf) if not patchsuccess: - raise util.Abort(_('Error folding patch %s') % p) + raise util.Abort(_('error folding patch %s') % p) patch.updatedir(ui, repo, files) if not message: @@ -2799,7 +2799,7 @@ else: repopath = cmdutil.findrepo(os.getcwd()) if not repopath: - raise util.Abort(_('There is no Mercurial repository here ' + raise util.Abort(_('there is no Mercurial repository here ' '(.hg not found)')) repo = hg.repository(ui, repopath) return qinit(ui, repo, True)
--- a/hgext/pager.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/pager.py Sat Sep 11 00:39:34 2010 +0200 @@ -5,7 +5,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. # -# To load the extension, add it to your .hgrc file: +# To load the extension, add it to your configuration file: # # [extension] # pager = @@ -46,7 +46,7 @@ If pager.attend is present, pager.ignore will be ignored. To ignore global commands like :hg:`version` or :hg:`help`, you have -to specify them in the global .hgrc +to specify them in your user configuration file. ''' import sys, os, signal, shlex, errno
--- a/hgext/transplant.py Tue Sep 07 18:37:59 2010 -0300 +++ b/hgext/transplant.py Sat Sep 11 00:39:34 2010 +0200 @@ -234,7 +234,7 @@ p2 = node self.log(user, date, message, p1, p2, merge=merge) self.ui.write(str(inst) + '\n') - raise util.Abort(_('Fix up the merge and run ' + raise util.Abort(_('fix up the merge and run ' 'hg transplant --continue')) else: files = None
--- a/mercurial/commands.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/commands.py Sat Sep 11 00:39:34 2010 +0200 @@ -846,7 +846,7 @@ lookup = r.lookup elif len(args) == 2: if not repo: - raise util.Abort(_("There is no Mercurial repository here " + raise util.Abort(_("there is no Mercurial repository here " "(.hg not found)")) rev1, rev2 = args r = repo.changelog @@ -1341,7 +1341,8 @@ if patchproblems: if ui.config('ui', 'patch'): ui.write(_(" (Current patch tool may be incompatible with patch," - " or misconfigured. Please check your .hgrc file)\n")) + " or misconfigured. Please check your configuration" + " file)\n")) else: ui.write(_(" Internal patcher failure, please report this error" " to http://mercurial.selenic.com/bts/\n")) @@ -1357,10 +1358,12 @@ if not cmdpath: if editor == 'vi': ui.write(_(" No commit editor set and can't find vi in PATH\n")) - ui.write(_(" (specify a commit editor in your .hgrc file)\n")) + ui.write(_(" (specify a commit editor in your configuration" + " file)\n")) else: ui.write(_(" Can't find editor '%s' in PATH\n") % editor) - ui.write(_(" (specify a commit editor in your .hgrc file)\n")) + ui.write(_(" (specify a commit editor in your configuration" + " file)\n")) problems += 1 # check username @@ -1369,7 +1372,7 @@ user = ui.username() except util.Abort, e: ui.write(" %s\n" % e) - ui.write(_(" (specify a username in your .hgrc file)\n")) + ui.write(_(" (specify a username in your configuration file)\n")) problems += 1 if not problems: @@ -2105,7 +2108,7 @@ """ if not repo and not source: - raise util.Abort(_("There is no Mercurial repository here " + raise util.Abort(_("there is no Mercurial repository here " "(.hg not found)")) hexfunc = ui.debugflag and hex or short @@ -2727,8 +2730,8 @@ Show definition of symbolic path name NAME. If no name is given, show definition of all available names. - Path names are defined in the [paths] section of - ``/etc/mercurial/hgrc`` and ``$HOME/.hgrc``. If run inside a + Path names are defined in the [paths] section of your + configuration file and in ``/etc/mercurial/hgrc``. If run inside a repository, ``.hg/hgrc`` is used, too. The path names ``default`` and ``default-push`` have a special @@ -2798,7 +2801,7 @@ try: revs = [other.lookup(rev) for rev in revs] except error.CapabilityError: - err = _("Other repository doesn't support revision lookup, " + err = _("other repository doesn't support revision lookup, " "so a rev cannot be specified.") raise util.Abort(err) @@ -2913,21 +2916,24 @@ ui.warn(_('not removing %s: file is untracked\n') % m.rel(f)) ret = 1 - def warn(files, reason): - for f in files: - ui.warn(_('not removing %s: file %s (use -f to force removal)\n') - % (m.rel(f), reason)) - ret = 1 - if force: remove, forget = modified + deleted + clean, added elif after: remove, forget = deleted, [] - warn(modified + added + clean, _('still exists')) + for f in modified + added + clean: + ui.warn(_('not removing %s: file still exists (use -f' + ' to force removal)\n') % m.rel(f)) + ret = 1 else: remove, forget = deleted + clean, [] - warn(modified, _('is modified')) - warn(added, _('has been marked for add')) + for f in modified: + ui.warn(_('not removing %s: file is modified (use -f' + ' to force removal)\n') % m.rel(f)) + ret = 1 + for f in added: + ui.warn(_('not removing %s: file has been marked for add (use -f' + ' to force removal)\n') % m.rel(f)) + ret = 1 for f in sorted(remove + forget): if ui.verbose or not m.exact(f): @@ -2963,11 +2969,11 @@ """redo merges or set/view the merge status of files Merges with unresolved conflicts are often the result of - non-interactive merging using the ``internal:merge`` hgrc setting, - or a command-line merge tool like ``diff3``. The resolve command - is used to manage the files involved in a merge, after :hg:`merge` - has been run, and before :hg:`commit` is run (i.e. the working - directory must have two parents). + non-interactive merging using the ``internal:merge`` configuration + setting, or a command-line merge tool like ``diff3``. The resolve + command is used to manage the files involved in a merge, after + :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the + working directory must have two parents). The resolve command can be used in the following ways:
--- a/mercurial/context.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/context.py Sat Sep 11 00:39:34 2010 +0200 @@ -198,7 +198,7 @@ if match(fn): yield fn for fn in sorted(fset): - if match.bad(fn, _('No such file in rev %s') % self) and match(fn): + if match.bad(fn, _('no such file in rev %s') % self) and match(fn): yield fn def sub(self, path):
--- a/mercurial/dagparser.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/dagparser.py Sat Sep 11 00:39:34 2010 +0200 @@ -268,7 +268,7 @@ s += c i += 1 c = nextch() - raise util.Abort("invalid character in dag description: %s..." % s) + raise util.Abort(_("invalid character in dag description: %s...") % s) def dagtextlines(events, addspaces=True, @@ -296,14 +296,14 @@ # sanity check if r != wantr: - raise util.Abort("Expected id %i, got %i" % (wantr, r)) + raise util.Abort(_("expected id %i, got %i") % (wantr, r)) if not ps: ps = [-1] else: for p in ps: if p >= r: - raise util.Abort("Parent id %i is larger than " - "current id %i" % (p, r)) + raise util.Abort(_("parent id %i is larger than " + "current id %i") % (p, r)) wantr += 1 # new root?
--- a/mercurial/dispatch.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/dispatch.py Sat Sep 11 00:39:34 2010 +0200 @@ -424,9 +424,9 @@ cmd, func, args, options, cmdoptions = _parse(lui, args) if options["config"]: - raise util.Abort(_("Option --config may not be abbreviated!")) + raise util.Abort(_("option --config may not be abbreviated!")) if options["cwd"]: - raise util.Abort(_("Option --cwd may not be abbreviated!")) + raise util.Abort(_("option --cwd may not be abbreviated!")) if options["repository"]: raise util.Abort(_( "Option -R has to be separated from other options (e.g. not -qR) "
--- a/mercurial/hbisect.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/hbisect.py Sat Sep 11 00:39:34 2010 +0200 @@ -63,7 +63,7 @@ if not ancestors: # now we're confused if len(state['bad']) == 1 and len(state['good']) == 1: raise util.Abort(_("starting revisions are not directly related")) - raise util.Abort(_("Inconsistent state, %s:%s is good and bad") + raise util.Abort(_("inconsistent state, %s:%s is good and bad") % (badrev, short(bad))) # build children dict
--- a/mercurial/help.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/help.py Sat Sep 11 00:39:34 2010 +0200 @@ -83,7 +83,7 @@ return loader helptable = [ - (["config"], _("Configuration Files"), loaddoc('config')), + (["config", "hgrc"], _("Configuration Files"), loaddoc('config')), (["dates"], _("Date Formats"), loaddoc('dates')), (["patterns"], _("File Name Patterns"), loaddoc('patterns')), (['environment', 'env'], _('Environment Variables'),
--- a/mercurial/help/diffs.txt Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/help/diffs.txt Sat Sep 11 00:39:34 2010 +0200 @@ -25,5 +25,5 @@ To make Mercurial produce the git extended diff format, use the --git option available for many commands, or set 'git = True' in the [diff] -section of your hgrc. You do not need to set this option when -importing diffs in this format or using them in the mq extension. +section of your configuration file. You do not need to set this option +when importing diffs in this format or using them in the mq extension.
--- a/mercurial/help/environment.txt Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/help/environment.txt Sat Sep 11 00:39:34 2010 +0200 @@ -8,7 +8,7 @@ HGEDITOR This is the name of the editor to run when committing. See EDITOR. - (deprecated, use .hgrc) + (deprecated, use configuration file) HGENCODING This overrides the default locale setting detected by Mercurial. @@ -29,13 +29,13 @@ will be executed with three arguments: local file, remote file, ancestor file. - (deprecated, use .hgrc) + (deprecated, use configuration file) HGRCPATH - A list of files or directories to search for hgrc files. Item - separator is ":" on Unix, ";" on Windows. If HGRCPATH is not set, - platform default search path is used. If empty, only the .hg/hgrc - from the current repository is read. + A list of files or directories to search for configuration + files. Item separator is ":" on Unix, ";" on Windows. If HGRCPATH + is not set, platform default search path is used. If empty, only + the .hg/hgrc from the current repository is read. For each element in HGRCPATH: @@ -43,9 +43,9 @@ - otherwise, the file itself will be added HGPLAIN - When set, this disables any options in .hgrc that might change - Mercurial's default output. This includes encoding, defaults, - verbose mode, debug mode, quiet mode, tracebacks, and + When set, this disables any configuration settings that might + change Mercurial's default output. This includes encoding, + defaults, verbose mode, debug mode, quiet mode, tracebacks, and localization. This can be useful when scripting against Mercurial in the face of existing user configuration. @@ -57,12 +57,12 @@ available values will be considered in this order: - HGUSER (deprecated) - - hgrc files from the HGRCPATH + - configuration files from the HGRCPATH - EMAIL - interactive prompt - LOGNAME (with ``@hostname`` appended) - (deprecated, use .hgrc) + (deprecated, use configuration file) EMAIL May be used as the author of a commit; see HGUSER.
--- a/mercurial/help/extensions.txt Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/help/extensions.txt Sat Sep 11 00:39:34 2010 +0200 @@ -11,9 +11,9 @@ Mercurial. It is thus up to the user to activate extensions as needed. -To enable the "foo" extension, either shipped with Mercurial or in -the Python search path, create an entry for it in your hgrc, like -this:: +To enable the "foo" extension, either shipped with Mercurial or in the +Python search path, create an entry for it in your configuration file, +like this:: [extensions] foo = @@ -23,8 +23,8 @@ [extensions] myfeature = ~/.hgext/myfeature.py -To explicitly disable an extension enabled in an hgrc of broader -scope, prepend its path with !:: +To explicitly disable an extension enabled in a configuration file of +broader scope, prepend its path with !:: [extensions] # disabling extension bar residing in /path/to/extension/bar.py
--- a/mercurial/help/urls.txt Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/help/urls.txt Sat Sep 11 00:39:34 2010 +0200 @@ -35,11 +35,11 @@ Host * Compression yes - Alternatively specify "ssh -C" as your ssh command in your hgrc or - with the --ssh command line option. + Alternatively specify "ssh -C" as your ssh command in your + configuration file or with the --ssh command line option. -These URLs can all be stored in your hgrc with path aliases under the -[paths] section like so:: +These URLs can all be stored in your configuration file with path +aliases under the [paths] section like so:: [paths] alias1 = URL1
--- a/mercurial/localrepo.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/localrepo.py Sat Sep 11 00:39:34 2010 +0200 @@ -1199,7 +1199,7 @@ cg = remote.changegroup(fetch, 'pull') else: if not remote.capable('changegroupsubset'): - raise util.Abort(_("Partial pull cannot be done because " + raise util.Abort(_("partial pull cannot be done because " "other repository doesn't support " "changegroupsubset.")) cg = remote.changegroupsubset(fetch, heads, 'pull')
--- a/mercurial/mail.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/mail.py Sat Sep 11 00:39:34 2010 +0200 @@ -36,7 +36,7 @@ s = smtplib.SMTP(local_hostname=local_hostname) mailhost = ui.config('smtp', 'host') if not mailhost: - raise util.Abort(_('no [smtp]host in hgrc - cannot send mail')) + raise util.Abort(_('smtp.host not configured - cannot send mail')) mailport = int(ui.config('smtp', 'port', 25)) ui.note(_('sending mail: smtp host %s, port %s\n') % (mailhost, mailport))
--- a/mercurial/match.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/match.py Sat Sep 11 00:39:34 2010 +0200 @@ -7,6 +7,7 @@ import re import util +from i18n import _ class match(object): def __init__(self, root, cwd, patterns, include=[], exclude=[], @@ -214,8 +215,8 @@ try: re.compile('(?:%s)' % _regex(k, p, tail)) except re.error: - raise util.Abort("invalid pattern (%s): %s" % (k, p)) - raise util.Abort("invalid pattern") + raise util.Abort(_("invalid pattern (%s): %s") % (k, p)) + raise util.Abort(_("invalid pattern")) def _normalize(names, default, root, cwd): pats = []
--- a/mercurial/patch.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/patch.py Sat Sep 11 00:39:34 2010 +0200 @@ -1284,7 +1284,7 @@ if eolmode is None: eolmode = ui.config('patch', 'eol', 'strict') if eolmode.lower() not in eolmodes: - raise util.Abort(_('Unsupported line endings type: %s') % eolmode) + raise util.Abort(_('unsupported line endings type: %s') % eolmode) eolmode = eolmode.lower() try:
--- a/mercurial/simplemerge.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/simplemerge.py Sat Sep 11 00:39:34 2010 +0200 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # Copyright (C) 2004, 2005 Canonical Ltd # # This program is free software; you can redistribute it and/or modify
--- a/mercurial/verify.py Tue Sep 07 18:37:59 2010 -0300 +++ b/mercurial/verify.py Sat Sep 11 00:39:34 2010 +0200 @@ -199,7 +199,7 @@ for f, f2, size in repo.store.datafiles(): if not f: err(None, _("cannot decode filename '%s'") % f2) - elif size > 0: + elif size > 0 or not revlogv1: storefiles.add(f) files = sorted(set(filenodes) | set(filelinkrevs))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/revlog-formatv0.py Sat Sep 11 00:39:34 2010 +0200 @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# Copyright 2010 Intevation GmbH +# Author(s): +# Thomas Arendsen Hein <thomas@intevation.de> +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. + +"""Create a Mercurial repository in revlog format 0 + +changeset: 0:a1ef0b125355 +tag: tip +user: user +date: Thu Jan 01 00:00:00 1970 +0000 +files: empty +description: +empty file +""" + +import os, sys + +files = [ + ('formatv0/.hg/00changelog.i', + '000000000000004400000000000000000000000000000000000000' + '000000000000000000000000000000000000000000000000000000' + '0000a1ef0b125355d27765928be600cfe85784284ab3'), + ('formatv0/.hg/00changelog.d', + '756163613935613961356635353036303562366138343738336237' + '61623536363738616436356635380a757365720a3020300a656d70' + '74790a0a656d7074792066696c65'), + ('formatv0/.hg/00manifest.i', + '000000000000003000000000000000000000000000000000000000' + '000000000000000000000000000000000000000000000000000000' + '0000aca95a9a5f550605b6a84783b7ab56678ad65f58'), + ('formatv0/.hg/00manifest.d', + '75656d707479006238306465356431333837353835343163356630' + '35323635616431343461623966613836643164620a'), + ('formatv0/.hg/data/empty.i', + '000000000000000000000000000000000000000000000000000000' + '000000000000000000000000000000000000000000000000000000' + '0000b80de5d138758541c5f05265ad144ab9fa86d1db'), + ('formatv0/.hg/data/empty.d', + ''), +] + +def makedirs(name): + """recursive directory creation""" + parent = os.path.dirname(name) + if parent: + makedirs(parent) + os.mkdir(name) + +makedirs(os.path.join(*'formatv0/.hg/data'.split('/'))) + +for name, data in files: + f = open(name, 'wb') + f.write(data.decode('hex')) + f.close() + +sys.exit(0)
--- a/tests/test-cat.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-cat.out Sat Sep 11 00:39:34 2010 +0200 @@ -4,5 +4,5 @@ 0 0 0 -a: No such file in rev 03f6b0774996 +a: no such file in rev 03f6b0774996 1
--- a/tests/test-churn Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-churn Sat Sep 11 00:39:34 2010 +0200 @@ -38,7 +38,9 @@ echo % churn with aliases cat > ../aliases <<EOF user1 alias1 + user3 alias3 +not-an-alias EOF hg churn --aliases ../aliases echo % churn with .hgchurn
--- a/tests/test-churn.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-churn.out Sat Sep 11 00:39:34 2010 +0200 @@ -16,10 +16,12 @@ user2 2 *************************************************************** user1 1 ******************************** % churn with aliases +skipping malformed alias: not-an-alias alias3 3 ************************************************************** alias1 3 ************************************************************** user2 2 ***************************************** % churn with .hgchurn +skipping malformed alias: not-an-alias alias3 3 ************************************************************** alias1 3 ************************************************************** user2 2 *****************************************
--- a/tests/test-convert-cvs Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-convert-cvs Sat Sep 11 00:39:34 2010 +0200 @@ -134,6 +134,7 @@ echo % commit new file revisions with some fuzz cd src +sleep 1 echo f >> a cvscall -q commit -mfuzzy . | grep '<--' |\ sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
--- a/tests/test-convert.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-convert.out Sat Sep 11 00:39:34 2010 +0200 @@ -24,7 +24,7 @@ understood by the source). If no destination directory name is specified, it defaults to the basename - of the source with '-hg' appended. If the destination repository doesn't + of the source with "-hg" appended. If the destination repository doesn't exist, it will be created. By default, all sources except Mercurial will use --branchsort. Mercurial @@ -48,13 +48,17 @@ <source ID> <destination ID> If the file doesn't exist, it's automatically created. It's updated on - each commit copied, so convert-repo can be interrupted and can be run + each commit copied, so "hg convert" can be interrupted and can be run repeatedly to copy new commits. - The [username mapping] file is a simple text file that maps each source + The username mapping file is a simple text file that maps each source commit author to a destination commit author. It is handy for source SCMs that use unix logins to identify authors (eg: CVS). One line per author - mapping and the line format is: srcauthor=whatever string you want + mapping and the line format is: + + source author = destination author + + Empty lines and lines starting with a "#" are ignored. The filemap is a file that allows filtering and remapping of files and directories. Each line can contain one of the following directives: @@ -65,40 +69,48 @@ rename path/to/source path/to/destination - Comment lines start with '#'. A specificed path matches if it equals the + Comment lines start with "#". A specificed path matches if it equals the full relative name of a file or one of its parent directories. The - 'include' or 'exclude' directive with the longest matching path applies, + "include" or "exclude" directive with the longest matching path applies, so line order does not matter. - The 'include' directive causes a file, or all files under a directory, to + The "include" directive causes a file, or all files under a directory, to be included in the destination repository, and the exclusion of all other - files and directories not explicitly included. The 'exclude' directive - causes files or directories to be omitted. The 'rename' directive renames + files and directories not explicitly included. The "exclude" directive + causes files or directories to be omitted. The "rename" directive renames a file or directory if is converted. To rename from a subdirectory into - the root of the repository, use '.' as the path to rename to. + the root of the repository, use "." as the path to rename to. The splicemap is a file that allows insertion of synthetic history, letting you specify the parents of a revision. This is useful if you want to e.g. give a Subversion merge two parents, or graft two disconnected series of history together. Each entry contains a key, followed by a - space, followed by one or two comma-separated values. The key is the - revision ID in the source revision control system whose parents should be - modified (same format as a key in .hg/shamap). The values are the revision - IDs (in either the source or destination revision control system) that - should be used as the new parents for that node. For example, if you have - merged "release-1.0" into "trunk", then you should specify the revision on - "trunk" as the first parent and the one on the "release-1.0" branch as the - second. + space, followed by one or two comma-separated values: + + key parent1, parent2 + + The key is the revision ID in the source revision control system whose + parents should be modified (same format as a key in .hg/shamap). The + values are the revision IDs (in either the source or destination revision + control system) that should be used as the new parents for that node. For + example, if you have merged "release-1.0" into "trunk", then you should + specify the revision on "trunk" as the first parent and the one on the + "release-1.0" branch as the second. The branchmap is a file that allows you to rename a branch when it is being brought in from whatever external repository. When used in conjunction with a splicemap, it allows for a powerful combination to help fix even the most badly mismanaged repositories and turn them into nicely structured Mercurial repositories. The branchmap contains lines of the - form "original_branch_name new_branch_name". "original_branch_name" is the - name of the branch in the source repository, and "new_branch_name" is the - name of the branch is the destination repository. This can be used to (for - instance) move code in one repository from "default" to a named branch. + form: + + original_branch_name new_branch_name + + where "original_branch_name" is the name of the branch in the source + repository, and "new_branch_name" is the name of the branch is the + destination repository. No whitespace is allowed in the branch names. This + can be used to (for instance) move code in one repository from "default" + to a named branch. Mercurial Source ----------------
--- a/tests/test-dispatch.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-dispatch.out Sat Sep 11 00:39:34 2010 +0200 @@ -32,6 +32,6 @@ use "hg -v help cat" to show global options % [defaults] a -a: No such file in rev 000000000000 +a: no such file in rev 000000000000 % no repo abort: There is no Mercurial repository here (.hg not found)!
--- a/tests/test-globalopts.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-globalopts.out Sat Sep 11 00:39:34 2010 +0200 @@ -56,8 +56,8 @@ %% earlygetopt short option without following space 0:b6c483daf290 %% earlygetopt with illegal abbreviations -abort: Option --config may not be abbreviated! -abort: Option --cwd may not be abbreviated! +abort: option --config may not be abbreviated! +abort: option --cwd may not be abbreviated! abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo! abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo! abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
--- a/tests/test-identify.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-identify.out Sat Sep 11 00:39:34 2010 +0200 @@ -1,5 +1,5 @@ % no repo -abort: There is no Mercurial repository here (.hg not found) +abort: there is no Mercurial repository here (.hg not found) % create repo adding a % basic id usage
--- a/tests/test-import-eol.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-import-eol.out Sat Sep 11 00:39:34 2010 +0200 @@ -2,7 +2,7 @@ adding a % invalid eol applying eol.diff -abort: Unsupported line endings type: LFCR +abort: unsupported line endings type: LFCR % force LF applying eol.diff 'a\nyyyy\ncc\n\nd\ne'
--- a/tests/test-install.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-install.out Sat Sep 11 00:39:34 2010 +0200 @@ -14,5 +14,5 @@ Checking commit editor... Checking username... no username supplied (see "hg help config") - (specify a username in your .hgrc file) + (specify a username in your configuration file) 1 problems detected, please check your install!
--- a/tests/test-mq.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-mq.out Sat Sep 11 00:39:34 2010 +0200 @@ -99,7 +99,7 @@ [0;32;1mA B[0m [0;32;1mA series[0m % init --mq without repo -abort: There is no Mercurial repository here (.hg not found) +abort: there is no Mercurial repository here (.hg not found) % init --mq with repo path ok % init --mq with nonexistent directory
--- a/tests/test-remove Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-remove Sat Sep 11 00:39:34 2010 +0200 @@ -2,6 +2,7 @@ remove() { hg rm $@ + echo "exit code: $?" hg st # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5 find . -name .hg -prune -o -type f -print | sort
--- a/tests/test-remove.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-remove.out Sat Sep 11 00:39:34 2010 +0200 @@ -1,83 +1,100 @@ % file not managed not removing foo: file is untracked +exit code: 1 ? foo ./foo 0 files updated, 0 files merged, 0 files removed, 0 files unresolved % 00 state added, options none not removing bar: file has been marked for add (use -f to force removal) +exit code: 1 A bar ./bar ./foo 0 files updated, 0 files merged, 0 files removed, 0 files unresolved % 01 state clean, options none +exit code: 0 R foo ? bar ./bar 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 02 state modified, options none not removing foo: file is modified (use -f to force removal) +exit code: 1 M foo ? bar ./bar ./foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 03 state missing, options none +exit code: 0 R foo ? bar ./bar 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 10 state added, options -f +exit code: 0 ? bar ./bar ./foo 0 files updated, 0 files merged, 0 files removed, 0 files unresolved % 11 state clean, options -f +exit code: 0 R foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 12 state modified, options -f +exit code: 0 R foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 13 state missing, options -f +exit code: 0 R foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 20 state added, options -A not removing bar: file still exists (use -f to force removal) +exit code: 1 A bar ./bar ./foo 0 files updated, 0 files merged, 0 files removed, 0 files unresolved % 21 state clean, options -A not removing foo: file still exists (use -f to force removal) +exit code: 1 ? bar ./bar ./foo 0 files updated, 0 files merged, 0 files removed, 0 files unresolved % 22 state modified, options -A not removing foo: file still exists (use -f to force removal) +exit code: 1 M foo ? bar ./bar ./foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 23 state missing, options -A +exit code: 0 R foo ? bar ./bar 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 30 state added, options -Af +exit code: 0 ? bar ./bar ./foo 0 files updated, 0 files merged, 0 files removed, 0 files unresolved % 31 state clean, options -Af +exit code: 0 R foo ./foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 32 state modified, options -Af +exit code: 0 R foo ./foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 33 state missing, options -Af +exit code: 0 R foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved adding test/bar @@ -85,6 +102,7 @@ % dir, options none removing test/bar removing test/foo +exit code: 0 R test/bar R test/foo ./foo @@ -92,6 +110,7 @@ % dir, options -f removing test/bar removing test/foo +exit code: 0 R test/bar R test/foo ./foo @@ -99,6 +118,7 @@ % dir, options -A not removing test/foo: file still exists (use -f to force removal) removing test/bar +exit code: 1 R test/bar ./foo ./test/foo @@ -106,6 +126,7 @@ % dir, options -Af removing test/bar removing test/foo +exit code: 0 R test/bar R test/foo ./foo
--- a/tests/test-revert.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-revert.out Sat Sep 11 00:39:34 2010 +0200 @@ -37,7 +37,7 @@ %% should say file not managed file not managed: q %% should say file not found -notfound: No such file in rev 095eacd0c0d7 +notfound: no such file in rev 095eacd0c0d7 A z ? e.orig %% should add a, remove d, forget z
--- a/tests/test-transplant.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-transplant.out Sat Sep 11 00:39:34 2010 +0200 @@ -112,14 +112,14 @@ Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file foo.rej patch failed to apply -abort: Fix up the merge and run hg transplant --continue +abort: fix up the merge and run hg transplant --continue 1 files updated, 0 files merged, 0 files removed, 0 files unresolved applying a1e30dd1b8e7 patching file foo Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file foo.rej patch failed to apply -abort: Fix up the merge and run hg transplant --continue +abort: fix up the merge and run hg transplant --continue a1e30dd1b8e7 transplanted as f1563cf27039 skipping already applied revision 1:a1e30dd1b8e7 applying 1739ac5f6139 @@ -166,7 +166,7 @@ created new head file b1 already exists 1 out of 1 hunks FAILED -- saving rejects to file b1.rej -abort: Fix up the merge and run hg transplant --continue +abort: fix up the merge and run hg transplant --continue filtering applying 348b36d0b6a5 patch failed to apply
--- a/tests/test-verify Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-verify Sat Sep 11 00:39:34 2010 +0200 @@ -48,4 +48,12 @@ echo % verify hg verify +cd .. + +echo % test revlog format 0 + +"$TESTDIR/revlog-formatv0.py" +cd formatv0 +hg verify + exit 0
--- a/tests/test-verify.out Tue Sep 07 18:37:59 2010 -0300 +++ b/tests/test-verify.out Sat Sep 11 00:39:34 2010 +0200 @@ -50,3 +50,10 @@ 1 warnings encountered! 1 integrity errors encountered! (first damaged changeset appears to be 0) +% test revlog format 0 +repository uses revlog format 0 +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 1 changesets, 1 total revisions