views:

182

answers:

2

We use subversion and during every check-in, a script creates a patch file with all the diff. Now for the same issue/defect there could be multiple check-ins and we end up with multiple patch files. Now to see consolidated changes for an issue all the patch files have to be merged. Is there a way to do that?

Or another way to solve the same problem is: Is there a way in subversion to get the combined diff of all changes done as part of a particular comment? Eg:

Checked in with comment: "123: first changes"
Checked in with comment: "123: second set of changes"
Checked in with comment: "123: third changes"..

Is there a way to get a combined diff of all change that happened whose comment has prefix 123?

+1  A: 

combinediff from patchutils can combine the diffs for you.

(Shamelessly borrowed from this previous SO question.)

Amber
A: 

Make a new branch starting from the revision just before the first changeset. In the new branch, merge each changeset of the issue, in order. Take a diff between the start of the new branch and the final result.

(If you do issue-based branching, you'd get the above situation automatically).

Mercurial has a nice extension for handling collections of patches, namely the mq exension. That, in turn, is based on quilt (http://savannah.nongnu.org/projects/quilt), a system designed to stack patches onto each other.

albert