Bonjour,

Ca y est, je me lance dans un projet perso. Le code sera en C, le build system sera autotools (autoconf, automake, ainsi que libtool quand il deviendra nécessaire), et les sources seront contrôlées par Git.

Je vais mettre en place un repository de source publique avec Git. La question que je me pose, c'est que dois-je distribuer et que dois-je exclure du repository Git au niveau des fichiers générés par les programmes autotools. Ceci dans le but de ne pas trop faire diverger la tailler du repository Git.

Je souhaite obternir le résultats suivant:
- si un autilisateur télécharge les sources par Git, il faut qu'il soit capable de compiler le programme avec configure et make, sans devoir faire appel à autoreconf et automake. Je laisse donc configure, tous les Automake.in ainsi que config.h.in (? pour ce dernier) sour le contrôle de Git. L'utilisateur en question peut compiler et installer, ou bien parcher le code sans avoir à se soucier du build system, tant qu'il se contente de modifier les fichier sources et header existants.
- si un utlisateur souhaite patcher le code tout en modifiant sa répartition en fichiers, c-a-d créer ou supprimer des fichiers de code, ajouter une librairie dans le projet ou bien linker avec une librairie en dehors du projet, je lui laisse configure.ac et les Automake.in, ceci afin qu'il n'ait pas besoin de tout reprendre de zéro, ce qui serait ennuyeux pour lui et peut-être pour moi si jamais on veut merger. Charge à cet utilisateur de faire retourner autoreconf et automake dans l'arborescence après avoir modifié les fichiers cités. Je laisse également Git gérer les macros m4 locales du projet, si il doit un jour y en avoir. Par contre je ne distribue pas les fichiers intermédiaires générés par des programmes tels que autoheader, aclocal, etc.

Pour ce faire, j'utilise le fichier .git/info/exclude:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
 
# build directories
build/
build-armv4t/
 
# autotools generated files
ChangeLog
aclocal.m4
autom4te.cache/
depcomp
install-sh
missing
Je pense que je dois laisser Git gérer le fichier config.h.in. Quelqu'un peut confirmer?
D'autre part, qu'en est-il du fichier install-sh. Ai-je raison de l'exclure ci-dessus?

Merci de vos réponses.