|
3 years ago | |
---|---|---|
models | 3 years ago | |
.gitattributes | 3 years ago | |
.gitignore | 4 years ago | |
ExportToSvn.sh | 3 years ago | |
ImportOneRepository.sh | 3 years ago | |
ImportToGitea.conf.sample | 4 years ago | |
ImportToGitea.sh | 4 years ago | |
cleanSpamAccount.sh | 4 years ago | |
dist.sh | 4 years ago | |
mergeHistory.sh | 3 years ago | |
readme.md | 4 years ago | |
restore_git_objects.sh | 3 years ago |
readme.md
Exporter/Importer/Synchroniser des dépots git <> svn
Introduction
Le dépot permet de synchroniser des projets svn de zone.spip.net vers/depuis git sur git.spip.net
Usage : Import depuis svn (ImportOneRepository.sh)
Le script importe un dépot (-r) selon la structure définie par le modéle (-m) dans l'organisation git (-o)
ImportOneRepository, a command line interface to import a svn repository to gitea
-r <repository> or --repository <reposoitoy> specify the svn repository name to import
-o <organization> or --orgnanization <organization> gitea organization where to import repository.
-m <model> or --model <model> specify the model svn structure to respesct (dist or zone)
-d or --delete Remove gitea repository first
Exemple avec un plugin de la zone
cd /var/git/subgit/scripts/importToGitea#
bash ImportOneRepository.sh -r saisies -o _plugins_ -m zone
Sur la base du modele (-m) zone et du dépot (-r) saisies, la source svn est considérée présente à l'adresse svn://svn.spip.net/spip-zone/plugins/saisies Sur l'indication de l'organisation (-o) plugins , le depot (-r) saisies sera importé dans git à l'adresse suivante https://git.spip.net/plugins/saisies
Il est possible de recréer le dépot git, par exemple suite à une modification du modèle avec l'option -d. Elle supprime le depot géré par gitea
Cas particulier des plugins-dist
cd /var/git/subgit/scripts/importToGitea
bash dist.sh
Ce script va importer une liste de plugins identifiés manuellement. Pour chacun de ces plugins, un dépot git dans l'organisation dist sera créé. Le modele dist est utilisé. Il prend en compte les différents chemins relatifs à trunk, tags et branches pour faire un dépot git consistant (tags selon spip ou paquet.xml).
Usage : Export depuis git (ExportToSvn.sh)
Le script exporte le dépot (-r) présent dans l'organisation (-o) sur le svn zone.spip.net sur la base d'un modele (-m)
ExportToSvn, a command line interface to export a git projet to svn
-r <repository> or --repository <reposoitoy> specify the svn repository name to import
-o <organization> or --orgnanization <organization> gitea organization where to import repository.
-m <model> or --model <model> specify the model svn structure to respect (dist or zone)
Exemple avec le projet ImportToGitea
cd /var/git/subgit/scripts/importToGitea
bash ./ExportToSvn.sh -r importToGitea -o _outils_ -m outils
Le dépot (-r) importToGitea de l'organisation (-o) _outils_ sera exporté sur la base du modéle (-m) outils sur le svn à l'adresse /_outils_/importToGitea
Ce qui donne :
- source : https://git.spip.net/outils/importToGitea/
- cible : https://zone.spip.net/trac/spip-zone/browser/spip-zone/outils/importToGitea
Synchronisation bijective ?
Subgit permet de gérer la synchronisation dans les 2 sens. Toutefois il faut prendre en compte qu'il est préférable de considérer un seul dépot de référence, le second étant un miroir. Pour les personnes ayant demandé la mise en place de cette fonctionnalité, il est fortement conseillé d'indiquer dans les informations du projet si celui ci priviligie git ou svn. Le chapitre suivant peut être pris comme base et amélioré.
Contribuer
Les correctifs sont avec plaisir appréciés et bienvenus. Pour contribuer il est conseillé d'utiliser la version git.
Git ou SVN ?
Le code est disponible sur :
Ces 2 versions sont synchronisées et par conséquent il est normalement possible de lire et écrire indifféremment sur les 2 dépots. Toutefois c'est la version git qui sert de référence. Si pour une raison quelleconque la synchronisation est cassée, ce sera git qui aura le dernier mot.