Subtree merge as an alternative to submodules with git svn
Copyright © By Aaron Gustafson
For original English text, go to: http://blog.easy-designs.net/archives/2010/04/05/subtree-merge-as-an-alternative-to-submodules-with-git-svn
Wir verwenden subversion als unsere Version Control System für alle Client-Arbeit hier in Easy, weil wir einfach geliebt Springloops “Hosting-Dienste, aber wir verwenden die Git von alle unsere Open-Source-Projekte, weil, na ja, Git eine Menge Spaß damit zu arbeiten und wir lieben die Gemeinschaft, erbaut um GitHub. Um das Beste aus beiden Welten bei der Arbeit an Kundenprojekten haben, verwenden wir die Git-SVN , wie unsere Front-End in Subversion.Geta tolles Gerät, aber es ist nicht ohne Einschränkungen. Eine solche Einschränkung ist die Unfähigkeit, Git padmodulyav übersetzen in SVN: external. Glücklicherweise bietet Git eine Alternative, die kompatibel ist und spielt schön mit Subversion: external merge.
Wenn Sie
dcommit versuchen Repository padmodul enthält, werden Sie wahrscheinlich eine Meldung erhalten, so:
Blockquote nicht im Repository unter / usr / local / git / libexec / git-core / git-svn line existieren 3787
Das Objekt konnte nicht 952bee47201e87b0b0e851bcbe6c8940d429cda0 unter / usr / local / git / libexec / git-core / git-svn line 480
lesen
Es ist ärgerlich Nachricht
schmerzhafte Erinnerung, dass Sie einen anderen Weg, um Inhalte aus einem anderen Projekt in das Repository hinzufügen finden müssen. Paddreva Fusion zu helfen!
Wenn Sie bereits in Irrtum verfallen, gehen Sie vor und löschen Sie den Ordner padmodul (s) und. Gitmodules Datei und nehmen Sie Änderungen in den Laden zu machen Weg wieder zur Verfügung. Weitere, aus dem Körper in das Root-Verzeichnis des Repositorys, die folgenden Befehle auf der Kommandozeile (ersetze die aktivierten Sätze mit den entsprechenden Informationen):
git remote add-f Lokaler_Name path / to / GIT / Repository git merge-s uns - no-commit Lokaler_Name / BRANCH_NAME git read-Baum - prefix = PATH / I / WOLLEN / IT / IN /-u Lokaler_Name / BRANCH_NAME git commit-m "Merge des Projekts" git pull-s subtree Lokaler_Name Master Um sicherzustellen, vollständig aus beispielsweise für Sie gearbeitet, habe ich die folgenden Master-Zweig zusammenführen eCSStender gegenüber Lieferanten / ecsstender in ein anderes Projekt.
git remote add-f eCSStender git: / / github.com / easy-Designs / eCSStender.js.git git merge-s uns - no-commit eCSStender / Master git read-Baum - prefix = Anbieter / ecsstender /-u eCSStender / Master git commit-m "von eCSStender Merge in die Anbieter-Verzeichnis" git pull-s subtree eCSStender Master Das Schöne daran ist, dass Sie können es verwenden, letzte Zeile auf die neueste Version des Exterieur-Design, und dann alles, was Sie tun müssen, ist dcommit Änderungen vornehmen in Subversion. Das Problem ist gelöst.
2010.06.23