git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Phillip Wood <phillip.wood@talktalk.net>
To: Alban Gruin <alban.gruin@gmail.com>,
	phillip.wood@dunelm.org.uk, git@vger.kernel.org
Cc: Stefan Beller <sbeller@google.com>,
	Christian Couder <christian.couder@gmail.com>,
	Pratik Karki <predatoramigo@gmail.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	gitster@pobox.com
Subject: Re: [GSoC][PATCH v5 04/20] rebase -i: rewrite the edit-todo functionality in C
Date: Thu, 9 Aug 2018 16:35:45 +0100	[thread overview]
Message-ID: <329d89f1-5ade-aeec-40bc-cd7168822d3e@talktalk.net> (raw)
In-Reply-To: <bc07317b-ba44-7a3c-7cb4-504b7dbc7c34@gmail.com>

Hi Alban

On 09/08/18 14:30, Alban Gruin wrote:
> Hi Phillip,
> 
> Le 08/08/2018 à 18:04, Phillip Wood a écrit :
>>>>> +int edit_todo_list(unsigned flags)
>>>>> +{
>>>>> +    struct strbuf buf = STRBUF_INIT;
>>>>> +    const char *todo_file = rebase_path_todo();
>>>>> +    FILE *todo;
>>>>> +
>>>>> +    if (strbuf_read_file(&buf, todo_file, 0) < 0)
>>>>> +        return error_errno(_("could not read '%s'."), todo_file);
>>>>> +
>>>>> +    strbuf_stripspace(&buf, 1);
>>>>> +    todo = fopen_or_warn(todo_file, "w");
>>>>
>>>> This truncates the existing file, if there are any errors writing the
>>>> new one then the user has lost the old one. write_message() in
>>>> sequencer.c avoids this problem by writing a new file and then renaming
>>>> it if the write is successful, maybe it is worth exporting it so it can
>>>> be used elsewhere.
>>>>
>>>>> +    if (!todo) {
>>>>> +        strbuf_release(&buf);
>>>>> +        return 1;
>>>>> +    }
>>>>> +
>>>>> +    strbuf_write(&buf, todo);
>>>>> +    fclose(todo);
>>>>
>>>> There needs to be some error checking after the write and the close
>>>> (using write_message() would mean you only have to check for errors in
>>>> one place)
>>>>
>>>
>>> Right.  Should I find a new nawe for write_message()?
>>
>> That might be a good idea, I'm not sure what it should be though, maybe
>> write_file()?, perhaps someone else might have a better suggestion.
>>
> 
> write_file() already exists in wrapper.c.  I wondered, as this make use
> of the lockfile API, perhaps it could be moved to lockfile.{c,h}, and
> renamed to something like write_file_with_lock().

Hmm, I'm not sure about that, to me the use of the lockfile api is just 
a way to get the semantics of an atomic update to the file. Looking in 
wrapper.c there is write_file_buf() which could maybe be changed to to 
an atomic update. Looking at the current callers to that function they 
look like they would work with such a change (sadly none of them bother 
to check the return value to see if the write was successful). I don't 
think we need to worry about them being broken by having a stale 
lockfile left over if there's an error as I think the lockfile api 
automatically cleans them up but I'm not an expert on that api so it 
would be worth checking with someone like Johannes or Jeff King (I seem 
to remember him working in that area relatively recently).

Best Wishes

Phillip


> Cheers,
> Alban
> 


  reply	other threads:[~2018-08-09 15:35 UTC|newest]

Thread overview: 193+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-02 10:57 [GSoC][PATCH v2 0/7] rebase -i: rewrite some parts in C Alban Gruin
2018-07-02 10:57 ` [GSoC][PATCH v2 1/7] sequencer: make two functions and an enum from sequencer.c public Alban Gruin
2018-07-03 20:20   ` Junio C Hamano
2018-07-05 15:35     ` Alban Gruin
2018-07-02 10:57 ` [GSoC][PATCH v2 2/7] rebase--interactive: rewrite append_todo_help() in C Alban Gruin
2018-07-03 20:29   ` Junio C Hamano
2018-07-02 10:57 ` [GSoC][PATCH v2 3/7] editor: add a function to launch the sequence editor Alban Gruin
2018-07-03 20:32   ` Junio C Hamano
2018-07-02 10:57 ` [GSoC][PATCH v2 4/7] rebase-interactive: rewrite the edit-todo functionality in C Alban Gruin
2018-07-02 10:57 ` [GSoC][PATCH v2 5/7] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-07-03 20:36   ` Junio C Hamano
2018-07-02 10:57 ` [GSoC][PATCH v2 6/7] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-07-03 20:37   ` Junio C Hamano
2018-07-06 12:58     ` Johannes Schindelin
2018-07-06 15:02       ` Junio C Hamano
2018-07-06 18:54         ` Johannes Schindelin
2018-07-06 21:55           ` Junio C Hamano
2018-07-07 16:40             ` Junio C Hamano
2018-07-02 10:57 ` [GSoC][PATCH v2 7/7] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-07-10 12:15 ` [GSoC][PATCH v3 00/13] rebase -i: rewrite some parts " Alban Gruin
2018-07-10 12:15   ` [GSoC][PATCH v3 01/13] sequencer: make two functions and an enum from sequencer.c public Alban Gruin
2018-07-10 17:53     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 02/13] rebase--interactive: rewrite append_todo_help() in C Alban Gruin
2018-07-10 12:21     ` Alban Gruin
2018-07-10 17:56     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 03/13] editor: add a function to launch the sequence editor Alban Gruin
2018-07-10 12:23     ` Alban Gruin
2018-07-10 17:58     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 04/13] rebase-interactive: rewrite the edit-todo functionality in C Alban Gruin
2018-07-10 18:00     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 05/13] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-07-10 18:13     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 06/13] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-07-10 18:20     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 07/13] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-07-10 18:22     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 08/13] sequencer: refactor append_todo_help() to write its message to a buffer Alban Gruin
2018-07-10 18:30     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 09/13] sequencer: change the way skip_unnecessary_picks() returns its result Alban Gruin
2018-07-10 18:38     ` Junio C Hamano
2018-07-10 18:52     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 10/13] rebase--interactive: rewrite complete_action() in C Alban Gruin
2018-07-10 22:33     ` Junio C Hamano
2018-07-11 14:25       ` Alban Gruin
2018-07-10 12:15   ` [GSoC][PATCH v3 11/13] rebase--interactive: remove unused modes and functions Alban Gruin
2018-07-10 22:36     ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 12/13] rebase -i: implement the logic to initialize the variable $revision in C Alban Gruin
2018-07-12 18:15     ` Junio C Hamano
2018-07-12 18:24       ` Junio C Hamano
2018-07-10 12:15   ` [GSoC][PATCH v3 13/13] rebase -i: rewrite the rest of init_revisions_and_shortrevisions " Alban Gruin
2018-07-24 16:32   ` [GSoC][PATCH v4 00/20] rebase -i: rewrite " Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 01/20] sequencer: make two functions and an enum from sequencer.c public Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 02/20] rebase -i: rewrite append_todo_help() in C Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 03/20] editor: add a function to launch the sequence editor Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 04/20] rebase -i: rewrite the edit-todo functionality in C Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 05/20] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 06/20] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 07/20] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 08/20] sequencer: refactor append_todo_help() to write its message to a buffer Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 09/20] sequencer: change the way skip_unnecessary_picks() returns its result Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 10/20] t3404: todo list with commented-out commands only aborts Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 11/20] rebase -i: rewrite complete_action() in C Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 12/20] rebase -i: remove unused modes and functions Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 13/20] rebase -i: implement the logic to initialize $revisions in C Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() " Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 15/20] rebase -i: rewrite write_basic_state() " Alban Gruin
2018-07-30 18:25       ` SZEDER Gábor
2018-07-30 22:11         ` Alban Gruin
2018-07-31 12:11         ` [GSoC][PATCH v4] fixup! " Alban Gruin
2018-07-31 15:23           ` Junio C Hamano
2018-07-31 15:59             ` Alban Gruin
2018-07-31 16:04               ` Junio C Hamano
2018-07-31 17:25                 ` Junio C Hamano
2018-08-03 13:26         ` [GSoC][PATCH v4 15/20] " Jeff King
2018-07-24 16:32     ` [GSoC][PATCH v4 16/20] rebase -i: rewrite init_basic_state() " Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 17/20] rebase -i: implement the main part of interactive rebase as a builtin Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in C Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 19/20] rebase -i: remove git-rebase--interactive.sh Alban Gruin
2018-07-24 16:32     ` [GSoC][PATCH v4 20/20] rebase -i: move rebase--helper modes to rebase--interactive Alban Gruin
2018-07-25 18:45     ` [GSoC][PATCH v4 00/20] rebase -i: rewrite in C Stefan Beller
2018-07-25 22:43     ` Junio C Hamano
2018-07-31 17:59     ` [GSoC][PATCH v5 " Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 01/20] sequencer: make two functions and an enum from sequencer.c public Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 02/20] rebase -i: rewrite append_todo_help() in C Alban Gruin
2018-08-07 13:57         ` Phillip Wood
2018-08-07 15:25           ` Christian Couder
2018-08-07 16:15             ` Phillip Wood
2018-08-07 16:28               ` Christian Couder
2018-08-07 17:31                 ` Phillip Wood
2018-08-08 15:16           ` Alban Gruin
2018-08-08 16:00             ` Phillip Wood
2018-07-31 17:59       ` [GSoC][PATCH v5 03/20] editor: add a function to launch the sequence editor Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 04/20] rebase -i: rewrite the edit-todo functionality in C Alban Gruin
2018-08-07 14:00         ` Phillip Wood
2018-08-08 15:17           ` Alban Gruin
2018-08-08 16:04             ` Phillip Wood
2018-08-09 13:30               ` Alban Gruin
2018-08-09 15:35                 ` Phillip Wood [this message]
2018-08-09 16:09                   ` Phillip Wood
2018-07-31 17:59       ` [GSoC][PATCH v5 05/20] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 06/20] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 07/20] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 08/20] sequencer: refactor append_todo_help() to write its message to a buffer Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 09/20] sequencer: change the way skip_unnecessary_picks() returns its result Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 10/20] t3404: todo list with commented-out commands only aborts Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 11/20] rebase -i: rewrite complete_action() in C Alban Gruin
2018-08-09 14:22         ` Phillip Wood
2018-08-09 17:00           ` Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 12/20] rebase -i: remove unused modes and functions Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 13/20] rebase -i: implement the logic to initialize $revisions in C Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() " Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 15/20] rebase -i: rewrite write_basic_state() " Alban Gruin
2018-07-31 17:59       ` [GSoC][PATCH v5 16/20] rebase -i: rewrite init_basic_state() " Alban Gruin
2018-07-31 18:00       ` [GSoC][PATCH v5 17/20] rebase -i: implement the main part of interactive rebase as a builtin Alban Gruin
2018-07-31 18:00       ` [GSoC][PATCH v5 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in C Alban Gruin
2018-07-31 18:00       ` [GSoC][PATCH v5 19/20] rebase -i: remove git-rebase--interactive.sh Alban Gruin
2018-07-31 18:00       ` [GSoC][PATCH v5 20/20] rebase -i: move rebase--helper modes to rebase--interactive Alban Gruin
2018-07-31 19:28       ` [GSoC][PATCH v5 00/20] rebase -i: rewrite in C Junio C Hamano
2018-08-10 16:51       ` [GSoC][PATCH v6 " Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 01/20] sequencer: make three functions and an enum from sequencer.c public Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 02/20] rebase -i: rewrite append_todo_help() in C Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 03/20] editor: add a function to launch the sequence editor Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 04/20] rebase -i: rewrite the edit-todo functionality in C Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 05/20] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 06/20] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 07/20] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 08/20] sequencer: refactor append_todo_help() to write its message to a buffer Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 09/20] sequencer: change the way skip_unnecessary_picks() returns its result Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 10/20] t3404: todo list with commented-out commands only aborts Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 11/20] rebase -i: rewrite complete_action() in C Alban Gruin
2018-08-10 19:25           ` Junio C Hamano
2018-08-10 19:36             ` Alban Gruin
2018-08-10 20:27               ` Junio C Hamano
2018-08-10 21:15                 ` Alban Gruin
2018-08-17 13:16           ` Phillip Wood
2018-08-10 16:51         ` [GSoC][PATCH v6 12/20] rebase -i: remove unused modes and functions Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 13/20] rebase -i: implement the logic to initialize $revisions in C Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() " Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 15/20] rebase -i: rewrite write_basic_state() " Alban Gruin
2018-08-17 13:27           ` Phillip Wood
2018-08-23 21:27             ` Johannes Schindelin
2018-08-10 16:51         ` [GSoC][PATCH v6 16/20] rebase -i: rewrite init_basic_state() " Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 17/20] rebase -i: implement the main part of interactive rebase as a builtin Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in C Alban Gruin
2018-08-22 21:14           ` Johannes Schindelin
2018-08-22 21:30             ` Junio C Hamano
2018-08-23 21:08               ` Johannes Schindelin
2018-08-10 16:51         ` [GSoC][PATCH v6 19/20] rebase -i: remove git-rebase--interactive.sh Alban Gruin
2018-08-10 16:51         ` [GSoC][PATCH v6 20/20] rebase -i: move rebase--helper modes to rebase--interactive Alban Gruin
2018-08-13 16:06         ` [GSoC][PATCH v6 00/20] rebase -i: rewrite in C Duy Nguyen
2018-08-13 20:47           ` Alban Gruin
2018-08-28 12:10         ` [GSoC][PATCH v7 " Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 01/20] sequencer: make three functions and an enum from sequencer.c public Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 02/20] rebase -i: rewrite append_todo_help() in C Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 03/20] editor: add a function to launch the sequence editor Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 04/20] rebase -i: rewrite the edit-todo functionality in C Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 05/20] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 06/20] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 07/20] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 08/20] sequencer: refactor append_todo_help() to write its message to a buffer Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 09/20] sequencer: change the way skip_unnecessary_picks() returns its result Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 10/20] t3404: todo list with commented-out commands only aborts Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 11/20] rebase -i: rewrite complete_action() in C Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 12/20] rebase -i: remove unused modes and functions Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 13/20] rebase -i: implement the logic to initialize $revisions in C Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() " Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 15/20] rebase -i: rewrite write_basic_state() " Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 16/20] rebase -i: rewrite init_basic_state() " Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 17/20] rebase -i: implement the main part of interactive rebase as a builtin Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in C Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 19/20] rebase -i: remove git-rebase--interactive.sh Alban Gruin
2018-08-28 12:10           ` [GSoC][PATCH v7 20/20] rebase -i: move rebase--helper modes to rebase--interactive Alban Gruin
2018-09-27 21:55           ` [GSoC][PATCH v8 00/20] rebase -i: rewrite in C Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 01/20] sequencer: make three functions and an enum from sequencer.c public Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 02/20] rebase -i: rewrite append_todo_help() in C Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 03/20] editor: add a function to launch the sequence editor Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 04/20] rebase -i: rewrite the edit-todo functionality in C Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 05/20] sequencer: add a new function to silence a command, except if it fails Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 06/20] rebase -i: rewrite setup_reflog_action() in C Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 07/20] rebase -i: rewrite checkout_onto() " Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 08/20] sequencer: refactor append_todo_help() to write its message to a buffer Alban Gruin
2018-09-27 21:55             ` [GSoC][PATCH v8 09/20] sequencer: change the way skip_unnecessary_picks() returns its result Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 10/20] t3404: todo list with commented-out commands only aborts Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 11/20] rebase -i: rewrite complete_action() in C Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 12/20] rebase -i: remove unused modes and functions Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 13/20] rebase -i: implement the logic to initialize $revisions in C Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() " Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 15/20] rebase -i: rewrite write_basic_state() " Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 16/20] rebase -i: rewrite init_basic_state() " Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 17/20] rebase -i: implement the main part of interactive rebase as a builtin Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in C Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 19/20] rebase -i: remove git-rebase--interactive.sh Alban Gruin
2018-09-27 21:56             ` [GSoC][PATCH v8 20/20] rebase -i: move rebase--helper modes to rebase--interactive Alban Gruin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=329d89f1-5ade-aeec-40bc-cd7168822d3e@talktalk.net \
    --to=phillip.wood@talktalk.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=alban.gruin@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=predatoramigo@gmail.com \
    --cc=sbeller@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).