2009-03-30 9 views
1

Unser Code wird unter Windows entwickelt (Unternehmensanforderungen), aber er läuft auf Linux-Servern. Daher verwenden wir Samba-Freigaben mit einem SVN-Checkout für sie. Leider müssen wir einige SVN-Skripte auf der Serverseite verwenden, aber unsere SVN auf dem Server ist eine 1.4, während unsere TortoiseSVN auf den Windows-Clients 1.5 oder 1.6 ist. Jede Aktion beim Checkout mit TortoiseSVN aktualisiert also die interne Struktur des Checkouts und kann daher nicht mehr serverseitig verwendet werden, da "die Client-Version zu alt ist".TortoiseSVN Kompatibilitätsmodus

Kennen Sie eine Möglichkeit, dieses Problem zu umgehen? Der einzige Weg, den ich kenne, ist SVN auf der Client-Seite überhaupt nicht zu verwenden, aber das ist irgendwie kontraproduktiv. Das Aktualisieren von SVN auf dem Server kommt auch nicht in Frage. Irgendwelche anderen Möglichkeiten?

Antwort

5

Warum benutzen Sie dann nicht die alte 1.4 TortoiseSVN?

Die andere Option wäre, eine separate Arbeitskopie für Samba-Freigaben zu haben und die von Ihnen erwähnten SVN-Skripte auszuführen. Auf diese Weise könnte Ihre freigegebene Arbeitskopie v1.6 verwenden.

0

Solange der Server das SVN-Repository sehen kann, würde ich für eine kleine Batch-Datei gehen, die etwa plink von Putty und führt ein Skript auf dem Server, der es ausgecheckt Ordner aktualisiert.

und halten Sie auch eine separate Arbeitskopie auf jedem Dev-Maschine (die ich nehme an, Sie aleady sowieso)

diese Weise ist es nicht unabhängig, welche Client-Version, die wir verwenden, da alle Client ausgecheckt Repositories sind keine Rolle. Um die Dinge ein wenig zu vereinfachen, überprüfen Sie auch in der Plink und eine Batchdatei, um das Update-Skript auf dem Server auszuführen, dann ein eingeschränktes Konto auf der Box erstellt, die Benutzer kennen die ID/Passwort von und dann können Sie es von der Client-Maschine easilly . haben wir einen Zeilenbefehl als

Tools \ -pw user @ server Passwort plink.exe folgt/fullPathToSNVUpdateScript

5

Sie Arbeitskopien nicht teilen!

Vor allem nicht zwischen verschiedenen Betriebssystemen. Sie wird in Schwierigkeiten geraten, früher oder später. Ein (das offensichtlichste) Problem ist die Zeilenendung von Textdateien. Wenn Sie die Eigenschaft svn: eol-style auf "nativ" festlegen, ist das bei einem unter Linux ausgeführten svn-Client anders als bei einem unter Windows ausgeführten svn-Client.

Es gibt viele weitere Unterschiede, die Sie mit diesem Ansatz in Schwierigkeiten bringen, aber diese erfordern Kenntnisse der Svn Interna zu verstehen.

Also noch einmal: keine Arbeitskopien teilen!

+0

+1 Ich frage mich, warum Leute diesen Fehler so oft machen. Die beste Vermutung: Sie haben bereits eine Netzwerkfreigabe verwendet, bevor die Versionskontrolle eingeführt wurde, und jetzt können sie sich keine andere Arbeitsweise vorstellen. –