Tecnologie Open Source. Subversion



Documenti analoghi
Server Galileo.

Luca Ottaviano. Everyday Git

Fabio Zanasi. 12 maggio 2010

Gestione della configurazione del software

Breve guida all'utilizzo di TortoiseSVN

Iniziamo la panoramica sul funzionamento dell'svn sulla suite S.A.

Pillole di Bazaar. user manual

MANUALE PARCELLA FACILE PLUS INDICE

Product Shipping Cost Guida d'installazione ed Utilizzo

Problema: Workflow per lo sviluppo su più piattaforme contemporaneamente, tipo java e android o java ed eclipse.

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Strumenti per lo sviluppo software in comunità

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

SVN server, per Florim, è installato su server di test, anche se la sua configurazione può avvenire in qualsiasi ambiente.

INSTALLARE L AMBIENTE DI SVILUPPO PER JOOMLA 2.5

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

Sage Start Archivio file Guida. Dalla versione

III.2 Come condividere risultati

Programmazione Java Avanzata

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

Online Help StruxureWare Data Center Expert

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Manuale LiveBox APPLICAZIONE WINDOWS PHONE V (465)

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

NUOVO SISTEMA AGGIORNAMENTO DA FYO

Alma Mater Studiorum Università di Bologna. Controllo di versione. S. Golovchenko (UNIBO) INGEGNERIA DEI SISTEMI SOFTWARE / 18

e/fiscali - Rel e/fiscali Installazione

Manuale LiveBox WEB ADMIN.

Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Software testing. Lezione 8 Configuration Management Federica Spiga federica_spiga@yahoo.it. A.A Autori: F.Spiga

Guida Software GestioneSpiaggia.it

Schede di protezione HDDGuarder

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

Terza lezione: Directory e File system di Linux

Eclipse e Subversion

Content Manager 2 Manuale utente

Console di Amministrazione Centralizzata Guida Rapida

Subversion. Giovanni Lagorio

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

Intel One Boot Flash Update Utility Guida dell utente

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza di rete)

Installazione del software Fiery per Windows e Macintosh

Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10

Qui Pago (Key Client/CartaSì) Guida d'installazione ed Utilizzo

Manuale LiveBox WEB ADMIN.

VIDA CONFIGURATION VIDA ALL-IN-ONE

Corso Git Riccardo Binetti 22 Ottobre Riccardo Binetti Corso Git Ottobre / 38

ImporterOne Manuale Export Plugin Prestashop

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Gestione delle Cartelle dei Messaggi di Posta Elettronica

Strumenti per la gestione della configurazione del software

Dropbox. Quando qualcuno ci invita a condivide con noi una cartella, veniamo avvisati via mail.

Sistemi software di collaborazione in ambito open source

Click 4 Wheels Quick Guide

Punto Print Il programma per stampare. Documentazione Tecnica

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza di rete)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER MANUALE DI INSTALLAZIONE GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER

TNT Pro Guida d'installazione ed Utilizzo

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Manuale Utente Amministrazione Trasparente GA

SharePoints è attualmente disponibile in Inglese, Italiano e Francese.

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Funzioni di Trasferimento Movimenti

BLOCK CALL Manuale utente Block Call Manuale Utente

Guida Rapida di Syncronize Backup

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

MANUALE D USO DELL E-COMMERCE. Versione avanzata

Manuale utente IS-Station Wi-Fi

Guida alla gestione dei File in Aulaweb 2.0

MANUALE SOFTWARE F24 ISTRUZIONI PER L UTENTE

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Creazione e installazione di un NAS utilizzando FreeNAS

Guida al sistema. Dott. Enea Belloni

Omnia Web Timesheet. Manuale utente

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Al giorno d oggi, i sistemi per la gestione di database

Ambienti per lo sviluppo collaborativo del software (CDE)

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Installazione LINUX 10.0

Guida Tecnica. Come visionare da internet anche dietro un IP dinamico i dvr Brahms.

Transcript:

Tecnologie Open Source Subversion

Materiale di riferimento Version Control with Subversion Rilasciato sotto licenza CC all'indirizzo: http://svnbook.red-bean.com/ Pragmatic Version Control using Subversion (di Mike Mason)

Version Control System Cosa è? Multiple revisioni Vantaggi rispetto ad altre soluzioni: File server comune Backup periodici Gestione di revisioni e rami

Version Control System Termini importanti: Checkout e working copy Export Commit update Revisioni Funzionamento delle revisioni: Per repository Collegate al singolo file Tag e branches

Repositories Un repository, n progetti Una cartella per ogni progetto Le ramificazioni sono memorizzate come copie di cartelle Possibile perché la copia in subversion è molto efficiente e mantiene la storia Un repository non contiene una copia diretta dei progetti ospitati Accessibile via molteplici interfacce: http, https, svn, svn+ssh, file

Locking: il problema Il problema

Locking: la soluzione lock-modify-unlock Lock attivato sui singoli file Problemi: Amministrativi Serializzazione non necessaria Falsa sicurezza Subversion supporta questa soluzione ma preferisce il locking ottimistico

Locking: la soluzione copy-modify-merge Locking ottimistico: Si possono inserire nel repository solo file non out of date Al momento dell'aggiornamento subversion prova a fondere le modifiche remote o locali Fusione Conflitto

