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

Re: [PATCH/WIP v2 03/19] am: implement skeletal builtin am

From
Paul Tan <pyokagan@gmail.com>
Date
Jun 15, 2015, 17:20 UTC
Message-ID
<CACRoPnS9fkNQTB8bEKdOBqFgV1E1Mff7oE8rBFDUK+c-woxqZg@mail.gmail.com>
In-Reply-To
<xmqqwpz4ao6l.fsf@gitster.dls.corp.google.com>
On Tue, Jun 16, 2015 at 1:14 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 31 quoted lines
> Paul Tan <pyokagan@gmail.com> writes:
>
>> On Mon, Jun 15, 2015 at 6:08 AM, Junio C Hamano <gitster@pobox.com> wrote:
>>> Paul Tan <pyokagan@gmail.com> writes:
>>>> diff --git a/git.c b/git.c
>>>> index 44374b1..42328ed 100644
>>>> --- a/git.c
>>>> +++ b/git.c
>>>> @@ -370,6 +370,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
>>>>
>>>>  static struct cmd_struct commands[] = {
>>>>       { "add", cmd_add, RUN_SETUP | NEED_WORK_TREE },
>>>> +     { "am", cmd_am, RUN_SETUP | NEED_WORK_TREE },
>>>
>>> Would this, especially having RUN_SETUP, keep the same behaviour
>>> when the command is run from a subdirectory of a working tree?
>>> e.g.
>>>
>>>         save messages to ./inbox
>>>         $ cd sub/dir
>>>         $ git am ../../inbox
>>>
>>
>> Yes, in 05/19, where the splitting of patches is implemented, we
>> prefix the mbox paths with the path to the working tree.
>
> I wasn't wondering about your new code.
>
> The scripted Porcelain is spawned after applying patches 1-3 from
> here, when you do not have _GIT_USE_BUILTIN_AM exported.  Haven't
> RUN_SETUP code did its thing by that time?

Ah right, the RUN_SETUP code would have chdir()-ed to the working directory root, so git-am.sh will be unable to find the original working directory. To aid it, we would have to chdir() back to the original working directory, and unset GIT_DIR.

Thanks, Paul

Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 31 in “Make git-am a builtin”
  1. 00/19 Make git-am a builtinPaul Tan, Jun 11, 2015
  2. 01/19 wrapper: implement xopen()Paul Tan, Jun 11, 2015
  3. 02/19 wrapper: implement xfopen()Paul Tan, Jun 11, 2015
  4. 03/19 am: implement skeletal builtin amPaul Tan, Jun 11, 2015
  5. Junio C HamanoJun 14, 2015
  6. Paul TanJun 15, 2015
  7. Junio C HamanoJun 15, 2015
  8. Paul TanJun 15, 2015
  9. Junio C HamanoJun 15, 2015
  10. Paul TanJun 18, 2015
  11. 04/19 am: implement patch queue mechanismPaul Tan, Jun 11, 2015
  12. Stefan BellerJun 11, 2015
  13. Paul TanJun 15, 2015
  14. 05/19 am: split out mbox/maildir patches with git-mailsplitPaul Tan, Jun 11, 2015
  15. Stefan BellerJun 11, 2015
  16. Paul TanJun 15, 2015
  17. 06/19 am: detect mbox patchesPaul Tan, Jun 11, 2015
  18. 07/19 am: extract patch, message and authorship with git-mailinfoPaul Tan, Jun 11, 2015
  19. Junio C HamanoJun 14, 2015
  20. 08/19 am: apply patch with git-applyPaul Tan, Jun 11, 2015
  21. 09/19 am: commit applied patchPaul Tan, Jun 11, 2015
  22. 10/19 am: refresh the index at startPaul Tan, Jun 11, 2015
  23. 11/19 am: refuse to apply patches if index is dirtyPaul Tan, Jun 11, 2015
  24. 12/19 am: implement --resolved/--continuePaul Tan, Jun 11, 2015
  25. 13/19 am: implement --skipPaul Tan, Jun 11, 2015
  26. 14/19 am: implement --abortPaul Tan, Jun 11, 2015
  27. 15/19 am: implement quiet optionPaul Tan, Jun 11, 2015
  28. 16/19 am: exit with user friendly message on patch failurePaul Tan, Jun 11, 2015
  29. 17/19 am: implement am --signoffPaul Tan, Jun 11, 2015
  30. 18/19 cache-tree: introduce write_index_as_tree()Paul Tan, Jun 11, 2015
  31. 19/19 am: implement 3-way mergePaul Tan, Jun 11, 2015

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.