Re: How do we import patches from non-git sources?
- From
Yann Dirson <ydirson@altern.org>
- Date
- May 24, 2007, 21:22 UTC
- 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.