Karl Hasselström wrote:
On 2007-10-15 14:09:32 +0200, Andreas Ericsson wrote:
When collaborating with projects managed by some other scm, it often
makes sense to have git read that other scm's ignore-files. This
patch lets git do just that, if the user only tells it the name of
the per-directory ignore file by specifying the newly introduced git
config option 'core.ignorefile'.
+ For example, setting core.ignorefile to .svnignore in
+ repos where one interacts with the upstream project repo
+ using gitlink:git-svn[1] will make a both SVN users and
+ your own repo ignore the same files.
+ The name of the `.gitignore` file can be changed by setting
+ the configuration variable 'core.ignorefile'. This is useful
+ when using git for projects where upstream is using some other
+ SCM. For example, setting 'core.ignorefile' to `.cvsignore`
+ will make git ignore the same files CVS would.
I agree with what you're trying to do, but you're ignoring the fact
that Subversion's ignore patterns (and possibly cvs's too -- I haven't
checked) are not recursive, while the patterns in .gitignore are
recursive per default. So using ignore patterns directly from
Subversion ignores more files under git than the same patterns did
under Subversion.
Yes, I just got bitten by this. The top-level .cvsignore file ignores
Makefile (since it's generated from ./configure), but Makefile exists in
several subdirectories where it's *not* generated, but adding !Makefile
to all those places doesn't sit too well with some of the project
maintainers, and cvs doesn't grok /Makefile to mean "toplevel Makefile"
(and it shouldn't since it has no notion of recursive ignores).
One possible way to solve that would be to optionally have
non-recursive per-directory ignore files. I haven't looked at how this
is implemented, though, so I don't know if it's a good suggestion or
not.
I'll have a look at it. Thanks for the review.
--
Andreas Ericsson andreas.ericsson@xxxxxx
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html