SVN Server unter windows einrichten
-
Hey Leute,
ich versuche gerade ein svn repo unter win7 einzurichten und bin bis dato folgendem tutorial gefolgt:
http://www.pc-erfahrung.de/windows/anleitungen/subversion-server-installieren.htmlAlles klappt eigentlich soweit, jedoch kann ich den Dienst, den ich erstellt habe, einfach nicht starten und bekomme stattdessen immer die Fehlermeldung:
Der Dienst "Subversion" konnte auf "Lokaler Computer" nicht gestartet werden.
Fehler 193:0xc1Ich weiss einfach nicht woran das liegen könnte, wäre für jegliche Hilfe dankbar.
Grüße
Ambitious
-
Error 193: ERROR_BAD_EXE_FORMAT
Vielleicht ein Problem mit 32 <-> 64 Bit?Ich würde empfehlen einfach ne fergige Distro ala VisualSVNServer zu verwenden.
Ansonsten probier mal ob du
svnserve.exe
in einer Eingabeaufforderung direkt starten kannst (dann natürlich ohne den--service
Switch).
-
Ahh cool, ja daran wird es wahrscheinlich liegen.
Aber du hast recht, ich glaube ich probiers direkt mit VisualSVN. Der Grund, weshalb ich das nicht in betracht gezogen habe, ist, dass ich dachte, es sei kostenpflichtig. Hab aber gesehen, dass es auch eine Free Version davon gibt
Danke!
-
Hey,
habe noch eine Frage zur Nutzung von SVN und möchte keinen neuen thread starten dafür :).
Mal angenommen es gibt auf einen SVN Server ein Projekt mit trunk/tag/branch (wobei ich den tag zweig immer noch nicht ganz verstanden habe) und an der Entwicklung der Software sind 2 oder mehr Developer beteiligt, die parallel am Projekt arbeiten. Was ist nun, wenn Developer A an der Software gearbeitet hat und seinen Teil hochlädt und Developer B kurz darauf seinen Teil committed und kurz darauf developer C auch seinen Teil committed. Ist dann am Ende die Software auf den Stand, der sich als Addition der Zwischenstände von Developer A,B,C ergibt, oder auf den Stand von Developer C ?
Wie immer vielen Dank für die Hilfe!
-
Das kommt darauf an, sind Änderungen an einem File vorgenommen, muss der später eincheckende Developer einen Merge durchführen. Siehe Merging.
BTW: Statt SVN gibt es heutzutage wahrscheinlich schon bessere (korrigiere: zumindest modernere) Alternativen. Bspw. Git oder Mercurial.
MfG SideWinder
-
@Ambitious_One
SVN lässt dich eine neue Version eines Files nur committen, wenn die "Base-Version" deines Files noch die aktuelle Version im Repository ist.Also angenommen du Entwickler A unb B haben Foo.cpp mit der aktuellen Repository Revision, sagen wir 42, ausgecheckt.
Entwickler A ändert Foo.cpp und committed es. Foo.cpp bekommt dann im Repository Version 43.Wenn nun Entwickler B committen will, dann wird SVN ihm sagen, dass seine Version von Foo.cpp auf Revision 42 basiert, und er erstmal updaten muss. D.h. er muss die Änderungen die im Repository passiert sind "herunterladen".
Beim Update sieht SVN dann wiederrum dass Foo.cpp im Repository geändert wurde, aber ebenso von Entwickler B geändert wurde. SVN versucht dann die Änderungen selbständig "zusammenzuführen". Wenn die Änderungen die Entwickler B gemacht sich aber mit den Änderungen im Repository überschneiden, dann bekommt Entwickler B einen Merge-Conflict. Und muss mit Hand mergen. Wenn mindestens 2-3 Zeilen Abstand zwischen den jeweiligen Änderungen waren merged SVN automatisch.
Wenn alles gut gegangen ist, bzw. Entwickler B den Merge-Conflict manuell behoben hat, dann hat er jetzt ein File Foo.cpp das auf Revision 43 basiert, und kann committen.
In jedem Fall ist Entwickler B aber verantwortlich für das was er committed. D.h. er sollte sich die Änderung vor dem Commit nochmal durchsehen, ob SVN nicht irgendwas kaputtgemacht hat. Bzw. idealerweise auch nochmal kompilieren und evtl. vorhandene Unit-Tests durchlaufen lassen.
-
Ich habe damals unter Windows den Visual SVN Server benutzt, hatte damit nie Probleme. Vielleicht kannst du den ja einsetzen?