threads / discuss / 27633

Re: Patch-level-format conversion

Subject: Re: Patch-level-format conversion

## tl;dr

4 messages between Jun 15, 2011 and Jun 15, 2011.

replies: 3people: 3as markdown or json

Jonathan Nieder· Jun 15, 2011, 20:55 UTC · lore
(+cc: the git list so others can correct me.  I hope that's okay.)
Hi,
Sedat Dilek wrote:
Show 7 quoted lines
> I have here a patchset extracted from my own git-repo (via git format-patch).
>
> The project for which those patches are want "p0" format, means no
> ---- a/... +++ b/... but --- ... +++ ...
>
> IIRC git does "p1" format as default.
> Any help? Idea?

If I understand correctly, you are in luck. The "git format-patch --no-prefix" command thanks to Dscho seems to do exactly that:

 $ git log -Sno-prefix -- Documentation/diff-options.txt
 commit eab9a40b6dd5c1c571b1deb264133db47bb4794d
 Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>
 Date:   Tue Dec 18 19:32:14 2007 +0000
     Teach diff machinery to display other prefixes than "a/" and "b/"
     With the new options "--src-prefix=<prefix>", "--dst-prefix=<prefix>"
     and "--no-prefix", you can now control the path prefixes of the diff
     machinery.  These used to by hardwired to "a/" for the source prefix
     and "b/" for the destination prefix.
     Initial patch by Pascal Obry.  Sane option names suggested by Linus.
     Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
     Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
     Signed-off-by: Junio C Hamano <gitster@pobox.com>

Hope that helps. Jonathan

Sedat Dilek· Jun 15, 2011, 21:16 UTC · re: Jonathan Nieder · lore
On Wed, Jun 15, 2011 at 10:55 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 38 quoted lines
> (+cc: the git list so others can correct me.  I hope that's okay.)
>
> Hi,
>
> Sedat Dilek wrote:
>
>> I have here a patchset extracted from my own git-repo (via git format-patch).
>>
>> The project for which those patches are want "p0" format, means no
>> ---- a/... +++ b/... but --- ... +++ ...
>>
>> IIRC git does "p1" format as default.
>> Any help? Idea?
>
> If I understand correctly, you are in luck.  The "git format-patch
> --no-prefix" command thanks to Dscho seems to do exactly that:
>
>  $ git log -Sno-prefix -- Documentation/diff-options.txt
>  commit eab9a40b6dd5c1c571b1deb264133db47bb4794d
>  Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>
>  Date:   Tue Dec 18 19:32:14 2007 +0000
>
>     Teach diff machinery to display other prefixes than "a/" and "b/"
>
>     With the new options "--src-prefix=<prefix>", "--dst-prefix=<prefix>"
>     and "--no-prefix", you can now control the path prefixes of the diff
>     machinery.  These used to by hardwired to "a/" for the source prefix
>     and "b/" for the destination prefix.
>
>     Initial patch by Pascal Obry.  Sane option names suggested by Linus.
>
>     Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
>     Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
>     Signed-off-by: Junio C Hamano <gitster@pobox.com>
>
> Hope that helps.
> Jonathan
>
Hi Jonathan,

I played a bit with git format-patch and git diff and got some helpful hints from friends of #grml and #quassel.de. Attached is the README.txt I produced some hours ago.

Regards,
- Sedat -
Q: How to generate freetz-conform patches out of a GIT repository?
A. Follow these instructions.

### Checkout freetz development branch svn co http://svn.freetz.org/trunk/ freetz-trunk cd freetz-trunk/

### Get latest revision revision=$(LC_ALL=C svn info | grep "Last Changed Rev" | awk {'print $4'}) echo $revision

### Turn freetz-trunk source-dir into a GIT repository git add --ignore-errors ./ ; git commit -m "`basename $PWD` SVN revision $revision"

### Edit some files and save changes $EDITOR file1 file2

### Extract patchset git format-patch --no-prefix --no-numbered $FIRST..$LAST

### Some git format-patch options explained:
      --no-prefix: Do not show any source or destination prefix.
   -n, --numbered: Name output in [PATCH n/m] format, even with a single patch.
-N, --no-numbered: Name output in [PATCH] format.
- Sedat Dilek <sedat.dilek@gmail.com> (15-Jun-2011)
Junio C Hamano· Jun 15, 2011, 22:13 UTC · re: Sedat Dilek · lore
Sedat Dilek <sedat.dilek@googlemail.com> writes:
Show 21 quoted lines
> I played a bit with git format-patch and git diff and got some helpful
> hints from friends of #grml and #quassel.de.
> Attached is the README.txt I produced some hours ago.
>
> Regards,
> - Sedat -
>
> Q: How to generate freetz-conform patches out of a GIT repository?
>
> A. Follow these instructions.
>
> ### Checkout freetz development branch
> svn co http://svn.freetz.org/trunk/ freetz-trunk
> cd freetz-trunk/
>
> ### Get latest revision
> revision=$(LC_ALL=C svn info | grep "Last Changed Rev" | awk {'print $4'})
> echo $revision
>
> ### Turn freetz-trunk source-dir into a GIT repository
> git add --ignore-errors ./ ; git commit -m "`basename $PWD` SVN revision $revision"

Wouldn't "add ./" add all the cruft in .svn (and its huge "pristine" subdirectory)? Why --ignore-errors?

Show 5 quoted lines
> ### Edit some files and save changes
> $EDITOR file1 file2
>
> ### Extract patchset
> git format-patch --no-prefix --no-numbered $FIRST..$LAST

You would need to record your own changes made by the $EDITOR step in commits before asking format-patch to make patch files out of them, but I do not see that step.

Also it is unclear how you determine $FIRST and $LAST. FIRST must name the commit that is the _parent_ of your first commit (i.e. your sample command line tells $FIRST to be excluded).

Show 7 quoted lines
> ### Some git format-patch options explained:
>       --no-prefix: Do not show any source or destination prefix.
>    -n, --numbered: Name output in [PATCH n/m] format, even with a single patch.
> -N, --no-numbered: Name output in [PATCH] format.
>
>
> - Sedat Dilek <sedat.dilek@gmail.com> (15-Jun-2011)
Sedat Dilek· Jun 15, 2011, 22:28 UTC · re: Junio C Hamano · lore
Hi Junio,
On Thu, Jun 16, 2011 at 12:13 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 27 quoted lines
> Sedat Dilek <sedat.dilek@googlemail.com> writes:
>
>> I played a bit with git format-patch and git diff and got some helpful
>> hints from friends of #grml and #quassel.de.
>> Attached is the README.txt I produced some hours ago.
>>
>> Regards,
>> - Sedat -
>>
>> Q: How to generate freetz-conform patches out of a GIT repository?
>>
>> A. Follow these instructions.
>>
>> ### Checkout freetz development branch
>> svn co http://svn.freetz.org/trunk/ freetz-trunk
>> cd freetz-trunk/
>>
>> ### Get latest revision
>> revision=$(LC_ALL=C svn info | grep "Last Changed Rev" | awk {'print $4'})
>> echo $revision
>>
>> ### Turn freetz-trunk source-dir into a GIT repository
>> git add --ignore-errors ./ ; git commit -m "`basename $PWD` SVN revision $revision"
>
> Wouldn't "add ./" add all the cruft in .svn (and its huge "pristine"
> subdirectory)?  Why --ignore-errors?
>
I used to use it after reading the blog-post in [1].
Show 10 quoted lines
>> ### Edit some files and save changes
>> $EDITOR file1 file2
>>
>> ### Extract patchset
>> git format-patch --no-prefix --no-numbered $FIRST..$LAST
>
> You would need to record your own changes made by the $EDITOR step in
> commits before asking format-patch to make patch files out of them, but I
> do not see that step.
>

Ooops, yeah missed the git commit command(s) :-(. Thanks for the pointer!

> Also it is unclear how you determine $FIRST and $LAST.  FIRST must name
> the commit that is the _parent_ of your first commit (i.e. your sample
> command line tells $FIRST to be excluded).
>

It's just an example... IIRC I really did "git format-patch --no-prefix -19" (extract last 19 commits). Hmmm, remember I got no "origine" for initial commit...

Show 8 quoted lines
>> ### Some git format-patch options explained:
>>       --no-prefix: Do not show any source or destination prefix.
>>    -n, --numbered: Name output in [PATCH n/m] format, even with a single patch.
>> -N, --no-numbered: Name output in [PATCH] format.
>>
>>
>> - Sedat Dilek <sedat.dilek@gmail.com> (15-Jun-2011)
>
- Sedat -
[1] http://who-t.blogspot.com/2009/06/git-patches-from-tarballs.html

← back to recent threads