More comprehensive Diff support

Bug #438722 reported by Rob Walker
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Bazaar Explorer
Confirmed
Wishlist
Unassigned

Bug Description

(I believe this should go in the wishlist, but I didn't see anywhere in Launchpad where this can be explicit...)

The Diff button is like "bzr diff" on the command line by showing the changes since the last commit. But much of software development requires seeing differences in various branches (especially with distributed version control) at their various stages, not just the local most recent changes. It would be a useful feature if the Diff button was a dropdown-tool, much like the other buttons, where the user can choose any two local or remote locations to compare using Diff.

For example, here would be some of the menu options:

"Show most recent changes" (i.e. what it does currently)
"Compare with another location or URL"
"Compare any two locations or URLs"

...where the last two options have the dialog allow to specify the revno for each side of the diff, plus the ability to choose a local branch or a remote URL for the other location. Also, the "Compare with another location or URL" menu option should have the ability to compare the working copy also, and not just a past revno. That way, it solves the use-case of when I want to see how much my current work has varied from someone else's branch.

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 438722] [NEW] More comprehensive Diff support

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Rob Walker wrote:
> Public bug reported:
>
> (I believe this should go in the wishlist, but I didn't see anywhere in
> Launchpad where this can be explicit...)
>
> The Diff button is like "bzr diff" on the command line by showing the
> changes since the last commit. But much of software development requires
> seeing differences in various branches (especially with distributed
> version control) at their various stages, not just the local most recent
> changes. It would be a useful feature if the Diff button was a dropdown-
> tool, much like the other buttons, where the user can choose any two
> local or remote locations to compare using Diff.
>
> For example, here would be some of the menu options:
>
> "Show most recent changes" (i.e. what it does currently)
> "Compare with another location or URL"
> "Compare any two locations or URLs"
>
> ...where the last two options have the dialog allow to specify the revno
> for each side of the diff, plus the ability to choose a local branch or
> a remote URL for the other location. Also, the "Compare with another
> location or URL" menu option should have the ability to compare the
> working copy also, and not just a past revno. That way, it solves the
> use-case of when I want to see how much my current work has varied from
> someone else's branch.
>
> ** Affects: bzr-explorer
> Importance: Undecided
> Status: New
>

If you do 'Log' you can then select multiple revisions (using shift +
click or ctrl+click, I'm not quite sure), and then select diff from there.

Whether we want to integrate that in closer with "Diff" or if it is just
fine from "Log" I'll let someone else decide.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrCH5MACgkQJdeBCYSNAAMvowCbBUB5ESXJMeoKL/783CGClaSP
EAwAn2v2mnCyBrSGV1L5wwFs6N7Mrxhe
=ORzZ
-----END PGP SIGNATURE-----

Revision history for this message
Rob Walker (robwalker01) wrote :

That's not specifically what I asked. It's not *merely* being able to select a different revision for a diff, it's being able to compare/diff arbitrary revisions between local or remote branches. There are very common use cases for stuff like this:

1. I have made changes to a local branch that is uncommitted. I want to compare the current state of this branch with someone else's remote branch (or a local branch in another directory). Since Bazaar is a distributed VCS, it's common that arbitrary branching and merging is performed per feature and not just as huge groups of unrelated patches like you sometimes tend to do with a centralized VCS.

2. I want to compare/diff my local branch (either as uncommitted or from a committed revision) to a *remote* branch, referencing a particular revision of the *remote* branch. Let's say that I've pulled from that remote branch, then a lot of factors are involved that influence whether or not I want to compare to it's most recent revision versus an older revision I pulled from, etc.

3. I simply want to use Bazaar Explorer to diff any two branches I am able to access, at any given revision on each side of the diff. This is a very common operation and I don't see any way of doing this from the GUI. I currently have to go back to the command line.

Revision history for this message
Ian Clatworthy (ian-clatworthy) wrote :

Rob,

When you go back to the command line, is qdiff offering what you need or do you need to fall back to 'bzr diff'? If we latter, we need to get qdiff working for you first and then explorer can expose more ways of launching it.

Changed in bzr-explorer:
status: New → Incomplete
Changed in bzr-explorer:
status: Incomplete → Confirmed
Changed in bzr-explorer:
importance: Undecided → Medium
Changed in bzr-explorer:
importance: Medium → Wishlist
Revision history for this message
Martitza (martitzam) wrote :

The OP made a good point. Developers coming from other tools (like Perforce and ClearCase) expect this. Granted those are not dvcs systems. But I'm pretty sure the commercial PLasticSCM dvcs lets you do this too.

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.