bzr log <path> skips merge revisions

Bug #569360 reported by John Szakmeister on 2010-04-24
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar Subversion Plugin
Undecided
Unassigned

Bug Description

I think this is another ghost revision issue. The steps are basically:
  * Create a checkout of a Subversion branch (say trunk)
  * Create a local branch to make same changes (my-changes)
  * ... commit, commit, commit to my-changes ...
  * Merge my-changes back to trunk and commit
  * Now create another checkout of the Subversion branch (trunk2)
  * Run 'bzr log' on the modified file.
  * It won't show log messages where the file was modified in a merge

I've captured this with the attached script. With it, we should see r3 when running 'bzr log file.txt' in trunk2, but it doesn't appear. I did try this with just straight Bazaar branches, and native bzr shows the revision correctly. So I believe this is an issue with handling ghosts. Unfortunately, this makes 'bzr log' and 'bzr qlog' a lot less useful when used against SVN repositories that have ghost revisions.

BTW, I believe I'm using the latest bzr-svn trunk (I saw that it had some simplified handling of text-parents). Unfortunately, it didn't make a difference for this bug (sorry I didn't report it sooner!).

John Szakmeister (jszakmeister) wrote :
John Szakmeister (jszakmeister) wrote :

Hey Jelmer, I just wanted to ping you on this. Is this expected behavior? And if so, can we change it? From an archaeology perspective, not seeing that revision is a Big Deal and unexpected. :-(

BTW, were you able to reproduce this with the attached script?

Thanks!

Jelmer Vernooij (jelmer) wrote :

This is correct behaviour. bzr-svn doesn't push merged revisions but only the mainline by default so when you pull down the repository later it can't fetch the merged revision and since it hasn't fetched them it can't display them.

If you push the merged revisions to e.g. branches/foo in the repository it works fine afterwards. Alternatively you should be able to set push_merged_revisions = True

Changed in bzr-svn:
status: New → Invalid
Jelmer Vernooij (jelmer) wrote :

Marking as Invalid since this is expected behaviour.

On Wed, Jun 2, 2010 at 8:41 PM, Jelmer Vernooij <email address hidden> wrote:
> This is correct behaviour. bzr-svn doesn't push merged revisions but
> only the mainline by default so when you pull down the repository later
> it can't fetch the merged revision and since it hasn't fetched them it
> can't display them.

I realize that there are some details that the rhs revisions have, but
is it not possible to show the [merge] commit when the rhs is a ghost
revision? The merge commit knows that it modified the file. The
issue here is that while it may be expected behavior from a technical
perspective, it's awfully confusing from a user standpoint. And you
may end up missing information when trying to discovery the history of
a problem.

> If you push the merged revisions to e.g. branches/foo in the repository
> it works fine afterwards. Alternatively you should be able to set
> push_merged_revisions = True

Yeah, I know that pushing the revisions up will prevent it from being
a ghost. Unfortunately, I can't guarantee that folks are going to
always do that. I tried push_merged_revisions in the past, but that
didn't seem to work (it pushed the revisions, but it still appeared to
be a ghost).

-John

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

Other bug subscribers

Bug attachments