Teach rm to remove submodules when given with a trailing '/'
authorJens Lehmann <Jens.Lehmann@web.de>
Thu, 22 Nov 2012 22:32:26 +0000 (23:32 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 24 Nov 2012 02:35:15 +0000 (18:35 -0800)
commit53e4c5dcab33d2718476867b865da9679bd2c24a
treec1de0d72c32d656a2de096fa36e2ab1056897ca9
parent3469c7ebbf41fe5fc684583dc84973b95289a6a2
Teach rm to remove submodules when given with a trailing '/'

Doing a "git rm submod/" on a submodule results in an error:
fatal: pathspec 'submod/' did not match any files
This is really inconvenient as e.g. using TAB completion in a shell on a
submodule automatically adds the trailing '/' when it completes the path
of the submodule directory. The user has then to remove the '/' herself to
make a "git rm" succeed. Doing a "git rm -r somedir/" is working fine, so
there is no reason why that shouldn't work for submodules too.

Teach git rm to not error out when a '/' is appended to the path of a
submodule. Achieve this by chopping off trailing slashes from the path
names given if they represent directories. Add tests to make sure that
logic only applies to directories and not to files.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/rm.c
t/t3600-rm.sh