Use ampersands (&) to delineate the response char in each choice.
ui.prompt() responses are now explicitly case insensitive. GUIs
that subclass ui can generate dialogs from the full choice names.
Use a temporary file name as target for a forced rename on Windows. The
target file name is not opened at any time; just renamed into and then
unlinked. Using a temporary instead of a static name is necessary since
otherwise a hg crash can leave the file lying around, blocking future
attempts at renaming.
The bzr converter maintains a child -> parents mapping and drop entries
whenever a child is read. It does not work with filemaps, getchangedfiles() may
be called more than once when filtered files belong to merge revisions.
getchanges() still works that way but it is not clear whether a similar issue
can arise when interacting with merges.
Tools like cvs2svn generate tags made of files coming from different revisions
from different branches. This is not supported by Mercurial, and it slows down
the conversion a lot. Ignore them.
See bacula@4082 for a sample.
Rev 428419380b9f introduced some sed -r tests, but -r is only available on GNU
sed, while BSD sed uses -E. Better to use old-style regular expressions, that
way the tests work on all sed variants.
This avoids hard-coding the '(none)' string in the JavaScript for each
style and avoids the {nonexisting|nonempty} hack which only works
since the template system don't complain about undefined variables.
At least subversion allows empty commit logs which, after conversion,
show up as empty fields in hgweb and don't allow selecting the
changeset. Using "nonempty" as filter, "(none)" is used to get
clickable links for empty commit messages.
It ensures that at least "(none)" is returned in case the argument
passed is None or ''. This is primarily useful to render empty
changelog messages for hgweb but may be useful for others, too.
The previous fix dropped unredirected_hdrs which contain authentication
headers. Removing them break POST request requiring authentication (like
unbundle calls to bitbucket.org).