Pregenerated files: repo freeze and discourse

Gedare Bloom gedare at rtems.org
Tue Jul 31 17:41:37 UTC 2012


Hello,

I would like to request that we freeze all commits to RTEMS and
consider what to do about including generated files in the repository.
Agreement (much less consensus) was not reached and now we have a
large number of automatically generated files in rtems.git that
substantially bloats the size of the repository.  If we decide not to
include generated files, these commits should be undone in a way that
does not leave this bloat in the history of rtems.git. If we decide to
include generated files we should do so with some agreement and
understanding amongst the developers.

So far I have not seen very clear explanation why adding these
generated files to the git repository is the best solution long-term
for RTEMS.  The main problem we face is that switching branches with
generated files is troublesome, so every branch switch was requiring a
fresh bootstrap if there were changes to autotool input files. The
other issues are requiring users to run bootstrap and mismatches in
autotool versions, but these have always been issues and are not
motivated by git.

Some alternative solutions for being able to switch branches:
* recommend separate clones (identical to the state we had in CVS)
when doing work that will change the build process
* use git-new-workdir to manage copied repos

Some alternatives to make it easier for users not to need to run bootstrap:
* provide a branch that contains the generated files in parallel to a
branch that has non-generated files; developers will commit against
the non-generated branch and then run bootstrap to create the commit
for the generated branch, and users should checkout the branch with
generated files
* provide snapshots for users that contains the generated files, and
discourage users from cloning rtems.git directly

FWIW the problems that are being solved by adding generated files have
existed even with CVS, it's just that the git workflow makes these
problems nastier.

Here is a summary of some advantages and disadvantages of including
generated files in rtems.git repository.
Advantages:
+ easier to checkout and use rtems; no more bootstrap/autotools for clean clone
+ branches now include generated files so switching should be easier

Disadvantages:
- hard to switch between older branches that lack pregenerated files:
this problem diminishes but only after all lingering features and bugs
are committed. git-bisect might never work across the boundary
- repository size increases. the checked-out source almost doubles in
size (see: http://gedare-csphd.blogspot.com/2012/04/crufty-stuff.html
), and who knows the impact this has on the history as we move
forward.
- more conflicts when merging work that modifies autotool sources
(Makefile.am, configure.ac, etc) that cause changes in generated
files.

All developers should feel free to contribute to this discussion and
weigh-in with suggestions about what should be done.

-Gedare



More information about the devel mailing list