2008-08-04 13 views
14

Mein Büro verfügt über eine zentrale Source Safe 2005-Installation, die wir für die Quellcodeverwaltung verwenden. Ich kann nicht ändern, was das Büro auf dem Server benutzt.Verschiedene verteilte Versionskontrollsysteme arbeiten zusammen

Ich entwickle auf einem Laptop und hätte gerne ein anderes lokales Quellcodeverwaltungs-Repository, das mit dem zentralen Server synchronisiert werden kann (wenn verfügbar), unabhängig davon, was dieser zentrale Anbieter ist. Der Grund für die Anfrage ist, dass ich einen lokalen stabilen Zweig/Build für Client-Präsentationen erstellen kann, während ich mich weiter entwickle, ohne durch flammende Reifen springen zu müssen. Auch als Berater können meine Kunden verlangen, dass ich ihren Quellcodeverwaltungs-Provider verwende und die Flexibilität hier würde das Leben einfacher machen.

Kann jeder der vorhandenen verteilten Quellcodeverwaltung-Clients das handhaben?

Antwort

1

Nun ... KernelTrap hat something on this. Sieht so aus, als könnten Sie vss2svn verwenden, um das Source Safe-Repository in ein Subversion-Repository zu pipettieren, und dann das sehr nette git-svn verwenden, um in ein lokales Git-Repository zu gelangen.

Ich würde annehmen, die commits zurück zu VSS wäre kein reibungsloser, automatischer Prozess mit dieser Methode.

1

Sie sollten in der Lage sein, die aktuelle Version des Codes auszuchecken und dann ein Git-Repository um sie herum zu erstellen. Dies zu aktualisieren und es an Ihr lokales Git-Repository zu übergeben, sollte schmerzlos sein. Wie sollte es klonen.

Der einzige Haken ist, dass Sie beide ignorieren müssen (ich habe etwas ähnliches mit SVN getan), indem Sie mit den entsprechenden Ignorieren Dateien verwirren. Ich nehme SourceSafe an, lassen Sie die Dinge ignorieren. Außerdem müssen Sie bestimmte Vorgänge zweimal ausführen (z. B. wenn Sie beiden mitteilen, dass Sie eine Datei löschen).

0

Eines Tages arbeite ich in einer Firma, die VSS verwenden (und in anderen Unternehmen, die weniger unwissentlich verwenden SCM), aber ich bevorzuge SVN (irgendwann werde ich versuchen GIT) für die aktive Entwicklung, für mich und meine Gruppe.

Zuerst diese Situation ist es nur gute Idee, wenn Commit zu VSS sind nur wenige Monate, weil die Arbeit mit anderen SCM (als VSS) gibt Ihnen mehr Flexibilität, aber commint zu VSS von SVN ist teuer mit der Zeit.

Meine Lösung war:

VSS -> SVN: Ich Linux-Skript (oder Ant-Skript, oder XXX-Skript), die dem aktuellen SVN von currrent Update-Verzeichnis Arbeit von VSS zu kopieren, dann aktualisieren SVN-Client und Update/Zusammenführen/Festschreiben an SVN. Damit werden Sie von Änderungen des Rests der Firma aktualisiert, die VSS verwenden.

SVN -> VSS: Auf diese Weise müssen Sie alle Ihre Änderungsdateien an VSS auschecken, dann können Sie einfach das umgekehrte Skript verwenden, um vom aktuellen Update SVN-Verzeichnis zu kopieren (.svn-Verzeichnisse zu ignorieren) und auf aktuell zu kopieren VSS-Verzeichnis aktualisieren, aktualisieren und festschreiben.

Aber denken Sie daran, in einigen Fällen lohnt sich Ihre Zeit, dies zu tun.

1

This Folge von HanselMinutes deckt genau das ab, was ich zu hören hoffte. Anscheinend kann Git nach Bedarf lokal verwendet und dann an externe Subversion/Vss-Repositories angehängt werden. Sie sprechen darüber 14 ~ 15 Minuten in.