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 precedenteProssima revisione | Revisione precedente | ||
| documentazione_3di_riservata:manuali_sysadmin:cvs2git [2016/01/21 12:06] – 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 | ||
| - | </ | ||
| - | |||
| - | |||
| - | ====== 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.1453374413.txt.gz · Ultima modifica: (modifica esterna)