Some diff/merge tool can handle multiple files but bzr does not support it

Bug #490212 reported by methane
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Bazaar
In Progress
Low
Gary van der Merwe

Bug Description

Some diff viewer can show multiple pair of files with tabbed window (ex. WinMerge).

But when bzr diff --using=WinMergeU, bzr shows one pair of file and when it closed,
next pair is shown.
(qdiff and extmerge have same restriction.)

Related branches

Revision history for this message
Martin Pool (mbp) wrote :

Thanks, that would be good to fix.

Can you tell us the syntax to run WinMerge on multiple files?

Changed in bzr:
importance: Undecided → Low
status: New → Confirmed
summary: - Some diff/merge tool can handle multiple files but bzr not support it.
+ Some diff/merge tool can handle multiple files but bzr does not support
+ it
Revision history for this message
methane (songofacandy) wrote : Re: [Bug 490212] Re: Some diff/merge tool can handle multiple files but bzr not support it.

"/s" option.
WinMergeU.exe /s old1.txt new1.txt # new process starts.
WinMergeU.exe /s old2.txt new2.txt # new process shutdown soon and
diff is shown in new tab of previous window.

When all tab closed, first process exits.

--
Naoki INADA <email address hidden>

Revision history for this message
Gary van der Merwe (garyvdm) wrote :

I have started work on this.

I would like comments on the following design issue:

My patch will result in 2 modes:
* CLI mode, like the current behavior.
* A new GUI mode, where :
    - the sub process for each file are launched simultaneously (as per INADA's description.)
    - the temp files should only be deleted once *all* sub processes are closed.
    - possible idea that I want to test: were a file has been add or removed, pass a empty file to the diff app.

How do we control when we get what behavior? I have 2 ideas:
1. add a new command line option: "--using-gui".
2. Allow one to secifiy in the config files which apps us the gui mode.

I going to start out by implementing option 1 because I think it will be easier, but I would like other peoples comments.

Changed in bzr:
assignee: nobody → Gary van der Merwe (garyvdm)
status: Confirmed → In Progress
Revision history for this message
Gordon Tyler (doxxx) wrote :

I trigger diff with an external tool mostly through the Explorer GUI, qcommit or qlog, where I wouldn't have the opportunity to specify the command-line option. So I think a GUI option will be required, but the command-line option is a good first step to make sure stuff works first.

I think the option should be described/named in terms of showing diffs one-at-a-time or all-at-once, since that's what it does. "GUI mode" vs "CLI mode" won't make much sense to most users.

Revision history for this message
Gary van der Merwe (garyvdm) wrote :

Meld did not work as expected. Rather than working as INADA described for winmerge, you can pass a list of files to diff. So in order to handle both ways, I've come up with this sintax:

To launch so that process are launched simultaneously:
bzr diff --using "winmerge.exe &"

or to launch process with a list of all files:
bzr diff --using "meld [--diff @old_path @new_path]"
or
bzr diff --using "meld [--diff]"

WIP branch linked. Still need to do tests and documentation.

Revision history for this message
Dr Al (abudden) wrote :

The open source python diff tool diffuse (http://diffuse.sourceforge.net) also supports multiple files in different tabs.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.