cvs2svn Verstaendnisfrage

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

cvs2svn Verstaendnisfrage

Beitrag von roli » 11.09.2008 19:53:44

Hi,

ich habe hier ein CVS Repository in dem verschiedene Projekte arbeiten.
/daten/csvrepo/prj_1
/daten/csvrepo/prj_2
...
/daten/csvrepo/prj_n

nun moechte ich gerne prj_2 in ein SVN Repository konvertieren. Sowweit kein Thema, wozu gibt's cvs2svn. Ich hab's auch soweit erfolgreich geschaft, aber ...
Folgende Doku How can I convert project foo so that trunk/tags/branches are inside of foo? die ich gefunden habe macht mich stutzig. Hiernach habe ich folgendes versucht:

Code: Alles auswählen

> create /daten/repo_1_svn/ --fs-type fsfs
> cvs2svn --trunk=/daten/repo_1_svn/prj_2/trunk --branches=/daten/repo_1_svn/prj_2/branches --tags=/daten/prj_2/repo_1_svn/tags /daten/csvrepo/prj_2 -s /daten/repo_1_svn --existing-svnrepos --encoding=iso8859_15
Nachdem was ich da gelesen habe wuerde ich erwarten ein Verzeichnis /daten/repo_1_svn/prj_2/trunk im Dateisystem vorzufinden, das ist aber nicht der Fall. Habe ich das ganze jetzt falsch verstanden, oder mache ich was falsch?
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: cvs2svn Verstaendnisfrage

Beitrag von roli » 18.09.2008 10:41:53

Push
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: cvs2svn Verstaendnisfrage

Beitrag von jhr-online » 18.09.2008 11:17:15

Was findest du denn? conf, dav, db, hooks, locks? Dann bist du richtig. :) Kümmer dich nicht darum, wie subversion arbeitet, sondern nutz es *g

Code: Alles auswählen

svn co repository hierhin
und du findest in "hierhin" tags, branches und trunk -- zumindest, wenn alles geklappt hat. cvs2svn hab ich nie benutzt.

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: cvs2svn Verstaendnisfrage

Beitrag von roli » 18.09.2008 12:36:10

Hi,
jhr-online hat geschrieben:Was findest du denn? conf, dav, db, hooks, locks? Dann bist du richtig. :)
Jeep, das ist da. Es funktioniert ja auch, das ist nicht das Thema.
jhr-online hat geschrieben:Kümmer dich nicht darum, wie subversion arbeitet, sondern nutz es *g
Genau das mag ich halt eben nicht, ich wuerde es halt eben doch gerne verstehen.
Vielleicht habe ich das was auf der Webseite steht falsch verstanden, vielleicht ist's einfach falsch ...
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: cvs2svn Verstaendnisfrage

Beitrag von jhr-online » 18.09.2008 15:41:07

Naja,, subversion benutzt eine Datenbank, um die Sachen zu speichern. Du hast dich mit --fs-type für fsfs entschieden. Wie das genau funktioniert, steht hier: http://web.mit.edu/ghudson/info/fsfs. Allerdings dürfte dir das nicht viel bringen. Du guckst bei MySQL-Datenbanken doch auch nicht im Dateisystem irgendwelche Werte nach, oder? :)

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: cvs2svn Verstaendnisfrage

Beitrag von roli » 18.09.2008 20:36:51

Hi,
jhr-online hat geschrieben:Du guckst bei MySQL-Datenbanken doch auch nicht im Dateisystem irgendwelche Werte nach, oder? :)
mhh, bei MyISAM Datenbanken bringt das durch aus noch Erkenntnis. Aber davon mal ab, das Missverstaendnis liegt ja vermutlich an den Optionen fuer cvs2svn "--trunk=/daten/repo_1_svn/prj_2/trunk". Ich stehe halt nach dem was ich bislang darueber gelesen habe auf dem Schlauch. Ich wuerde die von mir genannte Strucktur halt im Repo erwarten. Das ist ja nun mal nicht der Fall, also was machen die Optionen dann? Mehrfaches Lesen hat die Erkenntnis nicht gebracht, und nachsehen im Dateisystem auch nicht.

