Gibt es Gründe, nicht mehrere Versionskontrollsysteme zu verwenden?

9

Ich arbeite an einem Projekt, das GIT als Hauptversionskontrollsystem für Trunk, die offiziellen Zweige und die meisten Teilprojekte / inoffiziellen Zweige verwendet. Aus diesem Grund möchte ich meine eigene Niederlassung dazu bringen, GIT zu verwenden, damit der Rest der Community mit dem ihnen bekannten System auf meine Niederlassung zugreifen kann.

Ich arbeite jedoch an einem Teil des Projekts, der sowohl offizielle als auch inoffizielle Zweige überlappt, zusammen mit einigen Patches, die niemals in den Trunk gelangen. Daher muss ich in der Lage sein, meine Patches getrennt zu halten, damit alle verwendet werden können Mein Zweig und selektive Patches sollen für den Kofferraum verwendet werden. Dies neigt natürlich dazu, Quecksilberwarteschlangen zu verwenden.

Gibt es einen Grund, warum ich mercurial nicht für mein eigenes lokales Repository verwenden kann, sondern das Ganze auf GIT- und Mercurial-gehostete Repositorys übertrage? Oder besser gesagt, gibt es einen guten Grund, dies nicht zu tun? Ich bin sicher, dass es möglich ist.

Jon Story
quelle
2
Ich kann nur sehen, dass das Arbeiten funktioniert, wenn immer eine die maßgebliche Kopie ist und die andere immer von der ersten generiert wird. Auf diese Weise gibt es keine mögliche Verwirrung.
Joachim Sauer
Danke, das habe ich mir gedacht - Git wäre nur ein Sklave von Mercurial. Mercurial wird für mich wie gewohnt verwendet und dann von mercurial auf Git übertragen, damit Git-Benutzer auf meinen Zweig zugreifen können (ohne Schnickschnack)
Jon Story

Antworten:

8

Sie sollten dies nicht aus dem gleichen Grund tun, aus dem Sie keine Variable haben sollten, die versucht, den Status einer anderen zu verfolgen. Möglicherweise verlieren Sie den Überblick darüber, welche Version maßgeblich ist.

James McLeod
quelle
Eine wäre immer eine maßgebliche Kopie - in diesem Fall Mercurial, da ich diese selbst verwende, um Änderungen zu verfolgen, mit mehreren Patches zu arbeiten usw. Git wäre nur ein Slave, eine Kopie des Mercurial-Repositorys, mit der Mitglieder von die Community, die mit Git vertraut ist, aber nicht mit Mercurial, um eine Kopie meiner Filiale zu erhalten. Leute, die an einzelnen Patches interessiert sind, müssten natürlich Quecksilber verwenden, aber ich versuche, mich an die Konventionen des Projekts zu halten und mir das Leben zu erleichtern.
Jon Story
Danke für die Rückmeldung. Es war nicht ganz aus diesem Grund (ich habe auch gerade entschieden, dass ich GIT bevorzuge und ohne Quecksilberwarteschlangen leben kann), aber Ihre Antwort hat mir klar gemacht, dass Redundanz sinnlos ist, wenn sie vermieden werden kann, was in diesem Fall möglich ist.
Jon Story
2

Ich mache das derzeit mit git und svn. Es gibt zwar Gründe, dies nicht zu tun, es gibt jedoch keine allgemeine Regel. Git kann Dinge tun, die SVN nicht kann. Ich bin an diese Funktionen gewöhnt, sodass mein Workflow und damit die Produktivität steigen, wenn ich Git verwenden kann. Wenn ich die Vor- und Nachteile in meiner Situation betrachte, wäre ich dumm, nicht beide zu verwenden. Sie sollten Ihre Situation genauso sehen. (Übrigens sind die einzigen Nachteile für mich, dass ich ein einzelnes kleines Skript ausführen muss, um git mit svn zu synchronisieren.)

stijn
quelle
1

Sie können Ihre Patches in Git getrennt halten: Führen Sie jeden Patch in einem eigenen Zweig aus und fügen Sie sie dann wie gewünscht selektiv zusammen.

Marnen Laibow-Koser
quelle