2010-12-16 3 views
2

Ich übernehme ein Projekt und sehe im Subversion-Repository einige Dateien, die zur Distribution von libtool und automake gehören wie config.guess, depcomp oder ltmain.sh. Ich glaube, das ist einfach falsch, denn wenn ich den Check-Out mache, sollte ich die Autotools auf meinem Rechner installiert haben und eine Autoreconfig machen.Autotools: Soll config.guess, depcomp oder ltmain.sh im SVN Repo gespeichert werden?

Was denkst du? Fehle ich den Punkt, diese Dateien im Repository zu haben?

Antwort

6

Normalerweise würden Sie diese nicht in Ihrem SVN Repo haben. Normalerweise haben Sie eine autogen.sh, die es bei Bedarf neu erstellt. Ihr Instinkt, potentiell veraltete Dateien nicht zu speichern, ist ein guter. Wenn jemand eine Änderung an configure.ac festlegt, und jemand anderes die ganze Sache mit der configure auscheckt, wird die Änderung keine Rolle spielen.

+0

Bemerkung: "autoreconf -i" funktioniert heutzutage sehr gut. Einige Projekte benötigen möglicherweise eine spezifischere 'bootstrap.sh' (ich bevorzuge' bootstrap.sh' gegenüber 'autogen.sh', weil es ein Programm namens' autogen' gibt). –

4

Fast alles, was generiert werden kann - und depcomp usw. gehören dazu - sollte nicht Teil eines verfolgten Quell-Repository sein.

2

Die reine Theorie ist, dass Sie Dateien, die Sie neu generieren können, nicht in die Versionskontrolle legen sollten. Da Sie diese Dateien mit autoreconf -i oder ähnlichem wiederherstellen können, gilt das in diesem Fall.

Der Grund, warum eine Menge Leute es tun (neben Ignoranz, möglicherweise) ist, dass dies eine signifikante zusätzliche Belastung für die Entwickler verursachen kann. Wenn Sie beispielsweise ein größeres Open-Source-Projekt mit Dutzenden von Entwicklern und hunderten von interessierten Followern haben, wird jeder eine andere Version von autoconf, automake, libtool, autopoint usw. installiert haben. In einfachen Fällen sollte das keinen Unterschied machen. In der Praxis ist dies der Fall, und dies kann erhebliche Kopfschmerzen bereiten und potentielle Projektmitarbeiter abweisen.

Also, als ein praktischer Kompromiss, da diese Dateien tatsächlich sehr selten ändern, wenn Sie ein sehr komplexes Setup haben, können Sie sie nur irgendwie überprüfen.