On Thu, Jan 26, 2017 at 8:08 AM, Johannes Schindelin <johannes.schindelin@xxxxxx> wrote: > Some developers might want to call `git status` in a working > directory where they just started an interactive rebase, but the > edit script is still opened in the editor. > > Let's show a meaningful message in such cases. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > t/t7512-status-help.sh | 19 +++++++++++++++++++ > wt-status.c | 14 ++++++++++---- > 2 files changed, 29 insertions(+), 4 deletions(-) > > diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh > index 5c3db656df..458608cc1e 100755 > --- a/t/t7512-status-help.sh > +++ b/t/t7512-status-help.sh > @@ -944,4 +944,23 @@ EOF > test_i18ncmp expected actual > ' > > +test_expect_success 'status: handle not-yet-started rebase -i gracefully' ' > + ONTO=$(git rev-parse --short HEAD^) && > + COMMIT=$(git rev-parse --short HEAD) && > + EDITOR="git status --untracked-files=no >actual" git rebase -i HEAD^ && > + cat >expected <<EOF && > +On branch several_commits > +No commands done. > +Next command to do (1 remaining command): > + pick $COMMIT four_commit > + (use "git rebase --edit-todo" to view and edit) > +You are currently editing a commit while rebasing branch '\''several_commits'\'' on '\''$ONTO'\''. > + (use "git commit --amend" to amend the current commit) > + (use "git rebase --continue" once you are satisfied with your changes) > + > +nothing to commit (use -u to show untracked files) > +EOF > + test_i18ncmp expected actual > +' > + > test_done > diff --git a/wt-status.c b/wt-status.c > index a715e71906..4dff0b3e21 100644 > --- a/wt-status.c > +++ b/wt-status.c > @@ -1135,14 +1135,17 @@ static void abbrev_sha1_in_line(struct strbuf *line) > strbuf_list_free(split); > } > > -static void read_rebase_todolist(const char *fname, struct string_list *lines) > +static int read_rebase_todolist(const char *fname, struct string_list *lines) > { > struct strbuf line = STRBUF_INIT; > FILE *f = fopen(git_path("%s", fname), "r"); > > - if (!f) > + if (!f) { > + if (errno == ENOENT) > + return -1; > die_errno("Could not open file %s for reading", > git_path("%s", fname)); While at it, fix the translation with die_errno(_(..),..) ? (The errno message is translated already by the system, which make untranslated die_errno things awkward for the users.) Otherwise the patch looks good to me