2010-09-17 2 views
5

Gibt es irgendeine Möglichkeit, git-svn zu verwenden, um nur einige Ordner einer SVN-Repo-Struktur zu klonen. Ich versuche ein Repo zu klonen, das einige verrückte große Binärdateien und eine Reihe von Unterordnern enthält, die einfach nutzlos sind. Ich habe versucht, die Option --ignore-paths zu verwenden, aber mein Klon schien lange Zeit nichts zu tun. Hat es irgendjemand von Ihnen geschafft, --ignore-Pfade funktionieren zu lassen? Ich kann nicht viel auf den Netzen finden, auf die sonst irgendjemand hereinkommt. Vielleicht bin ich der Einzige.Wie kann man mit git-svn Teile eines SVN-Repos klonen, aber trotzdem alle Zweige bekommen?

Antwort

0

Der größte Erfolg, den ich hier hatte, ist die manuelle Erstellung von Zweigen in git, die das SVN-Remote-Repository bei Bedarf spiegeln. Das Verfahren war folgendes:

  1. aktualisieren .git/config-Datei mit:
[svn-remote "svn-branch-alias"] 
      url = http://svn/branches/crazybranchname/craziername/url/ 
      fetch = :refs/remotes/git-branch-name 
  1. in der Befehlszeile ein: git svn fetch 'svn-branch-alias' die SVN Zweig Daten zu sammeln in dein lokales Git Repo.

  2. Dann geben Sie ein: git checkout 'git-branch-name' in einen kopflosen Modus zu gehen.

  3. Schließlich geben Sie git checkout 'my-local-git-branch-name' ein, um Umzugskopf auf die neueste Einreichung in diesem Zweig zu erstellen und einen lokalen Zweigalias zu erstellen, den Sie verwenden können.

können Sie jetzt commit und dcommit wie immer und nach wie vor Umschalten zwischen verschiedenen lokalen git Niederlassungen und Ihrem manuell erstellt SVN Spiegel der üblichen Mechanismen.

+0

Ich würde sagen, dass dies wirklich nur erlaubt es mir besser, einen Repo mit einer komplexen Struktur zu verwalten. Es löst nicht wirklich das Hauptproblem, das einen einfachen Befehl zur Verfügung stellt, mit dem Sie einen komplexen SVN-Repo mit git-svn richtig klonen können. – Kevin

0

Vielleicht können Sie die Struktur Ihres Subversion-Repositorys veranschaulichen, um es uns einfacher zu machen, einige Lösungen vorzuschlagen.

Versuchen Sie, Svn Klonen das gesamte Repository von der Root-URL zu git? Haben Sie versucht, kleinere Teile des Repos zu klonen und dann vielleicht mehrere Klone zusammen zu verpflanzen?

+0

Das Repository, das ich versuche zu klonen, ist dem Open-Source-Projekt OCAP RI ähnlich. Es befindet sich auf java.net. Schauen Sie, ob Sie die Struktur sehen möchten, die sie haben. Es ist ziemlich schrecklich. Meine Firma hat eine interne Kopie dieser Repo mit seinen eigenen verrückten Struktur, die noch mehr Filialen hinzufügt. – Kevin

+0

Ich habe durch den Einsatz --ignore-Pfade eines gewissen Erfolg hat und nur eine oder zwei Revisionen aus dem SVN auschecken. Aber ich bin immer noch nicht wirklich glücklich damit. Dies könnte nur ein hartnäckiges Problem sein, das nicht wirklich lösbar ist. Ich hatte gehofft, ich könnte SVN-Klon nur ein paar Ordner aus allen Zweigen git. – Kevin

1

Wir haben die "ignore-Pfade" -Funktion zu ignorieren bestimmte Verzeichnisse in einer SVN-Repo verwendet:

[svn-remote "svn"] 
     ignore-paths = ^(((branches|tags)/[^/]+|trunk)|)(huge/|mobile/) 

Diese Konfiguration ignoriert das "große" und "mobile" subdirs des Endlagers in Stamm, alle Zweige und alle Tags.

Verwandte Themen