Subtree verschmelzen als Alternative zu Submodule mit git svn


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

    Comments are closed.