threads / discuss / 33366

cd

Subject: cd

## tl;dr

2 messages between Apr 3, 2013 and Apr 3, 2013.

replies: 1people: 2as markdown or json

jpinheiro· Apr 3, 2013, 14:49 UTC · lore
Hi all,

We are students from Universidade do Minho in Portugal, and we are using git in project as a case study. While experimenting with git we found an unexpected behavior with git rm. Here is a trace of the unexpected behavior:

$ git init $ mkdir D $ echo "Hi" > D/F $ git add D/F $ rm -r D $ echo "Hey" > D $ git rm D/F warning: 'D/F': Not a directory rm 'D/F' fatal: git rm: 'D/F': Not a directory

If the file D created with last echo did not exist or was named differently then no error would occur as expected. For example:

$ git init $ mkdir D $ echo "Hi" > D/F $ git add D/F $ rm -r D $ echo "Hey" > F $ git rm D/F

This works as expected, and the only difference is the name of the file of the last echo. Is this the expected behavior of git rm?

-- View this message in context: http://git.661346.n2.nabble.com/cd-tp7581484.html Sent from the git mailing list archive at Nabble.com.

Andreas Ericsson· Apr 3, 2013, 22:55 UTC · re: jpinheiro · lore

Re: cd

On 04/03/2013 04:49 PM, jpinheiro wrote:
Show 34 quoted lines
> Hi all,
>
> We are students from Universidade do Minho in Portugal, and we are using git
> in project as a case study.
> While experimenting with git we found an unexpected behavior with git rm.
> Here is a trace of the unexpected behavior:
>
> $ git init
> $ mkdir D
> $ echo "Hi" > D/F
> $ git add D/F
> $ rm -r D
> $ echo "Hey" > D
> $ git rm D/F
> warning: 'D/F': Not a directory
> rm 'D/F'
> fatal: git rm: 'D/F': Not a directory
>
>
> If the file D created with last echo did not exist or was named differently
> then no error would occur as expected. For example:
>
> $ git init
> $ mkdir D
> $ echo "Hi" > D/F
> $ git add D/F
> $ rm -r D
> $ echo "Hey" > F
> $ git rm D/F
>
> This works as expected, and the only difference is the name of the file of
> the last echo.
> Is this the expected behavior of git rm?
>

Yes. The only difference between 'git rm' and 'rm' is that git rm also removes the file from its index and prepares to commit a version without it. From git's point of view, it's not an error if the file doesn't exist. It *is* an error if the directory where the file should reside suddenly no longer a directory though.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

← back to recent threads