At Sun, 19 Apr 2015 20:54:45 +0200, Joerg Sonnenberger <joerg%britannica.bec.de@localhost> wrote: Subject: Re: Third party .gitignore .hgignore > > On Sun, Apr 19, 2015 at 08:23:48PM +0200, Thomas Klausner wrote: > > On Sun, Apr 19, 2015 at 08:18:48PM +0200, Joerg Sonnenberger wrote: > > > I would go one step further and just say leave them all alone. Some of > > > them don't even make sense, so any resolution should happen with the > > > corresponding upstream... > > > > Can you explain why we need to have these files in the CVS repository? > > > > We remove many other random files from upstream distributions as well > > if we think we don't need them. > > You are asking the wrong question. Why should we remove them? Given that > they come from upstream, they supposedly serve a purpose? I don't know > when git uses .gitignore, but CVS certainly allows committing a file > which is on the ignore list by overriding it appropiately. Hmmm.... The reasons for not wanting "ignore" files from a 3-party project in the NetBSD repository has nothing whatsoever to do with whether a given VCS allows its "ignore" list to be overridden in specific instances. .gitignore (and .hgignore, and .cvsignore) files are not ever in any way part of the source of a project! They are control files for the version control system. They are not even a guaranteed safe source of documentation about how the project might be built, especially when it is integrated into some large project. To be pedantic: .gitignore and similar such files are source code control system control files. They normally allow the user to put non-source files in the source directory without having the version control system bitch about files that are unknown and not checked into the repository. Some users like to use such "ignore" features for their version control systems as they use primitive build systems which always create product files in the source directory. Some of these same users feel that such VCS control files deserve to be part of the source distributions for their projects too, presumably to help others who will use the same VCS and the same primitive build system. However NetBSD's build system strongly advocates putting build products in a separate hierarchy, and if I'm not mistaken the policy for NetBSD's CVS-based source repository is to never import or check in any .cvsignore file. This is logical and rational as it makes it easy to know when any source file might be missing from the repository, and it also makes it easy to know when a build has screwed up and dumped files into the source tree, files which _will_ screw up subsequent builds. So, extending from that policy it would seem prudent and helpful for NetBSD to never import in any similar repository meta-control file either, even if NetBSD never switches away from CVS, in order to make it easier for NetBSD developers who might also use other types of version control systems from tripping over problems with broken builds or un-committed files. To be specific: I believe only true source files necessary for building NetBSD and/or files documenting its source should ever be committed to its source repository, and since .gitignore, .cvsignore, .hgignore, et al do not fit that description, they should not ever be committed to the NetBSD source repository. Furthermore VCS control files used by some other VCS than the VCS which NetBSD uses should be forbidden regardless for the simple reason that they have nothing to do with NetBSD's VCS. One does not import all or part of the .git directory either, for example. -- Greg A. Woods Planix, Inc. <woods%planix.com@localhost> +1 250 762-7675 http://www.planix.com/
Attachment:
pgpWu8Tc5pzjw.pgp
Description: PGP signature