Ich suchte verwandte Fragen, aber ich konnte nichts finden, das meiner spezifischen Situation entspricht: Ich habe einige alte Archiv-Archive von einem SVN-Server, der vor Jahren genommen wurde. Sie sind Tarballs der ursprünglichen Repository-Struktur auf dem Server. Ich möchte sie in git-Repositories als Grundlage für zukünftige Arbeiten konvertieren/die Projekte wiederbeleben. Ich habe bereits mehrere Tutorials über den Konvertierungsprozess gelesen und denke, dass ich die Autorenkonvertierung, das Branch Mapping usw. herausfinden kann, aber alle gehen davon aus, dass Sie einen SVN-Server und eine URL für das Repository haben. Muss ich den SVN-Server installieren und einrichten, um diese Konvertierung durchzuführen, oder gibt es eine Möglichkeit, auf den Repo-Dump, den ich habe, git clone
oder svn2git
(oder ein anderes Tool) zu zeigen?Umwandlung eines lokalen SVN Repo-Dump in Git
Antwort
Subversion vor Ort, um Ihre dum zu importieren installieren p, dann mit git-svn-Paket.
können Sie verwenden git svn clone file:///path/to/svn/repo /path/to/empty/dir
Ich fand bereits dieses Experiment letzte Nacht und habe es funktioniert, b Aber das ist die richtige Antwort. Danke und + 1/akzeptiert! Und willkommen in SO. :-) –
danke dir sehr! – Asenar
- Alle SVN (?) -> git-Wandler erfordern Live-Subversion-Repository,
- Baum-Kopie-Repository kein Dump ist es üblich Sicherung auf Dateiebene ist.
Sie haben:
- installieren und alle Subversion-Server konfigurieren (wenn Ihr Konverter nicht
file:///
Protokoll für SVN verarbeiten kann, sonst ist es nicht erforderlich - einfach Tarball entpacken (n) und überprüfen Repo mit svn Client) - Lesen Sie mehr über git-svn
- git-svn
Abrufen einer Liste aller Subversion-Committer:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
Clone das Subversion-Repository mit git-svn:
git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt --stdlayout ~/temp
Convert svn: Eigenschaften ignoriert .gitignore:
cd ~/temp
git svn show-ignore > .gitignore
git add .gitignore
git commit -m 'Convert svn:ignore properties to .gitignore.'
Push-Repository zu einem bloßen Git Repository:
git init --bare ~/new-bare.git
cd ~/new-bare.git
git symbolic-ref HEAD refs/heads/trunk
Dann drücken Sie das Temp-Repository in die neuen Bare-Repository.
cd ~/temp
git remote add bare ~/new-bare.git
git config remote.bare.push 'refs/remotes/*:refs/heads/*'
git push bare
Rename „Stamm“ Zweig „Master“:
cd ~/new-bare.git
git branch -m trunk master
Abgleich Branches und Tags:
cd ~/new-bare.git
git for-each-ref --format='%(refname)' refs/heads/tags |
cut -d/-f 4 |
while read ref
do
git tag "$ref" "refs/heads/tags/$ref";
git branch -D "tags/$ref";
done
Referenz: http://john.albin.net/git/convert-subversion-to-git
Nehmen Sie die Dump-Datei in Ihrem severs:
svnadmin dump "repopath or url" > import.bkp git svn clone "back"
Zum Klon Pfad und öffnen Sie dann git bash und Sie folgende Befehle ein:
git svn show-ignore > .gitignore git add .gitignore git commit -m "with message" git check in "git url"
- 1. migrieren svn lokalen Repository zu git Repository
- 2. git svn Klon eines einzelnen Verzeichnisses des SVN-Repositorys
- 3. git-svn kein git-Befehl?
- 4. schreibgeschützt git mirror eines svn repository
- 5. Speichert Git-Svn Svn Passwörter?
- 6. Fortsetzen git-svn Klon
- 7. Kombiniere lokale Git-Commits in einen Commit für git-svn
- 8. git svn - Kann ich git und svn gleichzeitig benutzen? keine Notwendigkeit Interaktion zwischen Git und SVN
- 9. Commits zu einer lokalen Kopie eines SVN-Repository erstellen
- 10. SVN: Externe Äquivalente in Git?
- 11. Konvertiere einen SVN-Checkout, um git (git-svn) zu verwenden
- 12. Git-SVN: Git Repo von zentralisierten SVN-Server aktualisieren
- 13. Merge Fern in lokalen Unterverzeichnis eines git Projekt
- 14. Wie erhalten Sie den lokalen Root-Pfad in Svn?
- 15. Verwenden Sie git auf vorhandenen SVN Repo
- 16. Git SVN und external
- 17. Git-svn fusionieren zwei SVN-Filialen
- 18. SVN - GIT Spiegel
- 19. svn to git conversion
- 20. git svn Migration mit SVN-Fehler 1.8
- 21. Codepage mit git-svn
- 22. git-svn Merge 2 Svn Filialen
- 23. git svn Klon fehlgeschlagen
- 24. git-svn Passwort ändern
- 25. Verwenden Sie git-svn mit einem vorhandenen Repo fehlt .git/svn/
- 26. Hooks für git-svn
- 27. Git svn-Klon arbeitet kein SVN-Repository
- 28. Auflösen von Git Svn Konflikten
- 29. Spiegel git svn
- 30. git-svn Verzweigung
Standard Edition von VisualSVN Server ist frei, so gibt es Plan B. – Dialecticus
Ich denke, die Installation des ursprünglichen SVN-Servers wäre ein gutes Stück einfacher als das .. –