[master] external diff/merge configuration needs serious rework
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Gordon Tyler | ||
QBzr |
Fix Released
|
High
|
Gordon Tyler | ||
Bug Description
There is several bug reports files already , which can be called duplicates, but the truth is: our internal model to configure and work with external diff and merge tools is just awful.
I've just trying to specify merge tool (winMerge) to trying to fix bug https:/
Regarding diff configuration: there is no clue where to enter command line, no Browse button to select application on windows where you have to provide always the full path to application with forward slashes (sic!).
We need refactor core functionality of external diff/merge tools to separate module and teach all clients (qconfig, qdiff, qconflicts, etc.) to use methods from this module.
Also I'd like to get rid support of extmerge. I don't understand what's the benefits of this plugin, but if really need something from there, we just need to merge extmerge to our codebase and adjust it to match our internal architecture.
Also I want to have registry of known diff and merge tools with required command-line options (for launching merge), so user don;t need to even bother to enter long command line and scripting arguments like %t %r etc., just select favorite tool and you're done.
Related branches
- Vincent Ladeuil: Approve
- Andrew Bennetts: Needs Fixing
- John A Meinel: Pending requested
- Martin Packman: Pending requested
-
Diff: 603 lines (+449/-12)12 files modifiedbzrlib/config.py (+19/-0)
bzrlib/help_topics/en/configuration.txt (+34/-0)
bzrlib/mergetools.py (+116/-0)
bzrlib/osutils.py (+33/-0)
bzrlib/tests/__init__.py (+1/-0)
bzrlib/tests/features.py (+6/-11)
bzrlib/tests/test_cmdline.py (+0/-1)
bzrlib/tests/test_config.py (+39/-0)
bzrlib/tests/test_mergetools.py (+167/-0)
bzrlib/tests/test_osutils.py (+22/-0)
doc/en/release-notes/bzr-2.4.txt (+6/-0)
doc/en/whats-new/whats-new-in-2.4.txt (+6/-0)
- Gary van der Merwe: Needs Fixing
-
Diff: 926 lines (+564/-205)5 files modifiedNEWS.txt (+2/-0)
lib/config.py (+254/-99)
lib/conflicts.py (+42/-106)
lib/ui_merge_config.py (+97/-0)
ui/merge_config.ui (+169/-0)
- Vincent Ladeuil: Needs Fixing
-
Diff: 291 lines (+128/-19)6 files modifiedbzrlib/builtins.py (+41/-13)
bzrlib/conflicts.py (+45/-1)
bzrlib/mergetools.py (+18/-5)
bzrlib/tests/test_mergetools.py (+15/-0)
doc/en/release-notes/bzr-2.4.txt (+4/-0)
doc/en/whats-new/whats-new-in-2.4.txt (+5/-0)
- Alexander Belchenko: Approve
-
Diff: 893 lines (+530/-204)5 files modifiedNEWS.txt (+2/-0)
lib/config.py (+276/-98)
lib/conflicts.py (+62/-106)
lib/ui_merge_config.py (+64/-0)
ui/merge_config.ui (+126/-0)
Changed in qbzr: | |
status: | New → Confirmed |
importance: | Undecided → High |
tags: | added: qconfig qconflicts qdiff |
description: | updated |
summary: |
- [master] qconfig: diff/merge configuration needs serious rework + [master] diff/merge configuration needs serious rework |
description: | updated |
summary: |
- [master] diff/merge configuration needs serious rework + [master] external diff/merge configuration needs serious rework |
tags: | added: extdiff |
Changed in bzr: | |
status: | New → Fix Released |
assignee: | nobody → Gordon Tyler (doxxx) |
milestone: | none → 2.4b1 |
Changed in qbzr: | |
assignee: | nobody → Gordon Tyler (doxxx) |
status: | Confirmed → Fix Committed |
milestone: | none → 0.21b2 |
Changed in bzr: | |
importance: | Undecided → Medium |
Changed in qbzr: | |
status: | Fix Committed → Fix Released |
I support integrating extmerge into qbzr, or atleast the functionality of it.
A registry of known 3way merge tools with their parameters makes sense, but we must still allow for unregistered merge tools to work without changing the qbzr code. Maybe we can choose a default order for the %o %b %t %r parameters.