From: Yann Dirson Date: Thu, 24 May 2007 21:22:02 GMT Subject: Re: How do we import patches from non-git sources? Message-ID: <20070524212202.GW19253@nan92-1-81-57-214-146.fbx.proxad.net> In-Reply-To: <1180017010.21181.2.camel@zealous.synapsedev.com> On Thu, May 24, 2007 at 07:30:10AM -0700, Marc Singer wrote: > Is there a way to import patches that did not come from git? Remember > that we'd like to include the functionality of git-am that adds new > files to the index. I have written a patch-application tool as part of the (otherwise stalled) ArcheoloGIT project, clonable from http://ydirson.free.fr/soft/git/argit.git/. Side note: it could make sense to finalize this script and integrate it in git proper. Opinions ? Although the command-line interface would probably benefit from an overhaul, it is fully functionning, notably supporting: - application of several patches in one row - application of non-incremental patches - eg. the 2.4.19rmk2 patch applies to plain 2.4.19, not to 2.4.19rmk1 | $ ../argit/ag-import-patch --help | Usage: ag-import-patch ( [-v] [-n] [-b BASE|-i] [-N NAME] [-p PARENT]... [-t TAG] PATCH )* | | Import a revision in a GIT history from a patch. | Part of the ArcheoloGIT toolkit. | Copyright (c) Yann Dirson, 2005 | Distributed under version 2 of the GNU GPL. Since it lacks doc, here is it: -i - process subsequent paches as incremental (the default) -b BASE - process subsequent paches as applying to commit BASE -N NAME - use given NAME instead of patch filename for generating commit message (useful for /dev/stdin import) -t TAG - tag after import -p PARENT - add PARENT to the parents eg: $ git checkout v2.4.19 $ ag-import-patch -b v2.4.19 \ -p v2.4.18rmk6 -t v2.4.19rmk1 patch-2.4.19rmk1.diff \ -t v2.4.19rmk2 patch-2.4.19rmk2.diff Hope this helps, -- Yann.