Den Link werde ich mir vermutlich am Wochenende mal ansehen, eher wird's leider nix.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: cvs2svn Verstaendnisfrage

Beitrag von jhr-online » 18.09.2008 21:00:06

Versteh ich nicht. Wenn du das neue svn-Repo auscheckst, werden dann die drei Verzeichnisse (trunk, tags, branches) angezeigt?

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: cvs2svn Verstaendnisfrage

Beitrag von roli » 19.09.2008 09:00:31

Hi,

mir geht's halt nicht um den Check-Out, sondern um den "Transformationsforgang" mit cvs2svn.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: cvs2svn Verstaendnisfrage

Beitrag von jhr-online » 19.09.2008 10:40:24

Tja, dann musst du wohl entweder gute Doku finden, oder den Quellcode lesen.

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Re: cvs2svn Verstaendnisfrage

Beitrag von HELLinG3R » 19.09.2008 11:00:25

Im Endeffekt wird das so aussehen, dass
* cvs2svn ein frisches SVN-Repo anlegt
* das CVS repo analysiert und das SVN-repo aufbaut
* die daten aus dem CVS ausliest und ins SVN-Repo schreibt

Wenn man dann eine Arbeitskopie des SVN auscheckt, sollte alles passen.
Die Details stehen dann sicher im Quelltext uns vielleicht in einer Doku.

Du kannst das SVN-Repository jedoch auch jederzeit manuell umstrukturieren. Das ist alles kein Problem.
Perl macht Spass.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: cvs2svn Verstaendnisfrage

Beitrag von roli » 19.09.2008 11:46:15

HELLinG3R hat geschrieben:Du kannst das SVN-Repository jedoch auch jederzeit manuell umstrukturieren. Das ist alles kein Problem.
Was muesste ich denn machen um für jedes Projekt was ich im SVN habe ein eigenen Unterverzeichnis unterhalb des SVN-Repositorys zu erstellen, bzw. was an "manuell umstruckturieren" ist denn alles moeglich?
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Re: cvs2svn Verstaendnisfrage

Beitrag von HELLinG3R » 23.09.2008 09:12:19

Umstrukturieren kannst du so, wie du in einer normalen Verzeichnisstruktur auch arbeiten würdest.
Im Gegensatz zu SVN gibt es nur das Repository, Branches, Tags etc werden einfach durch Unterverzeichnisse im Repository abgebildet. Dass in "/branches/my-branch" dein my-branch liegt, wird eifnach dadurch definiert, dass du weißt, dass in /branches deine Branches liegen. Durch dein Verhalten damit, arbeitest du faktisch mit branches (d.h. du commitest zeug rein und irgendwann mergest du das zurück in den /trunk, der selber auch nur wieder ein Verzeichnis ist).
Bei SVN gibst DU deinem Repository den Sinn und die Struktur, nicht das System selber. Das macht es wesentlich übersichtlicher und vor allem Flexibler, da du im Prinzip all das tun kannst, was du willst.

Für weitere Informationen (Konzepte die hinter SVN stehen etc) empfehle ich das sehr gute SVN-Book, das auch ein Kapitel für CVS-Umsteiger bereithält und die Unterschiede erklärt: http://svnbook.red-bean.com/

Was muesste ich denn machen um für jedes Projekt was ich im SVN habe ein eigenen Unterverzeichnis unterhalb des SVN-Repositorys zu erstellen
Zuersteinmal musst du eine Arbeitskopie des Repositorys ziehen. Du kannst theorethisch auch unterverzeichnisse auschecken (zb /trunk wenn du die aktuelle Hauptentwicklung haben willst oder /tags/1.0 wenn du die 1.0 Version willst - falls es die bei dir gibt, da kann ja alles mögliche stehen, siehe oben):
Das geht mit deinem Lieblings-SVN-Client oder mit "svn" auf der Kommandozeile.

Anschließend solltest du einen Pfad ähnlich diesem hier vorfinden: "mein-repo/", in diesem sollte es dann "tags/", "trunk/" und "branches/" geben. Dort sollten die CVS-Daten migriert zu finden sein.
Wie du das ganze umbauen kannst ist im SVN-Buch beschrieben. Im Prinzip geht das aber am einfachsten über einen svn-client.
Perl macht Spass.

Antworten