[MERGE] log multiple files and directories
John Arbash Meinel
john at arbash-meinel.com
Fri Feb 6 13:33:50 GMT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Kent Gibson wrote:
>
>
> Ian Clatworthy wrote:
>> How did you apply the patch? I *think* "bzr merge bundle-name"
>> ought to do it, while "bzr patch bundle-name" won't. IIUIC,
>> merging a bundle should be smart enough to realise that the
>> revisions from the dependent partial-delta branch are needed too.
>>
>> If "bzr merge bundle" doesn't work, you can grab the full branch
>> from https://code.launchpad.net/~ian-clatworthy/bzr/log-dir.
>>
>> Ian C.
>>
>>
> I also had problems applying the patch to bzr.dev (r3984) - I got the
> same result as Colin.
> Either something is broken in your patch, or in bzr itself (1.11).
>
> So I pulled a copy of the partial-delta branch and merged your patch
> into that so I could have a play with it.
> That appeared to work.
> e.g.
> ./bzr log tools
>
> does not crash. Can't comment on it's correctness (yet), but at least
> it didn't crash.
I'm pretty sure it isn't either, but an actual intentional effect of how
Ian generated the merge directive.
I would guess that Ian supplied an explicit range when he generated the
bundle ("bzr send -r X..Y"). As such when someone applies that change,
it will perform an implicit cherrypick if they do not already have the
"X" revision in their branch.
'bzr merge' even told you that it was doing so.
It is also possible that Ian did: "bzr send ../not-bzr.dev", and picked
a different branch to base his changes on. Yet again, the merge
directive knows exactly what base it is applying to. The idea is that if
you "cd bzr.dev-copy; bzr merge ../this-patch" it should only apply the
changes listed, and not the rest of "not-bzr.dev".
The general workaround when you really *do* want everything in the
branch *and* everything in the branch it was based on is to do:
bzr branch bzr.dev-copy new_branch
cd new_branch
bzr pull --overwrite ../this-patch
cd ../bzr.dev-copy
bzr merge ../this-patch
>
> Here is the first bug I've found - within a working tree subdirectory, I
> can successfully log each of the files individually, but not together.
> I can log both files from the working tree root.
> e.g. when I try
>
> ./bzr log bzrlib/remote.py bzrlib/repository.py
>
> I get the union of the logs for each file. I haven't checked in detail
> but superficially it looks ok. So far so good.
> However, if I move into the bzrlib directory and try it again I get this:
>
> ../bzr log remote.py repository.py
> bzr: ERROR: Path unknown at end or start of revision range: repository.py
>
> The two should be equivalent, right?
I assume we are just missing a 'relpath' call over the list of files.
John
=:->
>
> Cheers,
> Kent.
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkmMPD4ACgkQJdeBCYSNAAMrRgCgzHEhsa7d+DmXsPaY92n3Nco1
Rc4AoMZ5SeRpUjefnqCr7HiXHqb3ujzh
=6wyT
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list