threads / bug / 35108

BUG - git clean

Subject: BUG - git clean

## tl;dr

2 messages between Oct 11, 2013 and Oct 12, 2013.

replies: 1people: 2as markdown or json

jones.noamle· Oct 11, 2013, 18:53 UTC · lore

Passing to git clean wrong (non-existent) paths together with valid ones, causes it to delete stuff that it shouldn't. Am I right? Script to reproduce:

mkdir test cd test git init . mkdir ba mkdir ba/ca

# So far so good. # Should clean directory "ba/ca" git clean -dn -- ba/ca

# Should clean "ba/ca" and ignore non-existent "j" # Instead, it wants to delete "ba" totally. git clean -dn -- ba/ca j

git --version

--------------------------------------------------------------------- Output:

+ mkdir test
+ cd test
+ git init .
Initialized empty Git repository in /home/notroot/test/.git/
+ mkdir ba
+ mkdir ba/ca
+ git clean -dn -- ba/ca
Would remove ba/ca/
+ git clean -dn -- ba/ca j
Would remove ba/
+ git --version
git version 1.7.9.5
---------------------------------------------------------------------

Thanks! Noam

Di Xu· Oct 12, 2013, 10:36 UTC · re: jones.noamle · lore

Re: BUG - git clean

Show 13 quoted lines
> mkdir test
> cd test
> git init .
> mkdir ba
> mkdir ba/ca
> 
> # So far so good.
> # Should clean directory "ba/ca"
> git clean -dn -- ba/ca
> 
> # Should clean "ba/ca" and ignore non-existent "j"
> # Instead, it wants to delete "ba" totally.
> git clean -dn -- ba/ca j

actually, my git will also do it wrong when 'j' exist, do these after your script:

$ git clean -dn ba/ca j Would remove ba/ $ mkdir j $ git clean -dn ba/ca j Would remove ba/ #here missing 'ca' Would remove j/

I think it's the problem of directory path manipulation.

← back to recent threads