threads / rfc / 39164

RFC patchadd: Do not open editor if patch is empty

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

## tl;dr

2 messages between Apr 26, 2015 and Apr 26, 2015. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Alexander Kuleshov· Apr 26, 2015, 17:03 UTC · lore

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(-)
Show changes to builtin/add.c +2 −2
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· Apr 26, 2015, 18:39 UTC · re: Alexander Kuleshov · lore

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

On Sun, Apr 26, 2015 at 1:03 PM, Alexander Kuleshov <kuleshovmail@gmail.com> wrote:

Show 23 quoted lines
> 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)

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

← back to recent threads