darcs

Issue 2484 command to call external merge tool (perhaps, darcs mark-conflicts option)

Title command to call external merge tool (perhaps, darcs mark-conflicts option)
Priority feature Status unknown
Milestone Resolved in
Superseder Nosy List imz, jaredj
Assigned To
Topics Conflicts, ProbablyEasy

Created on 2015-12-24.01:28:33 by imz, last changed 2016-03-12.21:28:15 by bfrk.

Messages
msg18883 (view) Author: imz Date: 2015-12-24.01:28:29
1. Summarise the issue (what were doing, what went wrong?)

Now "darcs mark-conflicts" allows to re-do the job that is done
automatically by "pull" (or "unsuspend" or "apply" or similar commands)
whenever one wants to. (Might be useful if the working directory has
been reverted.)

However, marking is just one way to treat the conflicts after "pull";
another one is with --external-merge.

"darcs mark-conflicts" does not have this option; so, it's not able to
re-do the job of treating the conflicts in this mode.

2. What behaviour were you expecting instead?

There is a command that allows one to treat the conflicts in any mode
(marking as well as calling an external merge tool) whenever one wants
to. (E.g., after reverting the working dir.)

Git has "git mergetool" to do this whenever one wants, even if one did
forget to set such an option for "merge" etc.

So I suggest to add such an option to "darcs mark-conflicts" (it's
logical as explained in this bug report, though the name would become a
bit misleading.)

3. What darcs version are you using? (Try: darcs --exact-version)

$ darcs --exact-version
darcs compiled on May 26 2015, at 04:18:50

Context:

[TAG 2.10.0
Guillaume Hoffmann <guillaumh@gmail.com>**20150419200705
 Ignore-this: 6d154c9aa51c8328c777ca9a2c223125
] 

Compiled with:

HTTP-4000.2.19
array-0.4.0.1
attoparsec-0.12.1.3
base-4.6.0.0
base16-bytestring-0.1.1.6
binary-0.7.3.0
bytestring-0.10.0.0
containers-0.5.0.0
cryptohash-0.11.6
data-ordlist-0.4.7.0
dataenc-0.14.0.4
directory-1.2.0.0
filepath-1.3.0.1
hashable-1.2.3.1
haskeline-0.7.2.1
html-1.0.1.2
mmap-0.5.8
mtl-2.2.1
network-2.4.2.3
old-locale-1.0.0.5
old-time-1.1.0.1
parsec-3.1.8
process-1.1.0.2
random-1.1
regex-applicative-0.3.1
regex-compat-tdfa-0.95.1.4
tar-0.4.0.1
terminfo-0.3.2.5
text-1.2.0.4
time-1.4.0.1
transformers-0.4.2.0
transformers-compat-0.4.0.4
unix-2.6.0.0
unix-compat-0.4.1.4
utf8-string-0.3.7
vector-0.10.0.1
zip-archive-0.2.3.7
zlib-0.5.4.0
msg19077 (view) Author: bfrk Date: 2016-03-12.21:28:14
I agree that this would be nice. Even nicer (IMHO) would be an
interactive conflict resolution mode where, for each unresolved
conflict, darcs presents me the conflicting (primitive) changes. The
possible actions are:

 * select one of the changes (discarding the others)

 * select none (i.e. discard all, what you get when you revert the markup)

 * markup the conflict for later manual merging; open an editor (like
hunk edit, but with possibly more than one alternative, similar to the
standard markup)

 * resolve with an external tool (which one should be configured with an
environment variable).

This should not only be in markup-conflicts, but also in push and pull,
so when a pull leads to conflicts I can resolve them right away.

See also issue2495.
History
Date User Action Args
2015-12-24 01:28:33imzcreate
2016-03-12 21:28:15bfrksetmessages: + msg19077