[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

.cvsignore for Subversion?

From: Mitchell Oslick <moslick_at_apple.com>
Date: 2006-08-30 02:35:29 CEST

I'd like to add to/resurrect the thread started by Eugene Voytitsky,
http://subversion.tigris.org/servlets/ReadMsg?list=users&msgNo=22411. I've
just started using Subversion after several years with CVS, and I too miss
the .cvsignore functionality. As Eugene put it, Subversion has two
approaches to ignoring files: the global-ignores variable in the config
file, and svn:ignore properties on each controlled directory. The former
is what I would call "client-side global", meaning that each client has
his/her own list, and those various lists apply to all files/directories
checked out from all repositories, whereas the latter I would call "server-
side local", meaning that the svn:ignore properties apply to all clients
who have checked out the corresponding directory but that the files and
directories ignored are only those in the corresponding directory.
     In CVS, the .cvsignore in one's home directory functions exactly like
Subversion's global-ignores, but those in CVS-managed directories do *not*
function just like svn:ignore, in that they are client-side, rather than
server-side (version-controlled). I see that in a lot of cases--notably
the situation(s) described in the Subversion book--this is inefficient;
it's quite annoying to make each client create his/her own .cvsignore to
overlook, say, build products each will end up generating.
     But not all temporary files will be common to all clients. I find
myself in that situation: I'll have some test files--sometimes source,
sometimes data--lying around that I don't want to check in, but do keep
around long enough that I get tired of seeing them in the status list. Now
with Subversion, I could add such files to their directory's svn:ignore
property list. But that forces all client to ignore files and directories
with the same names as mine. That seems awfully presumptuous! Just because
I, for instance, have a directory "test" that I want to ignore doesn't mean
that all other clients will want to do so. As a result, this approach is
     Since I want client-specific ignoring, I have no recourse but to use
Subversion's (only) client-specific ignoring mechanism: global-ignores.
That will do exactly what I want, but I can envision that variable becoming
really, really long as one adds every single ignored local file and directory
to it! It would end up being hardly "global".
     The most elegant solution, I believe, would be to add .cvsignore
functionality to what Subversion already has. Files/directories would be
ignored if (1) they appear in the global-ignores variable in the config
file; (2) they appear in the svn:ignore property of the directory in which
they reside; or (3) they appear in a ".svnignore" file in the directory in
which they reside, should a .svnignore file be present in that directory.
This would give server- *and* client-side local ignoring and client-side
global ignoring. I hope Subversion's developers will think about adding
this feature. Thanks for the consideration!


 Mitchell Oslick
 Pro Video Applications
 Apple Computer, Inc.

To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Aug 30 06:15:07 2006

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.