- tags and branches with spaces are now properly parsed (issue 663)
- use --style instead of --template option of hg to include much more
output for the log command; use that to query the parent revisions of
a revision (if any) and also to query the actual changes of a revision
- make the log parser much more robust towards changes in the "header"
of the log output
- be explicit and expect only ssh-dss or ssh-rsa keys
- allow any character (even line breaks and whitespace) in the optional comment,
but shrink all of them to simple spaces (fixes issue 679)
- test the newly uploaded key against existing keys only by the base key data,
not the fully uploaded string (that might contain a changed comment line or
the like) to avoid duplicates; also only check the keys of the user for
duplicates, not all existing keys in the forge (if for whatever reason two
user accounts share a key)
Added a template for getting a controlled log; in parseLog, changed the regular
expression to match the pattern used in the template (fixes issues 507 and 508).
The diff parser code was rewritten for clarity and speed and now handles
a couple of ugly cornercases, like SVN's property change output and single
change chunks, much better. Since the path parsing was unified as well,
the SCM interface gained a new method `getPathStripLevel()` which determines
how many path components need to be shoven off a file name for the SCM
to form a valid path in the workspace (similar to patch(1)'s --strip option).
Fixes issue 627. Automated tests follow.
This works similar to git branch --contains REV; additionally give the
revision id and not some possibly symbolic name to the inBranches()
call when we determine the branches a commit is in.