tech-repository archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Third party .gitignore .hgignore



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



Home | Main Index | Thread Index | Old Index