www.delorie.com/gnu/docs/gettext/gettext_195.html   search  
Buy GNU books!

GNU gettext utilities

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

12.6.2 Files to put under CVS version control

There are basically three ways to deal with generated files in the context of a CVS repository, such as `configure' generated from `configure.in', parser.c generated from parser.y, or po/Makefile.in.in autoinstalled by gettextize or autopoint.

  1. All generated files are always committed into the repository.

  2. All generated files are committed into the repository occasionally, for example each time a release is made.

  3. Generated files are never committed into the repository.

Each of these three approaches has different advantages and drawbacks.

  1. The advantage is that anyone can check out the CVS at any moment and gets a working build. The drawbacks are: 1a. It requires some frequent "cvs commit" actions by the maintainers. 1b. The reposity grows in size quite fast.

  2. The advantage is that anyone can check out the CVS, and the usual "./configure; make" will work. The drawbacks are: 2a. The one who checks out the repository needs tools like GNU automake, GNU autoconf, GNU m4 installed in his PATH; sometimes he even needs particular versions of them. 2b. When a release is made and a commit is made on the generated files, the other developers get conflicts on the generated files after doing "cvs update". Although these conflicts are easy to resolve, they are annoying.

  3. The advantage is less work for the maintainers. The drawback is that anyone who checks out the CVS not only needs tools like GNU automake, GNU autoconf, GNU m4 installed in his PATH, but also that he needs to perform a package specific pre-build step before being able to "./configure; make".

For the first and second approach, all files modified or brought in by the occasional gettextize invocation and update should be committed into the CVS.

For the third approach, the maintainer can omit from the CVS repository all the files that gettextize mentions as "copy". Instead, he adds to the `configure.in' or `configure.ac' a line of the form


and adds to the package's pre-build script an invocation of `autopoint'. For everyone who checks out the CVS, this autopoint invocation will copy into the right place the gettext infrastructure files that have been omitted from the CVS.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003