Subject: Re: splitting large patch files into smaller ones

From: René Scharfe <[email-masked]>
Date: Wed, 22 Aug 2007 23:54:04 +0200

Erez Zadok schrieb:
> I recently had an occasion to take a rather large git-diff patch, and split
> it into smaller chunks.  This was so I can more easily import the patches
> into guilt, then reorder, rename, shuffle, and join individual patch
> snippets into logical patches (i.e., one patch per topic).
> 
> I was looking around for a tool that would allow me to split a large patch
> file into individual snippets and couldn't find one.  So I wrote one in
> perl.  It takes a patch file and creates individual small files, one for
> each combination of a filename listed in the patch, and a patch snippet
> (starting with an '@@' line).  Each '@@' snippet gets an index number and a
> new filename, prefixed with the appropriate header ("diff ...", ---, and +++
> lines) so it's a valid patch file on its own.
> 
> Questions:
> 
> 1. Does anyone know of such a tool, perhaps written in C for better speed?

The patchutils collection[1] contains a tool called splitdiff, which
does something slightly different[2].  It might be a good starting
point, though.

René

[1] http://cyberelk.net/tim/software/patchutils/?page_id=10
[2] http://cyberelk.net/tim/patchutils/man/splitdiff.html