All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] git-clean: consider core.excludesfile
@ 2007-11-14  7:40 shunichi fuji
  2007-11-14  8:58 ` Junio C Hamano
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: shunichi fuji @ 2007-11-14  7:40 UTC (permalink / raw)
  To: git

git-clean used "git ls-files" and "git ls-files" don't consider
core.excludesfile.
i add few lines.

--- /usr/bin/git-clean  2007-11-14 08:26:20.000000000 +0900
+++ git-clean   2007-11-14 09:43:03.000000000 +0900
@@ -81,9 +81,14 @@
       if [ "$ignoredonly" ]; then
               excl="$excl --ignored"
       fi
+       core_excl="`git-config core.excludesfile`"
+       if [ -f "$core_excl" ]; then
+               core_excl_info="--exclude-from=$core_excl"
+       fi
 fi

-git ls-files --others --directory $excl ${excl_info:+"$excl_info"} -- "$@" |
+git ls-files --others --directory $excl ${excl_info:+"$excl_info"} \
+${core_excl_info:+"$core_excl_info"} -- "$@" |
 while read -r file; do
       if [ -d "$file" -a ! -L "$file" ]; then
               if [ -z "$cleandir" ]; then

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: consider core.excludesfile
  2007-11-14  7:40 [PATCH] git-clean: consider core.excludesfile shunichi fuji
@ 2007-11-14  8:58 ` Junio C Hamano
  2007-11-14  9:44 ` Jakub Narebski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2007-11-14  8:58 UTC (permalink / raw)
  To: shunichi fuji; +Cc: git

Thanks.  Sign-off please?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: consider core.excludesfile
  2007-11-14  7:40 [PATCH] git-clean: consider core.excludesfile shunichi fuji
  2007-11-14  8:58 ` Junio C Hamano
@ 2007-11-14  9:44 ` Jakub Narebski
  2007-11-14  9:54 ` [PATCH] git-clean: honor core.excludesfile Junio C Hamano
  2007-11-14 10:02 ` [PATCH] git-clean: consider core.excludesfile Johannes Sixt
  3 siblings, 0 replies; 5+ messages in thread
From: Jakub Narebski @ 2007-11-14  9:44 UTC (permalink / raw)
  To: git

shunichi fuji wrote:

> +       core_excl="`git-config core.excludesfile`"

  +       core_excl="$(git-config core.excludesfile)"

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] git-clean: honor core.excludesfile
  2007-11-14  7:40 [PATCH] git-clean: consider core.excludesfile shunichi fuji
  2007-11-14  8:58 ` Junio C Hamano
  2007-11-14  9:44 ` Jakub Narebski
@ 2007-11-14  9:54 ` Junio C Hamano
  2007-11-14 10:02 ` [PATCH] git-clean: consider core.excludesfile Johannes Sixt
  3 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2007-11-14  9:54 UTC (permalink / raw)
  To: shunichi fuji; +Cc: git

git-clean did not honor core.excludesfile configuration
variable, although some other commands such as git-add and
git-status did.  Fix this inconsistency.

Original report and patch from Shun'ichi Fuji.  Rewritten by me
and bugs and tests are mine.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

 * How does this look?  It is customary here to add a test
   script to t/ to make sure a fix won't get broken in later
   changes, so I took the liberty of adding one myself.

 git-clean.sh     |    9 ++++++++-
 t/t7300-clean.sh |   11 +++++++++++
 2 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/git-clean.sh b/git-clean.sh
index 4491738..931d1aa 100755
--- a/git-clean.sh
+++ b/git-clean.sh
@@ -75,15 +75,22 @@ esac
 
 if [ -z "$ignored" ]; then
 	excl="--exclude-per-directory=.gitignore"
+	excl_info= excludes_file=
 	if [ -f "$GIT_DIR/info/exclude" ]; then
 		excl_info="--exclude-from=$GIT_DIR/info/exclude"
 	fi
+	if cfg_excl=$(git config core.excludesfile) && test -f "$cfg_excl"
+	then
+		excludes_file="--exclude-from=$cfg_excl"
+	fi
 	if [ "$ignoredonly" ]; then
 		excl="$excl --ignored"
 	fi
 fi
 
-git ls-files --others --directory $excl ${excl_info:+"$excl_info"} -- "$@" |
+git ls-files --others --directory \
+	$excl ${excl_info:+"$excl_info"} ${excludes_file:+"$excludes_file"} \
+	-- "$@" |
 while read -r file; do
 	if [ -d "$file" -a ! -L "$file" ]; then
 		if [ -z "$cleandir" ]; then
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index eb0847a..0ed4ae2 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -177,4 +177,15 @@ test_expect_success 'clean.requireForce and -f' '
 
 '
 
+test_expect_success 'core.excludesfile' '
+
+	echo excludes >excludes &&
+	echo included >included &&
+	git config core.excludesfile excludes &&
+	output=$(git clean -n excludes included 2>&1) &&
+	expr "$output" : ".*included" >/dev/null &&
+	! expr "$output" : ".*excludes" >/dev/null
+
+'
+
 test_done

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: consider core.excludesfile
  2007-11-14  7:40 [PATCH] git-clean: consider core.excludesfile shunichi fuji
                   ` (2 preceding siblings ...)
  2007-11-14  9:54 ` [PATCH] git-clean: honor core.excludesfile Junio C Hamano
@ 2007-11-14 10:02 ` Johannes Sixt
  3 siblings, 0 replies; 5+ messages in thread
From: Johannes Sixt @ 2007-11-14 10:02 UTC (permalink / raw)
  To: shunichi fuji; +Cc: git, Junio C Hamano

shunichi fuji schrieb:
> --- /usr/bin/git-clean  2007-11-14 08:26:20.000000000 +0900
> +++ git-clean   2007-11-14 09:43:03.000000000 +0900
> @@ -81,9 +81,14 @@
>        if [ "$ignoredonly" ]; then
>                excl="$excl --ignored"
>        fi
> +       core_excl="`git-config core.excludesfile`"

Please make this

	core_excl=$(git-config core.excludesfile)

-- Hannes

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-11-14 10:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-14  7:40 [PATCH] git-clean: consider core.excludesfile shunichi fuji
2007-11-14  8:58 ` Junio C Hamano
2007-11-14  9:44 ` Jakub Narebski
2007-11-14  9:54 ` [PATCH] git-clean: honor core.excludesfile Junio C Hamano
2007-11-14 10:02 ` [PATCH] git-clean: consider core.excludesfile Johannes Sixt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.