Quale sarebbe il modo migliore per impostare un git mirror di sola lettura di un repository svn esistente e impostare ganci post-commit in modo tale che ogni volta che qualcuno si impegna a svn, il git mirror viene aggiornato automaticamente? Principalmente, mi piacerebbe eseguire git-svn clone una sola volta, sul server, e quindi permettere alle persone di uscire da git senza dover git-svn clonare l'intero repository svn.git mirror di sola lettura di un repository svn
risposta
Lo faccio su un progetto che utilizza SVN (che spinge su un repository pubblico su github). Non ho uno SVN commit hook, ma questo su un processo di cron:
#!/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"
Se si attiva questo da uno SVN commit hook al posto di un lavoro cron, dovrebbe funzionare.
Ovviamente, è necessario impostare un telecomando chiamato github
utilizzando git remote add github [...]
. Il repository git che sto usando è un repository "bare" (vedi git init --bare
).
Il modo migliore per impostare un mirror Svn/Git (scrivibile) sarebbe utilizzare SubGit - questo è uno strumento sviluppato appositamente per questa attività. Disclaimer: sono lo sviluppatore di questo strumento.
bello, grazie –
Inoltre, SubGit 2.0 non ha più bisogno di accesso locale al repository Subversion e potrebbe creare anche un mirror Git scrivibile di un repository Subversion remoto (vedi http: // subgit.com/eap). –
@AlexanderKitaev Si prega di notare che è necessario rivelare la propria affiliazione quando si collega a un prodotto o un altro sito web. Vedo da [questo post] (http://stackoverflow.com/a/13288270/2057919) che hai sviluppato SubGit. Ho modificato questa risposta per riflettere questo. In futuro, assicurati di menzionare la tua connessione se ti colleghi a SubGit. –
- 1. Come rendere un repository git di sola lettura?
- 2. Mirror SVN Repository [Proxy write-through]
- 3. Dare accesso in sola lettura a un repository git
- 4. Comando più semplice per ottenere una copia di sola lettura di un repository git?
- 5. SVN: Come rendere un file di sola lettura con subversion?
- 6. git-svn dopo lo spostamento di un repository SVN?
- 7. Creazione di un repository di sola lettura con SpringData
- 8. git svn clone di una singola directory di SVN repository
- 9. Git mirror con gerrit
- 10. Esporta repository git su svn
- 11. Tentativo di configurare un repository SVN in Git
- 12. svn-checkout da un repository GIT
- 13. Posso contrassegnare un telecomando GIT in sola lettura?
- 14. Git-SVN: aggiornamento del repository Git dal server SVN centralizzato
- 15. Git: non creare index.lock per operazioni di sola lettura
- 16. Accesso in sola lettura del repository Subversion
- 17. Git svn non clone che funziona utilizzando un repository SVN
- 18. Clonare un repository Svn non standard con Git-Svn
- 19. Unisci due repository SVN separati in un unico repository Git
- 20. Clonazione di un repository Git senza la directory .git
- 21. clonazione/Lettura solo la storia/log di un repository git
- 22. Esiste un modo per "git svn dcommit" da un repository git-svn clonato:
- 23. Usa git-svn con un repo esistente mancante .git/svn/
- 24. Aggiungi svn repo al repository git esistente?
- 25. Esistono servizi di sincronizzazione automatica SVN-> GIT?
- 26. sola lettura vs auto (sola lettura) Proprietà
- 27. applica la patch svn al repository git
- 28. Invio di un repository git esistente a un repository SVN esistente
- 29. SVN Software simile ai repository Git
- 30. come creare un indice di repository pypi locale senza mirror?
grazie, github sembra la via da percorrere –