git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Pushing git patches to a subversion project

From
Junio C Hamano <junkio@cox.net>
Date
Dec 21, 2005, 07:25 UTC
Message-ID
<7vpsnqdi8w.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<46a038f90512202137w772a3fe9p8e9e68345e39654a@mail.gmail.com>
Martin Langhoff <martin.langhoff@gmail.com> writes:
Show 6 quoted lines
> I am starting to work an svn-based upstream. In order to make life
> easy for me and for them I am trying to figure out a way for them to
> be able to merge my (emailed) patches atomically and preserving my
> comments.
>
> Something like git-am for svn.
Many building blocks git-am uses should be usable for this.
 * git-mailsplit you already know about due to earlier "non UNIX
   mbox" discussion.
 * git-mailinfo can be used to parse out commit message, title
   and authorship information, and actual patch.
 * git-apply without --index option can be used to apply patch
   to the working tree, but normal "patch -p1" would do the same
   unless it is a git renaming patch.  git-apply would also be
   useful for its --summary option to find out mode changes
   (if it is a git patch) and file creation and deletion.
So probably you could script something like this:
	$ git mailinfo .msg .patch <e-mail-file >.info
        $ (sed -ne 's/^Subject: //p' .info ; echo ; cat .msg) >.final-msg
	$ git apply --summary <.patch |
        while read cd mo de file
        do
        	case "$cd" in
                create)
                	svn add "$file" ;;
		delete)
                	svn rm "$file" ;;
		esac
	done
	$ svn commit -F .final-msg
Previous: Martin Langhoff
Message 2 of 2 in “Pushing git patches to a subversion project”
  1. Martin LanghoffDec 21, 2005
  2. Junio C HamanoDec 21, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.