Refactoring-Probleme mit SVN und HTTPS

Hallo mal wieder,

nach dem politischen Beitrag von gestern nun mal wieder etwas, was mir heute im Zuge eines Eincheck-Versuchs aus Eclipse ins Subversion passiert ist.
Das Cutworks-Projekt haben wir damals relativ modular aufgebaut, daraus sind dann relativ viele voneinander abhängige (Maven-)Projekte entstanden. Gestern habe ich eine Komponente, die bisher nur in einem Modul/Projekt genutzt wurde, nochmals in einem anderen Modul / Projekt benötigt. Treu dem DRY-Prinzip (Don’t Repeat Yourself), habe ich daher ein Refactoring in Eclipse durchgeführt und die entsprechenden Klassen und Dateien über die move-Funktion ins neue Projekt verschoben. Wie immer ging das sehr problemlos.

Probleme bereitete dagegen heute das Checkin ins Subversion, welches wir auf dem Cutworks-Server über DAV und https selbst hosten. Da kam nämlich beim Einchecken die Fehlermeldung: 502 Bad Gateway und zwar bei der ersten Datei, die ich über Eclipse umbewegt/refactored habe.

Da das Deployment über einen Jenkins erfolgt, ist ein Einchecken zwingend notwendig, um eine neue Version bauen zu können bzw. an anderer Stelle weiter arbeiten zu können.

Nach einer Weile Google-Recherche habe ich dann herausgefunden, dass SVN so klug ist und ein Eclipse-Move in ein DAV copy bzw. DAV move-Befehl auf dem Server umschreibt und das funktioniert bei https nicht. Na Klasse.
Da ich auch nicht bereit war, alles zu reverten und wieder von vorne anzufangen, habe ich noch einen Weg gesucht, das einfach auf http umzustellen, darüber soll es ja prinzipiell funktionieren, zumal das Repository sowieso auch über http verfügbar ist.

Dazu bin ich nach der Anleitung aus Stackoverflow gefolgt:
https://stackoverflow.com/questions/6979872/svn-switch-with-relocate-in-eclipse

also rechte Maustaste -> relocate und dort statt https://xx.xx.x.x dann http://xx.xx.x.x angegeben. Und es hat nicht funktioniert, weil wieder eine Fehlermeldung kam:

Invalid source URL prefix: https://xx.xx.x.x/…. ( does not overlap target’s URL http://xx.xx.x.x/…. )

Also war ich total in der Zwickmühle. So konnte ich weder auf http wechseln noch meine Sourcen einchecken.  Also blieb mir nichts anderes übrig, als das auf der Kommandozeile aufzurufen. Zur Installation eines Subversion-Windows-Clients hatte ich eigentlich keine Lust, daher habe ich mein Ubuntu im Windows Linux Subsystem gestartet und dort mit:

apt-get install subversion

den Subversion-Client fix installieren lassen und dann auf allen meinen Projekten die folgende Befehle ausgeführt:

Mit

svn info

habe ich erst einmal gecheckt, ob denn die URL’s entsprechend auf https standen. Wenn ja, habe ich dann folgenden Befehl ausgeführt:

svn relocate https://xx.xx.x.x/... http://xx.xx.x.x/...

Dann konnte man die korrekte Einstellung noch einmal überprüfen:

svn info

Hier war dann tatsächlich die URL auf http gestellt.
Mit:

svn update

konnte ich dann noch einmal sicherstellen, dass die Umstellung geklappt hat.

Nachdem ich alle Projekte relocated habe, habe ich dann Eclipse neu gestartet und danach ging auch das Einchecken wieder problemlos.

Solltet Euch nichts anderes übrig bleiben und ihr MÜSST https fürs SVN nutzen, verzichtet am besten in Eclipse auf Move bzw. Refactor-Operationen und legt Euch statt dessen jeweils neue Klassen / Dateien an, die ihr dann entsprechend mit dem Inhalt der „alten“ Klassen füllt. Anschließend könnt ihr die alten wegwerfen, dann sollte das Einchecken eigentlich problemlos klappen.

Refactoring-Probleme mit SVN und HTTPS

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.