git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git rm --recursive

From
Hans Ginzel <hans@matfyz.cz>
Date
Nov 18, 2015, 15:06 UTC
Message-ID
<20151118150637.GA49061@artax.karlin.mff.cuni.cz>
Hello!
I have added the --recursive alias for the -r option to the rm command.
H.
From 83f197151c04164b0dfd4d127e72439aebaf8b71 Mon Sep 17 00:00:00 2001
From: Hans Ginzel <hans@matfyz.cz>
Date: Wed, 18 Nov 2015 15:44:56 +0100
Subject: [PATCH] builtin: rm: add --recursive to be consistent with GNU rm
diff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt
index f1efc11..0ab1cd4 100644
--- a/Documentation/git-rm.txt
+++ b/Documentation/git-rm.txt
@@ -47,6 +47,7 @@ OPTIONS
 	by the command.
 
 -r::
+--recursive::
         Allow recursive removal when a leading directory name is
         given.
 
diff --git a/builtin/rm.c b/builtin/rm.c
index 80b972f..311b4da 100644
--- a/builtin/rm.c
+++ b/builtin/rm.c
@@ -269,7 +269,7 @@ static struct option builtin_rm_options[] = {
 	OPT__QUIET(&quiet, N_("do not list removed files")),
 	OPT_BOOL( 0 , "cached",         &index_only, N_("only remove from the index")),
 	OPT__FORCE(&force, N_("override the up-to-date check")),
-	OPT_BOOL('r', NULL,             &recursive,  N_("allow recursive removal")),
+	OPT_BOOL('r', "recursive",      &recursive,  N_("allow recursive removal")),
 	OPT_BOOL( 0 , "ignore-unmatch", &ignore_unmatch,
 				N_("exit with a zero status even if nothing matched")),
 	OPT_END(),
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index 9d90d2c..d7b73f9 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -207,12 +207,25 @@ test_expect_success 'Recursive with -r but dirty' '
 	test -f frotz/nitfol
 '
 
+test_expect_success 'Recursive with --recursive but dirty' '
+	echo qfwfq >>frotz/nitfol &&
+	test_must_fail git rm --recursive frotz &&
+	test -d frotz &&
+	test -f frotz/nitfol
+'
+
 test_expect_success 'Recursive with -r -f' '
 	git rm -f -r frotz &&
 	! test -f frotz/nitfol &&
 	! test -d frotz
 '
 
+test_expect_success 'Recursive with --recursive -f' '
+	git rm -f --recursive frotz &&
+	! test -f frotz/nitfol &&
+	! test -d frotz
+'
+
 test_expect_success 'Remove nonexistent file returns nonzero exit status' '
 	test_must_fail git rm nonexistent
 '
-- 
1.9.1
Next: Eric Sunshine
Message 1 of 2 in “git rm --recursive”
  1. Hans GinzelNov 18, 2015
  2. Eric SunshineNov 24, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.