Hi Leute!
Erstmal vielen Dank für den gestrigen Abend. Es ist schön zu sehen, das es soviele Gleichgesinnte gibt ;-)
Danke auch für den Vortrag die vielen Anregungen und die Diskussionen. Man traut sich jetzt gleich viel mehr zu fragen ;-)
Nutzt jemand CVS um seine eigenen Programme, Progrämmchen und Projekte zu verwalten?
Wie organisiert ihr Euch diese mit CVS, wenn es mehr als 5, 10, 20 werden und man das ganze strukturieren möchte?
Ich hatte die Idee das mit Unterverzeichnissen zu lösen, aber ich möchte nicht immer unbedingt den ganzen Codetree kopieren, wenn ich nur in einem Teilprojekt was machen will.
Any Ideas?
Bert (der gerade von sitecopy begeistert wurde)
On Thursday 09 August 2001 13:07, Bert Lange wrote:
Nutzt jemand CVS um seine eigenen Programme, Progrämmchen und Projekte zu verwalten?
Alle die ernsthaft programmieren werden CVS oder ähnliches verwenden. Die Vorteile will man nicht missen :)
Wie organisiert ihr Euch diese mit CVS, wenn es mehr als 5, 10, 20 werden und man das ganze strukturieren möchte?
Wie, 15 Einzelprojekte oder Subprojekte? Es gibt einen CVS-Server, jedes Projekt sollte darin ein Repository bekommen. Innerhalb davon erstellt man Module, z.B. für Subprojekte wie "kdegames" oder "gnumeric" oder so, die kann man dann mit "checkout" runterladen. Dort hinein wiederum kommen Unterverzeichisse, die üblicherweise alle an genau ein Build-System gebunden sind, also z.B. eine configure.in sich teilen.
Ich hatte die Idee das mit Unterverzeichnissen zu lösen, aber ich möchte nicht immer unbedingt den ganzen Codetree kopieren, wenn ich nur in einem Teilprojekt was machen will.
Mußt du nicht: cvs co module/path/to/my/own/stuff holt dir nur das Verzeichnis. Nur halt benötigt man die Dateien aus dem Top-Level-Verzeichnis oft mit, zumindest wenn man neue Quelldateien hinzufügt und sich damit die Makefile.am's ändern. Kopieren muß man ja nicht, man arbeitet immer in der lokalen Kopie des Repositories. Und bei einer ordentlichen Policy schreibt dir dann im CVS auch nicht immer jemand rum, so daß du fast immer blind committen kannst (ansonsten sagt dir CVS das schon).
Du kannst auch "Symlinks" anlegen, nennt sich Virtuelle Module und kann durchaus ekelhaft sein wenn man das nicht weiß, und WebCVS kommt damit auch nicht klar.
Josef Spillner
Hi Josef und die anderen Antworter!
Ich merke gerade, eine richtige Frage enthält schon die halbe Antowrt. (Ich hatte nicht die richtige Frage, sonst gäbe es nicht soviele Gegenfragen ;-)
On Thu, Aug 09, 2001 at 08:03:07PM +0200, Josef Spillner wrote:
Wie organisiert ihr Euch diese mit CVS, wenn es mehr als 5, 10, 20 werden und man das ganze strukturieren möchte?
Wie, 15 Einzelprojekte oder Subprojekte? Es gibt einen CVS-Server, jedes Projekt sollte darin ein Repository bekommen. Innerhalb davon erstellt man Module, z.B. für Subprojekte wie "kdegames" oder "gnumeric" oder so, die kann man dann mit "checkout" runterladen. Dort hinein wiederum kommen Unterverzeichisse, die üblicherweise alle an genau ein Build-System gebunden sind, also z.B. eine configure.in sich teilen.
Hmm. Naja, ich habe noch keine configure.in. Ich versuch mal zu erklären, wie ich das meine:
Also erstmal (um auch gleich auf die anderen Postings mit einzugehen) nutze ich CVS nur alleine und möchte nun meine ganzen Jugendsünden (ca. 400 Pascalquelltexte) und das was nun so langsam alles dazukommt (shell, perl, java, c, php, html, etc.) in das/die Repostory legen. Open Source ist das zwar im Prinzip, aber sowas möchte man noch nicht wirklich im Netz finden/veröffentlichen (außer die Homepage) ;-) Aber was nicht ist, kann ja noch werden. Momentan reicht es aber wenn ich damit arbeiten kann.
Nach Programmiersprache zu ordnen macht heutzutage irgendwie nicht mehr soviel Sinn und so wie es jetzt ist, ist es auch unübersichtlich :-(
Es gibt z.B. ein Verzeichnis "Mathematisches", darunter dann "Fraktale" oder "Demos". Beim Suchen fangen dann die Probleme an: "War das tolle Ding jetzt in Demos, Fraktale/Demos, Musik/Demos oder Grafik/Demos ? :-(("
Mußt du nicht: cvs co module/path/to/my/own/stuff holt dir nur das Verzeichnis. Nur halt
Kopieren war etwas ungeschickt ausgedrückt. Ich meinte natürlich den Checkout. Es nervt aber der lange Pfad, den ich dann eingeben muß. Gibt es ein leckeres CVS-Frontend a la Midnight Commander? Das könnte mir gefallen.
Eine Lösung wäre vielleicht auch die Pfade math.fractal und math.demos zu benennen. Muß ich mal drüber nachdenken.
benötigt man die Dateien aus dem Top-Level-Verzeichnis oft mit, zumindest wenn man neue Quelldateien hinzufügt und sich damit die Makefile.am's ändern.
Meine Progrämmchen haben noch keine Makefile.am's ;-) Sie sind im Prinzip auch all unabhängig voneinander. Nur eine überschaubare Ordnung soll halt drinsein.
Kopieren muß man ja nicht, man arbeitet immer in der lokalen Kopie des Repositories. Und bei einer ordentlichen Policy schreibt dir dann im CVS auch nicht immer jemand rum, so daß du fast immer blind committen kannst (ansonsten sagt dir CVS das schon).
Ist allein dran arbeiten auch eine Policy ;-))
Du kannst auch "Symlinks" anlegen, nennt sich Virtuelle Module und kann durchaus ekelhaft sein wenn man das nicht weiß, und WebCVS kommt damit auch nicht klar.
Dann fällt es sowieso aus. Wo doch WebCVS die leckeren farbigen diff's anzeigt.
Was mich auch noch ein bissel nervt, ist das man, wenn der ganze Kram dann in den Repostorys liegt, irgendwie nicht mehr so easy durchbrowsen kann.
Vielleicht habt ihr ja noch ein paar gute Gedanken!
Bert (der jetzt sitecopy in /etc/ppp/ip-up.d/ integriert hat ;-)
On Thursday 09 August 2001 13:07, Bert Lange wrote:
Nutzt jemand CVS um seine eigenen Programme, Progrämmchen und Projekte zu verwalten?
jupp.
Wie organisiert ihr Euch diese mit CVS, wenn es mehr als 5, 10, 20 werden und man das ganze strukturieren möchte?
sind es Projekte, die nur Du bearbeitest oder sind daran Teams beteiligt? Sind die Teams unterschiedlich oder immer das selbe Team?
Das alles beeinflußt die Antwort etwas. Aber viel mehr: Sind es Open Source Projekte?
Hier einige Antworten:
a) nur Du: nimm einfach ein Verzeichnis auf deiner Platte und mache cvs -d /verzeichnis init dann kannst Du dort alles reinschmeissen (mache ich mit meinen ganzen Briefen und Beispielsourcen so)
b) Open Source: richte einfach auf http://sourceforge.net oder http://www.berlios.de Projekte ein und nutze die Infrastruktur dort.
c) Closed Source oder interne Projekte einer WG/Firma/eV/etcpp:
c1) einer oder zwei Leute: siehe a)
c2) ein Team für alle Projekte: erkläre einen Rechner zum CVS-Server (die Belastung ist minimal), richte dort so ein Verzeichnis (siehe a) ein und trage das in /etc/inetd.conf ein: 2401 stream tcp nowait.400 root /usr/sbin/cvs pserver \ --allow-root=/verzeichnis
c3) mehrere Teams, Zugriffskontrolle nötig, feste Projektanzahl: *richte für jedes Team/Projekt eine Unix-Gruppe ein und füge die Mitglieder hinzu (/etc/group) *richte für jedes Projekt ein Verzeichnis ein (erstmal ohne init) *gib diesem Verzeichnis jeweils die entsprechende Gruppe und die Rechte 02770 (oder 02775, wenn auch andere Gruppen lesen dürfen) *initialisiere die Verzeichnisse (siehe a) *mache für jedes Verzeichnis einen --allow-root - Eintrag in /etc/inetd.conf
c4) wie c3, aber Projektzahl kann schnell steigen: *Lösung 1: Du hast (bist) ein(en) Admin, der schnell genug reagieren kann *Lösung 2: Du schaffst eine (Web-)Umgebung, in der das automatisiert wird 2a) Du ziehst die SourceForge-Software und installierst sie lokal (eigenen Server verwenden, Debian potato/woody sollte am besten gehen, da das Original auch damit arbeitet) 2b) Du kaufst Dir Support von VA-Linux, die vertreiben SF-Onsite mit entsprechendem Support (VA ist der Hauptsponsor von SF) 2c) Du schreibst einen eigene Umgebung, das kann von einem Shell-Script bis zu einer Webumgebung reichen (nach meinen Erfahrungen der letzten Wochen macht sich PHP plus Shellscript recht gut, leider darf ich das Ergebnis nicht weitergeben :-( )
Konrad
On Thu, Aug 09, 2001 at 08:44:46PM +0200, Konrad Rosenbaum wrote:
2c) Du schreibst einen eigene Umgebung, das kann von einem Shell-Script bis zu einer Webumgebung reichen (nach meinen Erfahrungen der letzten Wochen macht sich PHP plus Shellscript recht gut, leider darf ich das Ergebnis nicht weitergeben :-( )
Dafür hast Du was gelernt dabei ;-)
Bert
Am Donnerstag, 9. August 2001 07:07 schrieben Sie:
Nutzt jemand CVS um seine eigenen Programme, Progrämmchen und Projekte zu verwalten?
Jein.
Wie organisiert ihr Euch diese mit CVS, wenn es mehr als 5, 10, 20 werden und man das ganze strukturieren möchte?
5, 10, 20 Programme, Projekte oder Programmierer?
Ich hatte die Idee das mit Unterverzeichnissen zu lösen, aber ich möchte nicht immer unbedingt den ganzen Codetree kopieren, wenn ich nur in einem Teilprojekt was machen will.
Also hast du all deine Progrämmchen jetzt in einem Verzeichnis. Das ist schlecht. Die Gemeinsamkeiten könntest du in eine lib stecken, oder in ein Unterverzeichnis, oder in das Wurzelverzeichnis und die Unterschiede in Unterverzeichnisse.
Wenn du schon mit Unterverzeichnissen Probleme hast, bietet sich die Aufteilung in Module vielleicht nicht unbedingt an.
Stephan, (der sich noch von sitecopy begeistern lassen will)
lug-dd@mailman.schlittermann.de