documentazione_3di_riservata:manuali_sysadmin:cvs2git
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedente | |||
documentazione_3di_riservata:manuali_sysadmin:cvs2git [2016/01/25 09:47] – aalberghini | documentazione_3di_riservata:manuali_sysadmin:cvs2git [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1 | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Migrazione di un progetto da CVS a GIT ====== | ||
- | |||
- | Per migrare un progetto dal sistema di versioning CVS a git sono disponibili diverse utility, ma già con quella inclusa nel normale client git (__cvsimport__) è possibile effettuare l' | ||
- | |||
- | Questo strumento per funzionare __necessita di un accesso diretto al repository CVS da filesystem__, | ||
- | |||
- | L' | ||
- | |||
- | ===== Migrazione manuale ===== | ||
- | |||
- | Per effettuare la migrazione manualmente bisogna effettuare i seguenti passaggi: | ||
- | |||
- | * creazione di un nuovo repository git vuoto | ||
- | <code bash> | ||
- | git --bare init / | ||
- | </ | ||
- | * conversione da CVS a git | ||
- | <code bash> | ||
- | git --bare cvsimport -d: | ||
- | </ | ||
- | |||
- | dove: | ||
- | * < | ||
- | * / | ||
- | * < | ||
- | * < | ||
- | |||
- | Utilizzando questi comandi, verrà prima inizializzato un repository vuoto (bare) all' | ||
- | |||
- | Si riporta un esempio sul progetto mailArchiver. Il progetto mailArchiver è attualmente un modulo con lo stesso nome sotto la CVSROOT / | ||
- | |||
- | <code bash> | ||
- | git init --bare / | ||
- | git --bare cvsimport -d: | ||
- | </ | ||
- | |||
- | Al termine della migrazione è possibile clonare il repository git appena creato mediante comandi tipo: | ||
- | <code bash> | ||
- | git clone ssh:// | ||
- | </ | ||
- | oppure, sfruttando l' | ||
- | <code bash> | ||
- | git clone http:// | ||
- | </ | ||
- | |||
- | ===== Migrazione batch ===== | ||
- | |||
- | È stato approntato uno script sul nostro server CVS **vegezio** che automatizza le operazioni necessarie alla migrazione di un singolo progetto (modulo in CVS) oppure di tutti i progetti (moduli) all' | ||
- | |||
- | Lo script è posto in / | ||
- | <code bash cvs2git.sh> | ||
- | #!/bin/bash | ||
- | |||
- | set -e | ||
- | |||
- | function usage () { | ||
- | |||
- | cat << EOF | ||
- | Usage: | ||
- | cvs2git.sh -d CVSROOT [-m MODULE] -o DESTDIR | ||
- | |||
- | where | ||
- | CVSROOT | ||
- | MODULE | ||
- | DESTDIR | ||
- | EOF | ||
- | } | ||
- | |||
- | # Conversione di un singolo modulo CVS in git. | ||
- | # Argomenti: | ||
- | # $1 CVSROOT | ||
- | # $2 MODULE | ||
- | # $3 DESTDIR | ||
- | |||
- | function convert_module () { | ||
- | mkdir -p " | ||
- | (cd " | ||
- | git cvsimport -d : | ||
- | } | ||
- | |||
- | # Conversione di tutti i moduli all' | ||
- | # Argomenti: | ||
- | # $1 CVSROOT | ||
- | # $2 DESTDIR | ||
- | |||
- | function convert_all_modules () { | ||
- | for module in " | ||
- | do | ||
- | if [ -d " | ||
- | then | ||
- | CVS_MODULE_NAME=${module## | ||
- | convert_module " | ||
- | fi | ||
- | done | ||
- | |||
- | } | ||
- | |||
- | while getopts "d: m: o:" OPTION | ||
- | do | ||
- | case " | ||
- | d) | ||
- | SRC_CVSROOT=" | ||
- | ;; | ||
- | m) | ||
- | SRC_CVSMODULE=" | ||
- | ;; | ||
- | o) | ||
- | DESTDIR=" | ||
- | ;; | ||
- | esac | ||
- | done | ||
- | |||
- | if [ x" | ||
- | then | ||
- | echo "No CVSROOT specified. Exiting." | ||
- | usage | ||
- | exit 1 | ||
- | fi | ||
- | |||
- | if [ x" | ||
- | then | ||
- | echo "No DESTDIR specified. Exiting." | ||
- | usage | ||
- | exit 2 | ||
- | fi | ||
- | |||
- | if [ x" | ||
- | then | ||
- | convert_all_modules " | ||
- | else | ||
- | convert_module " | ||
- | fi | ||
- | </ | ||
- | |||
- | Questo script utilizza un file di specifica degli " | ||
- | < | ||
- | gmgelli-3di=Gregorio Massimo Gelli < | ||
- | sstagni-3di=Simone Stagni < | ||
- | writelli-3di=Walter Ritelli < | ||
- | rtirabassi-3di=Roberto Tirabassi < | ||
- | lsopko-3di=Ladislav Sopko < | ||
- | mmariotti-3di=Michele Mariotti < | ||
- | czappavigna-3di=Carmine Zappavigna < | ||
- | mballerini-3di=Massimiliano Ballerini < | ||
- | fcappelli-3di=Francesco Cappelli < | ||
- | mstancikova-3di=Miroslava Stancikova < | ||
- | stancredi-3di=Stefano Tancredi < | ||
- | mgelli-3di=Mauro Gelli < | ||
- | rpierpaoli-3di=Roberto Pierpaoli < | ||
- | mbernardini-3di=Mirko Bernardini < | ||
- | vcapoccia-3di=Valerio Capoccia < | ||
- | abarducci-3di=Andrea Barducci < | ||
- | aalberghini-3di=Alan Alberghini < | ||
- | ganastasi-3di=Giosuè Anastasi < | ||
- | fgazzillo-3di=Fabio Gazzillo < | ||
- | ncandelora-3di=Nicola Candelora < | ||
- | sdifelice-3di=Sarah Di Felice < | ||
- | spassarotto-3di=Siro Passarotto < | ||
- | dpranteda-3di=Domenico Pranteda < | ||
- | mciullo-3di=Marco Ciullo < | ||
- | </ | ||
- | |||
- | ====== Migrazione da CVS a Gitlab ====== | ||
- | |||
- | Per migrare i progetti CVS su Gitlab è necessario effettuare comunque il passaggio di conversione descritto nei punti precedenti. Una volta terminata la migrazione del progetto o dei progetti, è possibile importarli su Gitlab in diversi modi. | ||
- | |||
- | ===== Importazione singolo progetto via HTTP ===== | ||
- | |||
- | Questo tipo di importazione è indicato per singoli progetti. È necessario creare un nuovo progetto((magari già in un gruppo consono)) ed indicare di importare un qualsiasi progetto git mediante la sua URL (ultimo bottone). La URL da indicare è composta nel seguente modo: | ||
- | < | ||
- | tenendo conto che PATH è già relativo al percorso /opt/git sul server vegezio. | ||
- | |||
- | ===== Importazione singolo progetto mediante pull e push ===== | ||
- | |||
- | Questo tipo di importazione (la più generica in assoluto) prevede l' | ||
- | |||
- | Per poter effettuare questo tipo di migrazione, è necessario che: | ||
- | * il progetto sia stato migrato in un percorso raggiungibile dal client mediante ssh((controllare i permessi relativi al gruppo gitusers su vegezio)) | ||
- | * il progetto di destinazione sia già stato creato su Gitlab | ||
- | * si sia caricata la propria chiave pubblica all' | ||
- | |||
- | Le operazioni da effettuare sono le seguenti: | ||
- | - clonazione del repository migrato sulla propria macchina: <code bash>git clone ssh:// | ||
- | - rimozione del remote " | ||
- | - impostazione del nuovo remote " | ||
- | |||
- | ===== Batch import ===== | ||
- | |||
- | Questa procedura permette di importare in un colpo solo diversi repository git migrati da CVS. | ||
- | I passi da seguire sul server Gitlab sono i seguenti: | ||
- | - creazione del grupp/i che conterranno i nuovi progetti:< | ||
- | - copia dei repository all' | ||
- | - Aggiustamento del proprietario gruppo (devono essere git:git): <code bash> | ||
- | - Aggiornamento DB dei repository ed effettiva importazione in Gitlab: <code bash> | ||
- | |||
- | A questo punto i repository importati dovrebbero comparire nell' | ||
- | |||
- | ====== Riferimenti esterni ====== | ||
- | |||
- | [[http:// | ||
- | |||
- | [[https:// | ||
- | |||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | |||
/data/attic/documentazione_3di_riservata/manuali_sysadmin/cvs2git.1453711676.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)