Bazaar: Appunti

Bazaar è un version control system distribuito.

Cosa Installare

L'installazione è semplice, basta scaricare ed installare il file bzr-setup-[ultimaversione].exe.
:!: Nota: Bazaar è interamente realizzato in Python. Il file di installazione esiste in 2 versioni differenti, un “completa” ed una che richiede la prenza di Python. Si consiglia di scaricare quella completa.
Dalla sezione dei plugins scaricare ed installare qbzr-setup-[ultimaversione].exe che aggiunge un minimo di interfaccia grafica ai comandi.
:!: Nota: Dalla relase 1.6 viene distribuita con Bazaar anche una versione rudimentale del TortoiseBZR.

Comandi Di Base

Il comando fondamentale di Bazaar è bzr. Per un help dei principali comandi digitare

bzr help

Una QuickStart Guide può essere scaricata in formato PDF o in formato PNG (ne esiste anche un formato SVG ma poco leggibile).
E' anche possibile trovare qui una breve introduzione in inglese.

Il Primo Comando

Prima di iniziare è necessario istruire Bazaar su chi siamo. A meno di esigenze particolari, questa operazione in genere viene eseguita una sola volta.

bzr whoami "John Doe <john.doe@gmail.com>"

Per verificare che tutto abbia funzionato correttamente basta ripetere il comando in forma interrogativa

bzr whoami 

ed il sistema risponderà

John Doe <john.doe@gmail.com>

Nuovo Progetto Locale

Per iniziare un nuovo progetto si usa il comando init. Tale comando ha due modalità operative:

  • Specificando il nome di una directory - Crea una cartella con il nome dato dentro la quale viene messo il progetto.
  • Senza specificare il nome di una directory - Considera la cartella corrente come cartella del progetto.
bzr init [Dir Progetto]

Se la cartella è stata creata da Bazaar entrarvi.

cd [Dir Progetto]

Aggiungere i files desiderati con il comando add. Usando solo add senza specificare altri parametri vengono presi tutti files incluse le sub-directory.

bzr add [Files]

Committare le modifiche con il comando commit. Il parametro -m consente di specificare un commento per questo commit.

bzr commit -m "Commento"

Ogni commit incrementa il numero di revisione su Bazaar.

Due Parole su Commit

Il parametro -m del comando commit è opzionale, se non viene specificato il commento Bazaar chiederà di inserirlo prima di committare. Un eventuale diniego renderà impossibile l'operazione. In alternativa, se le estensioni qbzr sono state installate, può essere usato il comando qcommit che permette di eseguire la commit graficamente.

Branch Remoto

Creare un branch remoto del progetto con il comando push.

bzr push {Percorso Remoto}

Una volta creato il branch remoto è possibile sincronizzarlo:

  • Manualmente
  • In automatico

Per sincronizzarlo manualmente è necessario, dopo un commit, chiamare push.

bzr commit -m "Commento"
bzr push {Percorso Remoto}

Per sincronizzarlo in automatico utilizzare il comando bind dopo il primo push.

bzr bind {Percorso Remoto}

In questo modo, ogni commit sul progetto in locale viene riportato anche sul branch remoto.

Repository Senza Albero

E' possibile specificare a Bazaar che il Repository è senza albero. Questo significa che Bazaar creerà un Repository contenente solo i suoi files di controllo.

bzr init-repo --no-trees {Percorso del Repository}

Il Comando CheckOut

Per portare in locale un progetto presente sul server e poter iniziare a lavorarci usare il comando checkout.

bzr checkout {Percorso del Repository sul Server}

Il percorso del Repository può essere un'unità di rete od un URL. Nell'esempio seguente un indirizzo in ssh.

bzr checkout bzr+ssh://john.doe@bazaar.launchpad.net/~john.doe/+junk/myproject

L'esempio precedente richiede la password ssh. E' possibile eseguire più operazioni senza bisogno di reinserire tale password seguendo il procedimento seguente:

ssh-agent bash
ssh-add

Inserire la password e ricordarsi di non chiudere la shell.

Il Comando Update

Per aggiornare il progetto locale dal Repository sul server spostarsi nella cartella locale ed usare il comando update.

bzr update

Plugins

Bazaar può essere esteso tramite plugins.
Un elenco dei plugins con breve descrizione si trova qui.
Molti di questi plugins si trovano su Launchpad, un repository di codice open source che usa come sistema di versioning proprio Bazaar. Una volta scaricati nella cartella dei plugins vengono compilati automaticamente al primo utilizzo.

Extmerge

Extmerge è un plugin che consente di utilizzare un utility di terze parti per risolvere i conflitti. Per installare Extmerge su Windows procedere come segue (per Linux il procedimento è analogo.):

cd %APPDATA%\bazaar\2.0\plugins
bzr branch lp:bzr-extmerge extmerge

Extmerge prevede la possibilità di leggere dal file di configurazione dei Bazaar il template per l'uso del software esterno.

# # Add this line to your ~/.bazaar/bazaar.conf  
# # external_merge = 'meld-helper %r %b %t %o'

WinMerge & Extmerge

WinMerge è un programma Open Source per la comparazione ed il merging di files sotto windows. Per poterlo usare con Extmerge basta installarlo, aggiungere la seguente riga al path

%programfiles%\winmerge

e modificare il file bazaar.conf coem segue

external_merge = 'winmerge %%t %%o %%r %%b'

Il tutto può essere facilmente automatizzato tramite questo batch

@echo off
C:
cd %APPDATA%\bazaar\2.0\plugins
bzr branch lp:bzr-extmerge extmerge
cd ..
Echo external_merge = 'winmerge %%t %%o %%r %%b' >> bazaar.conf
Echo.
Echo ---------------------------------
Type bazaar.conf
Echo ---------------------------------
Echo.
Echo Ricordati di mettere WinMerge nel Path !!!
Echo.
Pause

Esempio: Mettere in Bazaar un Progetto Delphi

Iniziamo da un breve elenco delle estensioni minime da aggiungere.

Estensione Descrizione
*.pas Units
*.dfm Forms
*.dpr Project
*.dpk Package
*.cfg Compiler Config
*.dof Version, Ide, ecc…
*.res Resources
*.tlb Type library for COM
*.dcr Resources for Components
Specifici di Delphi 2007
*.dproj Project
*.dproj.local Project
*.identcache ???

Supponiamo di trovarci già all'interno della directory del progetto.
Le operazioni possono essere eseguite in sequenza a mano oppure è possibile creare un batch da eseguire nella directory del progetto.

bzr init
bzr add *.pas
bzr add *.dfm
bzr add *.dpr
bzr add *.dof
bzr add *.res
bzr add *.cfg
bzr add *.bpg
bzr add *.bpk
bzr add *.dcr
bzr add *.tlb
bzr commit -m "Import iniziale"


vcs/bazaar/appunti.txt · Ultima modifica: 2015/06/08 20:15 da 127.0.0.1
Torna su
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0