Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Ordnerstruktur eines SVN-Repository verändern - Hilfe gesucht.

Ordnerstruktur eines SVN-Repository verändern - Hilfe gesucht.

andreas_g
andreas_g18.11.1109:24
Liebe Community!

Ich möchte für ein Programm, das auf sourceforge.net via svn verwaltet wird, einen Branch erzeugen, um dort meine Änderungen vorzunehmen.
Idealerweise möchte ich zuerst eine Working Copy auf meinem Rechner erzeugen, dort die Änderungen vornehmen, und das Ganze dann hochladen.

Ausgangssituation:
Das Repository: https://einprogramm.svn.sourceforge.net/svnroot/einprogramm

Ich habe folgendes Problem:
Das Repository ist derzeit so organisiert, dass sämtlicher Code (+Unterverzeichnisse) im Root-Verzeichnis liegen. Es ist also keine Ordner-Struktur (wie zB trunk, branches, tags) vorhanden.

Wie kann ich nun eine solche Ordnerstruktur erzeugen, ohne dabei den Code oder dessen Versionierung durcheinander zu bringen?

Das Ziel:
Ordnerstruktur:
https://einprogramm.svn.sourceforge.net/svnroot/einprogramm trunk/einprogramm (master)
https://einprogramm.svn.sourceforge.net/svnroot/einprogramm branches/einprogramm-branch1
https://einprogramm.svn.sourceforge.net/svnroot/einprogramm branches/einprogramm-branch2
.
.
.


Weiß jemand Rat?
0

Kommentare

Marcel Bresink18.11.1109:46
svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/einprogramm trunk/einprogramm
svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/einprogramm branches/einprogramm-branch1
svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/einprogramm branches/einprogramm-branch2
0
andreas_g
andreas_g18.11.1109:50
Danke!
Ist es wirklich so einfach? Gibt es keine Probleme mit dem "in sich selbst kopieren"?

Ich werde es auf jeden Fall am Abend ausprobieren!
0
andreas_g
andreas_g18.11.1109:58
Wäre es nicht sinnvoller im ersten Schritt "svn move" zu verwenden, damit die Dateien von ihrem alten Standort entfernt werden, oder würde das Probleme mit sich bringen?
Anschließend nachtürlich svn copy aus dem trunk-Verzeichnis in das branches-Verzeichnis
0
Marcel Bresink18.11.1110:48
Es wird nichts "in sich selbst" kopiert, da die URLs sich nicht gegenseitig beinhalten. "einprogramm" und "einprogramm trunk" sind getrennte Unterpfade.

Der Befehl kopiert auch keinerlei Dateien, sondern sagt dem svn-System nur, dass die bisherige Historie des "einprogramm" ab jetzt unter weiteren URLs verfügbar ist. Das ist wohl das, was Du haben willst.

Ein Umbenennen der URL mit "svn move" könnte man machen. Das würde aber für alle anderen Benutzer, die auch Working Copies haben, deren Bezüge auf das Repository zerstören.
0
andreas_g
andreas_g18.11.1111:09
Danke nochmals! Ich denke, ich habe das Prinzip hinter den URLs wohl zunächst falsch verstanden.

Ich werde in diesem Fall wohl darauf verzichten, ein trunk-Verzeichnis anzulegen.
Der "Stamm" bleibt also wie bisher:
https://einprogramm.svn.sourceforge.net/svnroot/einprogramm einprogramm

und meinen branch werde ich mit ablegen in:
https://einprogramm.svn.sourceforge.net/svnroot/einprogramm branches/einprogramm-branch1

indem ich den copy-Befehl auf die obere URL anwende.
0
andreas_g
andreas_g19.11.1109:47
Ok, versuch gestartet und misslungen.

Folgendes hat nicht funktioniert:

svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/einprogramm branches

und folgendes hat funktioniert:
svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/einprogramm/branches

Allerdings habe ich das branches directory nun wie befürchtet in das root directory kopiert, und somit mit dem Quellcode gemischt.

siehe:

Was habe ich falsch gemacht? Was kann ich nun tun?
0
Marcel Bresink19.11.1110:08
Hast Du das wirklich wörtlich so abgeschrieben? Die Bezeichnungen wie "einprogramm" waren doch wohl als Platzhalter gedacht.

Wenn Du wirklich einen Verzeichnisnamen nach dem Muster "einprogramm branches" verwenden willst, musst Du natürlich Metazeichen in einer URL verwenden:

svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/einprogramm%20branches

0
Marcel Bresink19.11.1110:23
Zu dem nun verfälschten Repository: Diese Änderung kann man nicht wirklich rückgängig machen, denn ein Versionierungssystem vergisst ja nichts. Du kannst aber eine neue Revision erzeugen, in der der falsch erzeugte Unterpfad wieder gelöscht wird:

svn delete https://einprogramm.svn.sourceforge.net/svnroot/einprogramm/branches -m "Hier steht eine Bemerkung."
0
andreas_g
andreas_g19.11.1111:01
Sorry, natürlich ist folgender Befehl fehlgeschlagen:

svn copy https://einprogramm.svn.sourceforge.net/svnroot/einprogramm https://einprogramm.svn.sourceforge.net/svnroot/branches

Fehlermeldung:
svn: Repository moved temporarily to 'http://einprogramm.svn.sourceforge.net/svnroot'; please relocate

https durch http zu ersetzen bringt genau die selbe Meldung.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.