Was wäre der beste Weg, um eine Read-only-Git-Spiegelung eines vorhandenen Svn-Repository einzurichten und Post-Commit-Hooks so einrichten, dass, wenn jemand zu Svn, der Git verpflichtet Spiegel wird automatisch aktualisiert? Hauptsächlich möchte ich den git-svn-Klon nur einmal auf dem Server ausführen und die Leute dann einfach von git auschecken lassen, ohne git-svn das gesamte svn-Repository selbst klonen zu müssen.schreibgeschützt git mirror eines svn repository
Antwort
Ich mache das auf einem Projekt, das SVN verwendet (Pushing zu einem öffentlichen Repository auf Github). Ich habe keine SVN Haken begehen, aber dies auf einem cron-Job:
#!/bin/bash
repo=/path/to/my-mirror.git
lockfile="$repo/cron-lock"
if ! lockfile -r1 "$lockfile";then
exit 1
fi
export GIT_DIR=$repo
# update refs/remotes/git-svn:
git svn fetch -q
# make 'master' match the git-svn branch:
git fetch "$repo" refs/remotes/git-svn:refs/heads/master
# publish to github
git push github master
rm -f "$lockfile"
Wenn Sie dies aus einem SVN commit statt einem Cron-Job auslösen, sollte es funktionieren.
Natürlich müssen Sie eine Fernbedienung namens github
mit git remote add github [...]
einrichten. Das von mir verwendete Git-Repository ist ein "blankes" Repository (siehe git init --bare
).
Die beste Möglichkeit, einen Svn/Git-Spiegel (beschreibbar) einzurichten, wäre SubGit - ein speziell für diese Aufgabe entwickeltes Werkzeug. Haftungsausschluss: Ich bin der Entwickler dieses Tools.
schön, danke –
Außerdem benötigt SubGit 2.0 nicht mehr lokalen Zugriff auf das Subversion-Repository und könnte auch einen beschreibbaren Git-Spiegel eines entfernten Subversion-Repository erstellen (siehe http: // subgit.com/eap). –
@AlexanderKitaev Bitte beachten Sie, dass Sie Ihre Mitgliedschaft offenlegen müssen, wenn Sie auf ein Produkt oder eine andere Website verlinken. Ich sehe von [diesem Beitrag] (http://stackoverflow.com/a/13288270/2057919), dass Sie SubGit entwickelt haben. Ich habe diese Antwort bearbeitet, um das zu reflektieren. In Zukunft sollten Sie Ihre Verbindung unbedingt erwähnen, wenn Sie mit SubGit verlinken. –
- 1. Mirror SVN Repository [Write-through-Proxy]
- 2. Wie mache ich ein Git-Repository schreibgeschützt?
- 3. Git svn-Klon arbeitet kein SVN-Repository
- 4. git-svn display svn repository url
- 5. migrieren svn lokalen Repository zu git Repository
- 6. Reicht "git push --mirror" aus, um mein Repository zu sichern?
- 7. SVN Mirror wird live REPO
- 8. Auschecken mit SVN-Client von GIT-Repository
- 9. Ist git push --spiegel ausreichend als Backup für das Repository, das mit git-svn verwendet wird?
- 10. Git-Klon --mirror mit Submodule nicht funktioniert
- 11. SVN-Verzeichnis lokal schreibgeschützt machen
- 12. Ein git-Unterverzeichnis in einem SVN-Repository?
- 13. So initialisieren Sie ein git-svn-Repository
- 14. Git entspricht "Svn Katze" mit Remote-Repository
- 15. svn-checkout aus einem GIT-Repository
- 16. git-svn nachdem ein SVN-Repository verschoben wurde?
- 17. Ein Nicht-Standard-Svn-Repository mit Git-Svn klonen
- 18. git svn Klon eines einzelnen Verzeichnisses des SVN-Repositorys
- 19. Spiegelung eines selbst gehosteten Git-Repository zu github.com (Auth-Fehler)
- 20. Teil eines Git Repository extrahieren?
- 21. Speichert Git-Svn Svn Passwörter?
- 22. Git-svn weigert sich, Verzweigung auf Svn-Repository-Fehler zu erstellen: "nicht im selben Repository"
- 23. Fortsetzen git-svn Klon
- 24. Git-Repository im Git-Repository
- 25. Reuse ein Teil eines Git Repository
- 26. Gibt es eine Möglichkeit, "git svn dcommit" aus einer geklonten Git-SVN-Repository:
- 27. Das SVN-Repository, das ich mit git-svn in git importiert habe, ist umgezogen
- 28. Spiegel git svn
- 29. Wiederherstellen gebrochen git-Repository
- 30. Konvertieren von Git Repository in SVN mit SubGit
Danke, mit github scheint der Weg zu gehen –