3 Stimmen

Zusammenarbeit zwischen Mercurial (?) und SVN

Ich benötige einige Vorschläge für das folgende Szenario:

  • meine Uni-Gruppe hat ein großes SVN-Repository. Ich bin eigentlich in einem Unterverzeichnis des Ganzen interessiert (z.B. sagen /trunk/projects/my_project) - weiß nicht, ob es wirklich wichtig mit SVN

  • Ich werde für 95% der Übertragungen an diesem Projekt verantwortlich sein.

  • Ich würde ein DVCS viel lieber benutzen. Vorzugsweise Mercurial, da ich damit vertraut bin, aber ich bin flexibel, falls etwas anderes besser in den Arbeitsablauf passt

  • Innerhalb von my_project wird es möglicherweise viele kleinere individuelle Unterprojekte geben. Ich möchte in der Lage sein, an jedem einzelnen zu arbeiten

Der Arbeitsablauf würde in etwa wie folgt aussehen:

  • ein neues Unterprojekt erstellen

  • hacken hacken hacken (Zweig usw.)

  • wenn ein einigermaßen stabiler Zustand erreicht ist, in das Hauptprojekt einfügen und ins SVN stellen

  • gelegentlich muss ich einige Änderungen vornehmen von SVN (d.h. von anderen Personen) in das Hauptprojekt oder sogar in die Unterprojekte. Diese gehen alle in den Stamm, d.h. keine Verzweigung auf SVN-Ebene

Ich weiß über den Mercurial Wiki-Seite für SVN-Interoperabilität, und ich vermute, dass die Mercurial-Subrepo-Funktionen sich als nützlich erweisen könnten, bin mir aber noch nicht sicher, wie ich das ganze Chaos organisieren soll.

2voto

Oben Sonne Punkte 9734

Wie Lucero vorschlägt, hgsubversion ist das Werkzeug, nach dem Sie im Allgemeinen suchen. Wie Lasse in seinem Kommentar zu Luceros Antwort andeutet, steht die Verwendung der Mercurial-Funktion für Unter-Repositorien in Konflikt mit der Art und Weise, wie Unter- oder externe Repositorien in SVN behandelt werden: Mercurial verwendet einfache Dateien, um Informationen über Unter-Repositorien zu speichern, und diese Informationen werden von SVN nicht interpretiert.

Wie auch immer, basierend auf Ihrer Frage scheint es, dass Sie die Funktion des Unterprojekts nicht brauchen: Sie brauchen sie nur, wenn Sie Abhängigkeiten zwischen einzelnen Unterprojekten verfolgen wollen. Unter der Annahme, dass Sie unabhängige Unterprojekte haben, erstellen Sie einfach ein Verzeichnis in SVN unter /trunk/projects/my_project für jedes Projekt und verwenden Sie Mercurial mit hgsubversion für jeden einzeln.

Die Grundaussage ist, dass hgsubversion ermöglicht Ihnen vor Ort von allen DVCS-Funktionen profitieren, aber bei der Veröffentlichung Ihrer Arbeit sind Sie mehr oder weniger auf die Möglichkeiten von SVN beschränkt. Sie können die DVCS-Workflows nicht nutzen in Bezug auf Teamzusammenarbeit wenn ein zentrales und lineares System wie SVN als Drehscheibe für die Zusammenarbeit verwendet wird.

Vielleicht ist es möglich, einen (fragilen) Team-Workflow mit SVN zu entwerfen, der einige DVCS-Aspekte imitiert, aber ich vermute, dass dies mehr Arbeit bedeutet, als die Kollegen davon zu überzeugen, entweder auch Mercurial zu benutzen oder Ihnen einfach Patches zu schicken.

1voto

Lucero Punkte 57715

Es scheint, als ob hgsubversion ist die perfekte Lösung für Sie. Es lässt Sie Pull und Push zu einem SVN Repo, aber lokal haben Sie ein HG Repo.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X