# [PATCH RFC] add: Do not open editor if patch is empty

2 messages from 2015-04-26 to 2015-04-26. Participants: Alexander Kuleshov, Eric Sunshine.
Thread: https://gitlist.dev/t/39164

## Alexander Kuleshov, 2015-04-26 17:03

Subject: [PATCH RFC] add: Do not open editor if patch is empty
Message-ID: <1430067820-3349-1-git-send-email-kuleshovmail@gmail.com>
URL: https://gitlist.dev/e/1430067820-3349-1-git-send-email-kuleshovmail%40gmail.com

```
If we'll run 'git add -e <path>' on a path which has no
difference with the current index, empty editor will open. This
patch prevents this behaviour and checks that patch is not empty
before an editor with patch will be opened.

Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
---
 builtin/add.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/add.c b/builtin/add.c
index ee370b0..4fc6b13 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -209,13 +209,13 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
 	if (run_diff_files(&rev, 0))
 		die(_("Could not write patch"));
 
-	launch_editor(file, NULL, NULL);
-
 	if (stat(file, &st))
 		die_errno(_("Could not stat '%s'"), file);
 	if (!st.st_size)
 		die(_("Empty patch. Aborted."));
 
+	launch_editor(file, NULL, NULL);
+
 	child.git_cmd = 1;
 	child.argv = apply_argv;
 	if (run_command(&child))
-- 
2.3.3.611.g09038fc.dirty

```

## Eric Sunshine, 2015-04-26 18:39

Subject: Re: [PATCH RFC] add: Do not open editor if patch is empty
Message-ID: <CAPig+cTMWe4gnuMrx-aP1Zu+qr6UqmHFmJj2JoahtuxcDGLTQg@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcTMWe4gnuMrx-aP1Zu%2Bqr6UqmHFmJj2JoahtuxcDGLTQg%40mail.gmail.com
In-Reply-To: <1430067820-3349-1-git-send-email-kuleshovmail@gmail.com>

```
On Sun, Apr 26, 2015 at 1:03 PM, Alexander Kuleshov
<kuleshovmail@gmail.com> wrote:
> If we'll run 'git add -e <path>' on a path which has no
> difference with the current index, empty editor will open. This
> patch prevents this behaviour and checks that patch is not empty
> before an editor with patch will be opened.
>
> Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
> ---
> diff --git a/builtin/add.c b/builtin/add.c
> index ee370b0..4fc6b13 100644
> --- a/builtin/add.c
> +++ b/builtin/add.c
> @@ -209,13 +209,13 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
>         if (run_diff_files(&rev, 0))
>                 die(_("Could not write patch"));
>
> -       launch_editor(file, NULL, NULL);
> -
>         if (stat(file, &st))
>                 die_errno(_("Could not stat '%s'"), file);
>         if (!st.st_size)
>                 die(_("Empty patch. Aborted."));
>
> +       launch_editor(file, NULL, NULL);

But this breaks intended behavior[1] in which "git add -e" aborts with
message "Empty patch" if the user deletes everything from the patch
file in the editor.

[1]: c59cb03 (git-add: introduce --edit (to edit the diff vs. the
index), 2009-04-08)

>         child.git_cmd = 1;
>         child.argv = apply_argv;
>         if (run_command(&child))
> --
> 2.3.3.611.g09038fc.dirty

```
