<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
<br>
John Arbash Meinel wrote:
<blockquote cite="mid:498C3C3E.4020003@arbash-meinel.com" type="cite">
  <pre wrap="">-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kent Gibson wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">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.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
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.
  </pre>
</blockquote>
That was what I meant by something being broken in his patch - it does
not cleanly apply to bzr.dev.  Sorry if that wasn't clear.<br>
<br>
<blockquote cite="mid:498C3C3E.4020003@arbash-meinel.com" type="cite">
  <pre wrap="">
'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

  </pre>
</blockquote>
That is pretty much what I ended up doing, but I would expect patches
submitted to the list to be able to be cleanly applied to bzr.dev, and
not requiring such gymnastics.  OTOH, I haven't been paying attention
to the list for quite a while - perhaps things have changed.<br>
<br>
<blockquote cite="mid:498C3C3E.4020003@arbash-meinel.com" type="cite">
  <pre wrap="">
  </pre>
  <blockquote type="cite">
    <pre wrap="">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?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
I assume we are just missing a 'relpath' call over the list of files.

  </pre>
</blockquote>
Probably so, I haven't had a chance to look at the code.<br>
Sounds like it can be easily fixed.<br>
I look forward to an updated patch, for both reasons.<br>
<br>
Cheers,<br>
Kent.<br>
<br>
</body>
</html>