Revisioni e file Subversion memorizza per ogni file La revisione del repository su cui è basato Un timestamp di quando è stato aggiornato da repository l'ultima volta I file originali prelevati dal repository Un file può essere Inalterato localmente e aggiornato Alterato localmente e aggiornato Inalterato localmente e non aggiornato Alterato localmente e non aggiornato

Struttura di un repository Conf: configurazione del repository Svnserve.conf Passwd Authz db: le cartelle del repository Hooks: gli script agganciabili agli eventi README.txt format

Ciclo fondamentale checkout Ciclo base Aggiornamento Commit Update (su file inalterati o alterati) Updates frequenti Push e pull sono separati

Revisioni miste Subversion supporta le revisioni miste Come si creano? Svn log non funziona Come ottenere le revisioni dei file del nostro progetto Con svn info Con svn status Limitazione: delete, commit di metadata e merge possibili solo su file o cartelle aggiornate

Valori simbolici di revisione HEAD: l'ultima revisione BASE: la revisione corrente di un file in un workspace COMMITTED: la revisione precedente a BASE in cui il file è stato modificato PREV: COMMITTED-1 Revisioni per data: {2012-01-03},{15:30}

Popolazione del repository Inserire i file nel repository con import Esempio Cosa succede se il path esiste già La cartella usata per l'import non viene posta automaticamente sotto version control svn-commit.*.tmp e svn commit -F

Creazione di un repository Specifica delle modalità di accesso al repository Repository del tipo file://... Svnadmin create file://... Creazione di un repository svn://... Uso di svnserve -d -r Configurazione di un repository

Manipolazione del repository manualmente Svn add path --non-recursive rm Svn rm path1 path2... Svn rm url1 url2... mkdir Svn mkdir path1 path2 Svn mkdir url1 url2

Manipolazione del repository manualmente Mv Svn mv path1 path2 Svn mv url1 url2 Cp Svn cp path1 path2 Svn cp url1 url2 Prova su strada

Manipolazione del repository manualmente 2 cat Svn cat path/url Svn cat -r rev path/url ls Svn ls path/url Info Svn info path/url Prova su strada

changelist Cosa sono le changelist Applicate alla working copy, non al repository! Aggiungere un file in una changelist con svn changelist file Rimuovere una changelist da un file Restringersi a una changelist con changelist Prova su strada

Controllo delle proprie modifiche Svn status [-u] [-v] [path] Flag: A,D,M,C,R,X,I,?,!,L Svn log [path] -r r1 -r r1:r2 [default: BASE:1] -v --stop-on-copy

Usiamo diff Svn diff Confronta le modifiche locali apportate dall'ultimo update Svn diff file.txt Come prima ma si limita a file.txt Svn diff -r 5:6 [file.txt] Mostra le differenze tra la revisione 5 e 6 [eventualmente del file] Svn diff url1 url2: mostra le differenze tra due url

Annulliamo le nostre modifiche Svn revert path --recursive Funziona anche con l'aggiunta e cancellazione di file Svn revert e svn update -r BASE Digressione: diff, status, revert e accesso alla rete

branches Le branches sono ramificazioni di un progetto che servono per: Release stabili Bug fix complessi Sperimentazioni altro

tags I tag sono nomi simbolici per specifiche selezioni di revisioni dei file del progetto Servono per rappresentare: Release (es. REL-1.0.1,REL-2.0.3) Inizio fine di un bug fix complesso Inizio fine di una sperimentazione...

Branches e tags in subversion Branches e tags sono semplici copie di cartelle Tecnicamente identiche, sono distinte dal loro uso: Le branches vengono modificate nel tempo Le tag no Struttura di un repository: Trunk Branches tags

Esempi Come creare una ramificazione Come creare un tag Esempi: Una parte del team smette di lavorare temporaneamente su trunk e lavora per la stabilizzazione della release stabile Dopo un po' viene rilasciata la release 1.0.0 Si vogliono trovare le modifiche fatte alla branch stabile

Esempi Un bug fix trovato nella branch stabile deve venire applicato anche a trunk Svn merge ^/trunk con merge tracking Svn merge [-r r1:r2] source Svn merge source1 source2 Si vuole rimuovere un commit sbagliato Si vuole ripristinare un file cancellato per errore (e committato)

Settare i metadata Aggiungere, togliere, visualizzare i metadata Svn propset [-F] Svn propget Svn propedit Svn proplist Svn propdel

Metadata speciali Svn:mime-type e la gestione dei conflitti Svn:eol-style Il problema del fine linea Valori possibili Native CRLF LF CR Svn:ignore e l'opzione --recursive

Inserimento automatico di proprietà Il file di.subversion/config editor-cmd diff-cmd enable-auto-props=yes Sezione [autoprops]: *.cpp= p1=v1;p2=v2;... Esempio: attiviamo svn:eol-style su tutti i file cpp

Locking esplicito Svn lock -m Svn unlock --force Lock stealing La proprietà svn:needs-lock Prova su strada

Backup del repository Svnadmin hotcopy Svnadmin dump Svnadmin load Migrare un progetto a un nuovo repository

Inserimento di progetti esterni Casi d'uso: Progetti esterni Progetti condivisi da molteplici progetti Uso di svn:externals