You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cam.lafit 45f3efe710 Ne pas oublier le modele mono lorsqu'on a uniquement un trunk à suivre 3 years ago
models Ne pas oublier le modele mono lorsqu'on a uniquement un trunk à suivre 3 years ago
.gitattributes Ajout d'une option -t/--target pour definir le nom du repository cible (par defaut calcule d'apres la source) 3 years ago
.gitignore Ne pas versionner les fichiers de configuration 4 years ago
ExportToSvn.sh Exporter un depot git vers un chemin svn precis 3 years ago
ImportOneRepository.sh Ajout d'une option -t/--target pour definir le nom du repository cible (par defaut calcule d'apres la source) 3 years ago
ImportToGitea.conf.sample Import dist plugin in gitea 4 years ago
ImportToGitea.sh Par défaut pas de wiki , pas de ticket 4 years ago
cleanSpamAccount.sh Mise en place d'une liste noire de compte mail 4 years ago
dist.sh Le plugin aide est un plugin-dist 4 years ago
mergeHistory.sh Restore in master branch commit previous a trunk creation 3 years ago
readme.md Expliquer comment les scripts git/svn fonctionnent 4 years ago
restore_git_objects.sh A script to repair a git directory from any backup project 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 :

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.