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

Re: patches in context format ?

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 12, 2009, 09:28 UTC
Message-ID
<7vy6xgj2jq.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<46d6db660901120100g7f62a0c2k68c96cbfc23dab5@mail.gmail.com>
"Christian MICHON" <christian.michon@gmail.com> writes:
Show 9 quoted lines
> I'm maintaining a git tree of the vim project: this work can be seen
> at http://github.com/cmichon/vim
>
> vim patches do not come as unified format, but only as context format
> instead (from a "diff -c").
> ...
> I guess the answer is no, but has anyone on the list been working on
> this ? is there another way to translate from "context" to "unified"
> format ?
Not that I know of.

If you want to add support for the copied context format patches to your workflow, I think the first step (and easiest one) would be to find an external program that lets you convert from the copied context format to the unified context format. Perhaps "interdiff /dev/null copied >unified" would suffice (but I haven't tested this).

Then find the place that feeds "git apply" with a patch, and add an option to "git am" to instead do something like this:

- git apply --index "$dotest/patch" + case "$input_is_in_the_copied_context_format" + yes) + interdiff /dev/null "$dotest/patch" | git apply --index + ;; + *) + # unified context as before... + git apply --index "$dotest/patch" + ;; + esac

In the longer term, if we were to update "git-apply" to support the copied context format, I think we should take the same approach.

Inside read_patch_file(), you detect that the patch is in the copied context format, and convert it to the unified context format and return the result. All the rest of the program can then be left alone and you will have little chance of regression.

Previous: Christian MICHONNext: Christian MICHON
Message 2 of 7 in “patches in context format ?”
  1. Christian MICHONJan 12, 2009
  2. Junio C HamanoJan 12, 2009
  3. Christian MICHONJan 12, 2009
  4. Teemu LikonenJan 12, 2009
  5. Christian MICHONJan 12, 2009
  6. Jeff KingJan 12, 2009
  7. Christian MICHONJan 12, 2009

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.