threads / patch / 43249

patchRe: [PATCH] Enter interactive mode if no parameters are given to git-add

Subject: Re: [PATCH] Enter interactive mode if no parameters are given to git-add

## tl;dr

4 messages between Dec 19, 2006 and Dec 19, 2006. Diffs are folded; open one to read it.

replies: 3people: 4as markdown or json

Andy Parkins· Dec 19, 2006, 15:16 UTC · lore

[PATCH] Enter interactive mode if no parameters are given to git-add

git-add with no parameters previously adds every modified file. This patch instead makes git-add enter interactive mode.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
This patch is against pu.

It seemed a bit nasty to add content without explicit instructions to do so. Instead, just drop into interactive mode, which they can easily get out of if it was all a big accident, and additionally is quicker than typing --interactive.

 builtin-add.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
Show changes to builtin-add.c +3 −1
diff --git a/builtin-add.c b/builtin-add.c
index aa2f0f3..52a63a0 100644
--- a/builtin-add.c
+++ b/builtin-add.c
@@ -96,10 +96,12 @@ int cmd_add(int argc, const char **argv, const char *prefix)
 		if (!strcmp("--interactive", argv[i]))
 			add_interactive++;
 	}
+	if (argc == 1)
+		add_interactive++;
 	if (add_interactive) {
 		const char *args[] = { "add--interactive", NULL };
 
-		if (add_interactive != 1 || argc != 2)
+		if (add_interactive != 1 || argc > 2)
 			die("add --interactive does not take any parameters");
 		execv_git_cmd(args);
 		exit(1);
-- 
1.4.4.2.g95ee-dirty
Jakub Narebski· Dec 19, 2006, 16:42 UTC · re: Andy Parkins · lore
<opublikowany i wysłany>
Andy Parkins wrote:
Show 12 quoted lines
> gmane.comp.version-control.git
> git-add with no parameters previously adds every modified file.  This
> patch instead makes git-add enter interactive mode.
> 
> Signed-off-by: Andy Parkins <andyparkins@gmail.com>
> ---
> This patch is against pu.
> 
> It seemed a bit nasty to add content without explicit instructions to do
> so.  Instead, just drop into interactive mode, which they can easily get out
> of if it was all a big accident, and additionally is quicker than typing
> --interactive.

Hmmm... --interactive is not documented, and neither is --all (erm, I think git add -all oatch was not yet added).

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Junio C Hamano· Dec 19, 2006, 18:00 UTC · re: Andy Parkins · lore
Andy Parkins <andyparkins@gmail.com> writes:
Show 5 quoted lines
> git-add with no parameters previously adds every modified file.  This
> patch instead makes git-add enter interactive mode.
> ...
> It seemed a bit nasty to add content without explicit instructions to do
> so.
Does anybody rely on the current behaviour?

It is nasty and I consider it a bug. It appears that it has been like that since the days when it was still a shell script.

While I think nobody should drive 'git add' from script, the behaviour to add everything when there is no explicit parameter (or fall back to interactive for that matter) has a problem if you say "some command | xargs git-add --" (you need "xargs -r" to fix it, which is GNU).

Let's first have a patch to exit with a warning message (but status 0) without doing anything when there is no explicit paths.

Again, does anybody rely on the current behaviour?
Linus Torvalds· Dec 19, 2006, 19:04 UTC · re: Junio C Hamano · lore
On Tue, 19 Dec 2006, Junio C Hamano wrote:
Show 9 quoted lines
> Andy Parkins <andyparkins@gmail.com> writes:
> 
> > git-add with no parameters previously adds every modified file.  This
> > patch instead makes git-add enter interactive mode.
> > ...
> > It seemed a bit nasty to add content without explicit instructions to do
> > so.
> 
> Does anybody rely on the current behaviour?

I don't know about "rely", but yes, it's what I normally do. When I import a tar-ball, I'll just do

	..untar..
	cd result-x.y.z
	git init-db
	git add
	git commit
and I don't usually use the "." at all, since it's unnecessary.

But hey, if it enters some interactive mode, maybe I can teach myself to either just do "git add .", or if the interactive mode has a choice of "a" for "all", then why not?

Show 5 quoted lines
> While I think nobody should drive 'git add' from script, the
> behaviour to add everything when there is no explicit parameter
> (or fall back to interactive for that matter) has a problem if
> you say "some command | xargs git-add --" (you need "xargs -r"
> to fix it, which is GNU).

That's a really good argument against the current behaviour of "git add", so while I actually use it without any parameters, I will concur that we should probably change it.

← back to recent threads