Emilio Lopes wrote:

> Sometimes I choose to implement a feature in several independent steps.  A
> simple example:
> 
>    - patch 40 implemented the first step
> 
>    - patch 41 was an update from CVS
> 
>    - patch 42 implement the second step of the new feature
> 
> Now I want to send a single *context* diff (generated with 'diff -c')
> generated out of changesets 40 and 42, ignoring patch 41 of course.

I don't think that's a generally solvable problem if you require that
changes introduced by 41 not appear.  42 may depend on the changes
introduced by 41.

> How, if at all, can I accomplish this with tla?

One option is to take a CVS tree, replay patch-40 and patch-42 into it,
and do normal diff against a revlib or pristine tree

e.g.
tla get [EMAIL PROTECTED]/project--cvs--0 workdir
tla replay -d workdir [EMAIL PROTECTED]/project--devel--0--patch-40
tla replay -d workdir [EMAIL PROTECTED]/project--devel--0--patch-42
diff ...

With baz, you could do one merge instead of two replays

baz apply-delta --diff3 [EMAIL PROTECTED]/project--devel--0--patch-40
[EMAIL PROTECTED]/project--devel--0--patch-42

and then do the diff.

It's a lot easier if you don't have patch-41 in the middle.  Then you
can just diff two revlib trees:

diff -r $(tla library-find [EMAIL PROTECTED]/project--devel--0--patch-40)
$(tla library-find [EMAIL PROTECTED]/project--devel--0--patch-42)

It's also easier if you use unified diffs instead of context diffs,
because the output of 'tla changes -diffs ' or 'tla delta --diffs' is a
valid patch.

Aaron
-- 
Aaron Bentley
Director of Technology
Panometrics, Inc.


_______________________________________________
Gnu-arch-users mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnu-arch-users

GNU arch home page:
http://savannah.gnu.org/projects/gnu-arch/

Reply via email to