Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34548
merge: add merge action 'pr' to rename files during update
Add a new merge action to handle a path conflict by renaming the conflicting
file to a safe name.
The rename is just to avoid problems on the filesystem. The conflict is still
considered unresolved until the user marks the original path as resolved.
Differential Revision: https://phab.mercurial-scm.org/D777
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34547
merge: add merge action 'p' to record path conflicts during update
Add a new merge action to record path conflicts. A status message is
printed, and the path conflict is added to the merge state.
Differential Revision: https://phab.mercurial-scm.org/D776
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34546
commands: update the resolve command to handle path conflicts
The resolve command must support displaying path conflicts and marking
them as resolved or unresolved.
Differential Revision: https://phab.mercurial-scm.org/D775
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34545
merge: add pathconflict merge state
Path conflicts that occur during merges are represented by 'pu' (unresolved)
and 'pr' (resolved) records in the merge state. These are stored on disk
in 'P' records.
Differential Revision: https://phab.mercurial-scm.org/D774
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34544
tests: add a test demonstrating basic path conflict failures
Differential Revision: https://phab.mercurial-scm.org/D773
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34543
scmutil: handle conflicting files and dirs in origbackuppath
When ui.origbackuppath is set, .orig files are stored outside of the working
copy. However conflicts can occur when files or directories end up having the
same name. These conflicts cause Mercurial to abort, even if they've been
created as a result of different backups.
Make sure we always replace files or directories in the origbackuppath if
they conflict with another file or directory.
Test Plan:
Add new unit test for conflicting paths.
Differential Revision: https://phab.mercurial-scm.org/D680
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Oct 2017 12:21:50 +0100] rev 34542
extdata: show debug message if external command exits with non-zero status
This isn't fatal because it's quite common for grep to exit with 1. Thanks to
Foozy for spotting this.
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Sep 2017 08:57:50 +0100] rev 34541
templatekw: allow accessing to nested namespace item by its template name
Since we have the dot operator, it makes more sense to write
{namespaces.tags % "{tag}"}
instead of
{namespaces.tags % "{name}"}
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Sep 2017 08:50:24 +0100] rev 34540
templatekw: get rid of temporary dicts from shownamespaces()
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:53:05 +0900] rev 34539
templatekw: rename peerpaths to peerurls per naming convention (BC)
Since each element is called as "url", the template keyword should be named
as "<whatever>urls".
{peerurls} is now stabilized.
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:31:01 +0900] rev 34538
templatekw: make experimental {peerpaths} return a single-level dict (BC)
This was planned as in c0d8de2724ce, "{peerpaths.default.pushurl} will be
translated to peerpaths['default'].makemap()['pushurl'], which means
{peerpaths} should be a single-level dict and sub-options should be
makemap()-ed."
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:49:05 +0900] rev 34537
templatekw: fix scope of peerpath url bound to generator
I had to explicitly bind 'd' to the generator. Otherwise, the last 'd' would
be used.