Autotools: doivent config.guess, depcomp ou ltmain.sh être stockés dans le dépôt SVN?
Question
Je prends sur un projet et je vois dans le dépôt subversion des fichiers qui appartiennent à la distribution de libtool et automake tels que config.guess, depcomp ou ltmain.sh. Je crois que cela est tout simplement faux parce que quand je fais le check-out, je devrais avoir les autotools installés sur ma machine et faire une autoreconf.
Que pensez-vous? Est-ce que je manque le point d'avoir ces fichiers dans le référentiel?
La solution
En règle générale, vous n'auriez pas ceux de votre repo SVN. En général, vous avez un autogen.sh
qu'il reconstitue sur demande. Votre instinct de ne pas stocker des fichiers potentiellement obsolètes est un bon. Si quelqu'un commet un changement à configure.ac
, et quelqu'un d'autre vérifie le tout avec le configure
, le changement ne sera pas question.
Autres conseils
Presque tout ce qui peut être généré - et depcomp, etc. appartiennent à cette -. Ne devrait pas faire partie d'un référentiel source tracked
La théorie pure est que vous ne devriez pas mettre les fichiers que vous pouvez régénérer dans le contrôle de version. Comme vous pouvez recréer ces fichiers à l'aide autoreconf -i
ou similaire, qui applique dans ce cas.
La raison pour laquelle beaucoup de gens le font encore (en dehors de l'ignorance, peut-être) est que cela peut créer un fardeau supplémentaire important pour les développeurs. Si, par exemple, vous avez un plus grand projet open-source avec des dizaines de développeurs et des centaines d'adeptes intéressés, tout le monde aura une autre version de autoconf, automake, libtool, autopoint, etc. installé. Dans les cas simples, cela ne devrait pas faire une différence. Dans la pratique, il le fait, et cela peut créer des maux de tête et se détourner des contributeurs potentiels du projet.
Alors, comme un compromis pratique, étant donné que ces fichiers changent en fait très rarement, si vous avez une configuration très complexe, vous pouvez juste les vérifier en tout cas.