Subject: Re: [PATCH] gitignore: add top level patch ignore rule

From: Michael J Gruber <[email-masked]>
Date: Wed, 20 Jul 2011 10:09:19 +0200

Vitaliy Ivanov venit, vidit, dixit 20.07.2011 00:17:
> Add top level ignore rule for patches created by format-patch command.

Please don't.

The tracked ignore file is for ignoring products and artefacts of our
build process. format-patch is not part of this process, and the
existence of *.patch files depends on your workflow. But what is much
worse: In

git status
git format-patch rev-spec
git send-email *.patch

it is very easy to send out the wrong patches (along with the right
ones), because your patch hides them from status. Also, I can't clean
them up with "git clean -f" any more. I would have to use "git clean -f
-x" which would clean the build products also (and force a rebuild).

So, your patch makes a format-patch based workflow much worse. What
problem does it try to solve?

> On the way, reorganize ignore rules and add comments.

How and why do you reorganize?

> 
> Signed-off-by: Vitaliy Ivanov <[email-masked]>
> ---
>  .gitignore |   43 ++++++++++++++++++++++++++++++-------------
>  1 files changed, 30 insertions(+), 13 deletions(-)
> 
> diff --git a/.gitignore b/.gitignore
> index 8572c8c..47afe77 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -1,3 +1,15 @@
> +#
> +# NOTE! Don't add files that are generated in specific
> +# subdirectories here. Add them in the ".gitignore" file
> +# in that subdirectory instead.
> +#
> +# NOTE! Please use 'git ls-files -i --exclude-standard'
> +# command after changing this file, to see if there are
> +# any tracked files which get ignored after the change.
> +
> +#
> +# Top-level files
> +#
>  /GIT-BUILD-OPTIONS
>  /GIT-CFLAGS
>  /GIT-LDFLAGS
> @@ -187,21 +199,10 @@
>  /test-svn-fe
>  /test-treap
>  /common-cmds.h
> -*.tar.gz
> -*.dsc
> -*.deb
>  /git.spec
> -*.exe
> -*.[aos]
> -*.py[co]
> -.depend/
> -*.gcda
> -*.gcno
> -*.gcov
>  /coverage-untested-functions
>  /cover_db/
>  /cover_db_html/
> -*+
>  /config.mak
>  /autom4te.cache
>  /config.cache
> @@ -213,6 +214,24 @@
>  /tags
>  /TAGS
>  /cscope*
> +/Debug/
> +/Release/
> +/*.patch
> +
> +#
> +# Normal rules
> +#
> +*.tar.gz
> +*.dsc
> +*.deb
> +*.exe
> +*.[aos]
> +*.py[co]
> +.depend/
> +*.gcda
> +*.gcno
> +*.gcov
> +*+
>  *.obj
>  *.lib
>  *.sln
> @@ -222,5 +241,3 @@
>  *.user
>  *.idb
>  *.pdb
> -/Debug/
> -/Release/