2017-11-17 2 views
0

In unserer Firma arbeiten wir derzeit auf Svn, und haben sich gefragt, ob es möglich ist, auf Git, aber natürlich ist es nicht so trivial.Helfer Funktionen für Git und Svn Repositories API Abstraktion

Zuerst verwenden wir aktiv svn Revisioning, um aktuelle Build zu identifizieren, und svn Revisionsnummerierung ist viel einfacher zu verwenden als Git Hashes. Es gibt tatsächlich einen gemischten Ansatz - aber das ist nur auf Github verfügbar:

git hash to svn number generation scheme

Mit git es ist möglich Git Hash zu verwenden, um Nummer zu identifizieren zu begehen, und sogar Tagging durchzuführen, aber es höchstwahrscheinlich wird Handbuch benötigen Tagging für jedes Commit, was etwas schwierig klingt.

Außerdem haben wir nicht ein Svn-Repository, sondern mehrere Svn-Repositories, die sich über externe Referenzen gegenseitig referenzieren. Wie Sie sich vorstellen können, ist dies in git auch nicht so trivial - es gibt Untermodule, aber die Verpflichtung zum Untermodul erfordert Commit zu dessen Eltern-Git-Repository.

Wie auch immer ... Ich denke, Git könnte noch in Gebrauch genommen werden, aber ich begann zu fragen, ob es tatsächlich Helfer Build-Systeme gibt, die Svn und Git vollständig abstrahieren können.

denke ich, dass die Helfer Build-System:

  • müssen Open Source sein Code
  • muss abstrakt git und svn, und sie gleich auf beide arbeiten.
  • Es sollte externe Repositories unterstützen, möglicherweise Verzweigung, möglicherweise automatische Commit-Nummerierung ähnlich wie Svn.
  • könnte es "Svn" oder "Git" Kommandozeilen-Tools verwenden, um die notwendigen Operationen durchzuführen.

Ich habe mindestens SvnClient gefunden:

https://sharpsvn.open.collab.net/servlets/ProjectProcess?pageID=3797&freeformpage=Samples

Aber durch diesen Code schnell Blick - es C++ verwaltet wird, schwer, und ich vermute, nicht-trivial zu ändern. Nicht leicht in die richtige Richtung zu ändern. Unterstützt auch nicht git.

Ich würde bevorzugen, dass als Programmiersprache wäre C# oder C++. (aber nicht verwaltet C++)

Können Sie mir etwas empfehlen?

Und natürlich, wenn solche Helferfunktionen existieren nicht, vielleicht kann jemand empfehlen, von wo aus (entweder SVN-Client oder git Client, Open-Source-Code Alternativen) starten

Antwort

0

Im Allgemeinen Sie nicht git verwenden und Svn Befehle für das gleiche Repo. Auch als tool Sie verknüpft, führt es nur einige Svn-Befehle.

Sogar ist es möglich, das Werkzeug zu entwickeln, das sowohl git als auch svn Kommandos ausführen kann, aber für ein bestimmtes Repo kann es nur das svn oder git repo benutzen.

SVN und Git sind unterschiedliche VCS, und die lokale Repo für SVN und Git VCS sind sehr unterschiedlich. In der Arbeitskopie eines SVN-Repos befindet sich der Ordner .svn, der die Versionen verwaltet.Und im lokalen Git Repo gibt es den Ordner .git, um die Versionen für lokales Git Repo zu verwalten.

  • Angenommen, Sie überprüfen SVN Repo in einem Verzeichnis, und die Svn-Befehle können nur verwendet werden. Wenn Sie versuchen, git-Befehle zu verwenden, wird die Nachricht nicht als git-Repository angezeigt.
  • Angenommen, Sie klonen ein Git Repo in einem lokalen Verzeichnis, die Git-Befehle können nur verwendet werden. Wenn Sie versuchen, svn-Befehle zu verwenden, wird die Nachricht nicht als Arbeitskopie angezeigt.
  • +0

    Grundidee ist, dass ich Git & Svn abstrahieren möchte, also nach der Übertragung aller Daten von einem Repository zu einem anderen, hätte ich die gleiche Art von Toolset für die Verwendung beider Repositories. So würden Helfer-Tools (zB C# -Skript) den Übergang für mich reibungslos machen. – TarmoPikaro

    +0

    Da Sie nur eine Art von VCS-Befehlen für ein bestimmtes Repo verwenden müssen, ist es für den Entwickler kein großes Problem, die beiden Arten von VCS-Befehlen zusammenzuführen. –

    Verwandte Themen