È quasi completamente scritto in Python, ma include anche una implementazione diff binaria scritta in C.
Mercurial nacque inizialmente per essere eseguito su Linux, successivamente furono fatte versioni anche per Windows, Mac OS X, FreeBSD e altri sistemi Unix.
Nasce come programma da linea di comando a cui sono state aggiunte estensioni con GUI.
Tutte le operazioni su Mercurial sono invocate come parole chiave opzionali e fanno riferimento al simbolo chimico dl mercurio.
Gli obiettivi principali del software sono: le alte prestazioni e la scalabilità con un sistema decentralizzato, completamente sviluppato in modo collaborativo e distribuito.
Include anche una interfaccia web.
Progetti che usano Mercurial.
Alcuni progetti usano il controllo di versione Mercurial:
* Mozilla
* OpenJDK
* OpenSolaris
* OpenOffice.org
* Symbian OS
* The Xen hypervisor
* Adblock Plus
* Adium
* Audacious
* Coin3D
* CubicWeb
* Dovecot IMAP server
* GeeXboX
* RabbitMQ
* Go (linguaggio di programmazione)
* GNU Octave
* GNU Multi-Precision Library
* Growl
* LEMON
* LinuxTV/Video4Linux
* LuxRender 3D Render Engine
* Mercurial
* MoinMoin wiki software
* Mutt
* Netbeans
* Nuxeo
* Ogre3D
* SAGE
* Vim
* Lugaru HD
* Openbravo
* Tryton
Download.
Installazione:
Installare Mercurial è facilissimo.
Per Linux, MacOS X e altre varianti di Unix, è sufficiente seguire le indicazioni in UnixInstall.
Il programma Mercurial è chiamato hg. Ogni comando di Mercurial inizia con hg seguito rispettivamente dal nome del comando e da ogni opzione e argomento.
Adesso che Mercurial è installato, si dovrebbe poter digitare semplicemente hg sul prompt e il programma dovrebbe visualizzare alcuni utili comandi:
$ hg
Mercurial Distributed SCMIn Mercurial tutte le operazioni si eseguono all'interno di un repository. Un repository è una directory che contiene tutto il codice sorgente del quale vogliamo registrare una cronologia.
basic commands:
add add the specified files on the next commit
annotate show changeset information per file line
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
(...)
use "hg help" for the full list of commands or "hg -v" for details
Per controllare quale versione di Mercurial si sta utilizzando, inserire:
$ hg version
Mercurial Distributed SCM (version 1.0)
Copyright (C) 2005-2008 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
In modo predefinito Mercurial utilizza un nomeutente nella forma user@localhost per i commit. Questo è spesso poco comprensibile. E' meglio configurare un indirizzo email appropiato in ~/.hgrc (o su Windows in %USERPROFILE%\Mercurial.ini, MercurialIni) aggiungendo linee come le seguenti:
[ui]
username = John Doe
Il modo più semplice per iniziare con Mercurial è usare un repository che già contiene alcuni file e cronologie.
Per fare questo si usa il comando clone. Questo produce una copia di un repository; esso realizza una copia esatta di un'altro repository in modo tale da avere la propria versione locale sulla quale lavorare.
Copiamo un piccolo repository "hello world" ospitato su selenic.com:
$ hg clone http://www.selenic.com/repo/hello my-hello
Se tutto è andato a buon fine, il comando clone stampa questo (Mercurial 1.0):
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
updating working directory
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Ora dovremmo trovare una directory chiamata my-hello nella directory corrente:
$ lsmy-hello
All'interno della directory my-hello, dovremmo trovare alcuni file:
$ ls my-helloMakefile hello.c
Questi file sono una copia esatta di quelli presenti nel repository appena clonato.
N.B.: in Mercurial, ciascun repository è autocontenuto. Quando si copia un repository, il nuovo repository diventa una copia esatta di quello esistente al momento della copia, tuttavia i cambiamenti successivi non saranno disponibili a meno che non vengano esplicitamente trasferiti nel repository per mezzo dei comandi pull o push.
In modo predefinito, hg clone verifica (vedere Update) la tipmost revisione del repository nella working directory. Per vedere quale revisione è attualmente sotto osservazione, usare il comando parents:
$ cd my-hello
$ hg parents
changeset: 1:82e55d328c8c
tag: tip
user: [email protected]
date: Fri Aug 26 01:21:28 2005 -0700
summary: Create a makefile
Ricerca personalizzata
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: