From: "Joshua T. Corbin" <jcorbin@wunjo.org>
To: git@vger.kernel.org
Subject: [PATCH] cogito recursive cg-add and cg-rm
Date: Tue, 26 Apr 2005 00:27:02 -0400 [thread overview]
Message-ID: <200504260027.03451.jcorbin@wunjo.org> (raw)
This patch adds recursive addition and removal to cg-add and cg-rm, recursion
can be disabled with the -n switch.
Signed-off-by: Joshua T. Corbin <jcorbin@wunjo.org>
Index: cg-add
===================================================================
--- f262000f302b749e485f5eb971e6aabefbb85680/cg-add (mode:100755
sha1:8ba5351a4c7e28a577ea1aa4afa1078c54e9bccc)
+++ ddd5e0ab084034b713bb2f7d9de6f365d5a2e5bf/cg-add (mode:100755
sha1:1b7a821fd0b3f9702508503a082869ed4ec3ab52)
@@ -5,9 +5,31 @@
#
# Takes a list of file names at the command line, and schedules them
# for addition to the GIT repository at the next commit.
+# Optional "-n" parameter specifies that you don't want to add directories
+# recursively.
. cg-Xlib
-[ "$1" ] || die "usage: cg-add FILE..."
+[ "$1" ] || die "usage: cg-add [-n] FILE..."
-update-cache --add -- "$@"
+recur=1
+if [ "$1" = "-n" ]; then
+ shift
+ recur=
+fi
+
+if [ $recur ]; then
+ ADDFILE=$(mktemp -t gitadd.XXXXXX)
+ while [ "$1" ]; do
+ if [ -d "$1" ]; then
+ find $1 -type f -and -not -name '.*'
+ else
+ echo "$1"
+ fi
+ shift
+ done > $ADDFILE
+ update-cache --add -- $(cat $ADDFILE)
+ rm -f $RMFILE
+else
+ update-cache --add -- "$@"
+fi
Index: cg-help
===================================================================
--- f262000f302b749e485f5eb971e6aabefbb85680/cg-help (mode:100755
sha1:86f29161aadf15411244db9514a1fdfb03e664bd)
+++ ddd5e0ab084034b713bb2f7d9de6f365d5a2e5bf/cg-help (mode:100755
sha1:36480174eba9cc54e9baba100cbd368fbced5c76)
@@ -11,7 +11,7 @@
Usage: cg-COMMAND [ARG]...
Available commands:
- cg-add FILE...
+ cg-add [-n] FILE...
cg-branch-add BNAME SOURCE_LOC
cg-branch-ls
cg-cancel
@@ -27,7 +27,7 @@
cg-mkpatch [COMMIT_ID | COMMIT_ID:COMMIT_ID]
cg-patch < patch on stdin
cg-pull [BNAME]
- cg-rm FILE...
+ cg-rm [-n] FILE...
cg-seek [COMMIT_ID]
cg-status
cg-tag TNAME [COMMIT_ID]
Index: cg-rm
===================================================================
--- f262000f302b749e485f5eb971e6aabefbb85680/cg-rm (mode:100755
sha1:029a03128eb7a8dd807335fea2ff52cb2bcda4fa)
+++ ddd5e0ab084034b713bb2f7d9de6f365d5a2e5bf/cg-rm (mode:100755
sha1:1e0c64567767668454a0360785ac84883c7bbd58)
@@ -5,10 +5,36 @@
#
# Takes a list of file names at the command line, and schedules them
# for removal from the GIT repository at the next commit.
+# Optional "-n" parameter specifies that you don't want to remove directories
+# recursively.
. cg-Xlib
-[ "$1" ] || die "usage: cg-rm FILE..."
+[ "$1" ] || die "usage: cg-rm [-n] FILE..."
-rm -f "$@"
-update-cache --remove -- "$@"
+recur=1
+if [ "$1" = "-n" ]; then
+ shift
+ recur=
+fi
+
+if [ $recur ]; then
+ RMFILE=$(mktemp -t gitrm.XXXXXX)
+ RMDIRS=
+ while [ "$1" ]; do
+ if [ -d "$1" ]; then
+ RMDIRS="$DIRS $1"
+ find $1 -type f -and -not -name '.*'
+ else
+ echo "$1"
+ fi
+ shift
+ done > $RMFILE
+ rm -f $(cat $RMFILE)
+ rmdir $(find $RMDIRS -depth -type d)
+ update-cache --remove -- $(cat $RMFILE)
+ rm -f $RMFILE
+else
+ rm -f "$@"
+ update-cache --remove -- "$@"
+fi
next reply other threads:[~2005-04-26 4:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-26 4:27 Joshua T. Corbin [this message]
2005-04-26 5:17 ` [PATCH] cogito recursive cg-add and cg-rm Joshua T. Corbin
2005-04-26 12:39 ` Petr Baudis
2005-04-26 13:21 ` Joshua T. Corbin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200504260027.03451.jcorbin@wunjo.org \
--to=jcorbin@wunjo.org \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).