# [PATCH] Don't require working tree for git-rm

3 messages from 2007-11-03 to 2007-11-03. Participants: Mike Hommey, Johannes Schindelin.
Thread: https://gitlist.dev/t/10610

## Mike Hommey, 2007-11-03 10:08

Subject: [PATCH] Don't require working tree for git-rm
Message-ID: <1194084521-12962-1-git-send-email-mh@glandium.org>
URL: https://gitlist.dev/e/1194084521-12962-1-git-send-email-mh%40glandium.org

```
This allows to do git rm --cached -r directory, instead of
git ls-files -z directory | git update-index --remove -z --stdin.
This can be particularly useful for git-filter-branch users.

Signed-off-by: Mike Hommey <mh@glandium.org>
---
 git.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git.c b/git.c
index 4e10581..01dcb6a 100644
--- a/git.c
+++ b/git.c
@@ -345,7 +345,7 @@ static void handle_internal_command(int argc, const char **argv)
 		{ "rev-list", cmd_rev_list, RUN_SETUP },
 		{ "rev-parse", cmd_rev_parse, RUN_SETUP },
 		{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
-		{ "rm", cmd_rm, RUN_SETUP | NEED_WORK_TREE },
+		{ "rm", cmd_rm, RUN_SETUP },
 		{ "runstatus", cmd_runstatus, RUN_SETUP | NEED_WORK_TREE },
 		{ "shortlog", cmd_shortlog, RUN_SETUP | USE_PAGER },
 		{ "show-branch", cmd_show_branch, RUN_SETUP },
-- 
1.5.3.5

```

## Johannes Schindelin, 2007-11-03 11:56

Subject: Re: [PATCH] Don't require working tree for git-rm
Message-ID: <Pine.LNX.4.64.0711031155070.4362@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0711031155070.4362%40racer.site
In-Reply-To: <1194084521-12962-1-git-send-email-mh@glandium.org>

```
Hi,

On Sat, 3 Nov 2007, Mike Hommey wrote:

> This allows to do git rm --cached -r directory, instead of
> git ls-files -z directory | git update-index --remove -z --stdin.
> This can be particularly useful for git-filter-branch users.
> 
> Signed-off-by: Mike Hommey <mh@glandium.org>
> ---
>  git.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/git.c b/git.c
> index 4e10581..01dcb6a 100644
> --- a/git.c
> +++ b/git.c
> @@ -345,7 +345,7 @@ static void handle_internal_command(int argc, const char **argv)
>  		{ "rev-list", cmd_rev_list, RUN_SETUP },
>  		{ "rev-parse", cmd_rev_parse, RUN_SETUP },
>  		{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
> -		{ "rm", cmd_rm, RUN_SETUP | NEED_WORK_TREE },
> +		{ "rm", cmd_rm, RUN_SETUP },

Just removing this is wrong!

You have to test for a working tree if "--cached" was _not_ given.  

Ciao,
Dscho

```

## Mike Hommey, 2007-11-03 12:11

Subject: Re: [PATCH] Don't require working tree for git-rm
Message-ID: <20071103121150.GB4295@glandium.org>
URL: https://gitlist.dev/e/20071103121150.GB4295%40glandium.org
In-Reply-To: <Pine.LNX.4.64.0711031155070.4362@racer.site>

```
On Sat, Nov 03, 2007 at 11:56:17AM +0000, Johannes Schindelin wrote:
> Hi,
> 
> On Sat, 3 Nov 2007, Mike Hommey wrote:
> 
> > This allows to do git rm --cached -r directory, instead of
> > git ls-files -z directory | git update-index --remove -z --stdin.
> > This can be particularly useful for git-filter-branch users.
> > 
> > Signed-off-by: Mike Hommey <mh@glandium.org>
> > ---
> >  git.c |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > diff --git a/git.c b/git.c
> > index 4e10581..01dcb6a 100644
> > --- a/git.c
> > +++ b/git.c
> > @@ -345,7 +345,7 @@ static void handle_internal_command(int argc, const char **argv)
> >  		{ "rev-list", cmd_rev_list, RUN_SETUP },
> >  		{ "rev-parse", cmd_rev_parse, RUN_SETUP },
> >  		{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
> > -		{ "rm", cmd_rm, RUN_SETUP | NEED_WORK_TREE },
> > +		{ "rm", cmd_rm, RUN_SETUP },
> 
> Just removing this is wrong!
> 
> You have to test for a working tree if "--cached" was _not_ given.  

See the other patch I sent a bit later.

Mike

```
