2009-05-08 10 views
12

Ho appena iniziato a lavorare su un progetto che utilizza Mercurial come sistema di controllo della versione e ho bisogno di alcuni suggerimenti di base su come utilizzarlo. Si prega di utilizzare questa domanda per dare alcuni suggerimenti introduttivi su questa tecnologia.Introduzione a Mercurial

In particolare, sto cercando suggerimenti sui migliori programmi da utilizzare e le migliori tecniche da utilizzare (rami, dentro e fuori controllo, ecc ho bisogno di imparare le best practice !)

risposta

13

So che hai già il sito Mercurial ma la risorsa più utile per me è stata la Mercurial book. È un'ottima panoramica del programma e come usarlo.

Ho trovato il modo migliore per imparare Mercurial era solo usarlo su un progetto. Ho importato in Mercurial un progetto che avevo esportato da subversion e ho sviluppato regolarmente con esso. Ho fatto in modo di clonare il repository per diversi changeset in modo che potessi abituarmi alla fusione e all'aggiornamento. Non ho ancora imparato tutti gli usi avanzati ma ora mi trovo su una base piuttosto salda e non sono ancora passato a Subversion.

Molti progetti hanno tecniche diverse per il commit del flusso di lavoro. Alcuni hanno cambiato gli sviluppatori, come i sistemi centralizzati, e alcuni estraggono i cambiamenti dai contributori (Linux, per esempio). È difficile generalizzare troppo senza conoscere il processo per il tuo progetto.

Questo è come io faccio il mio sviluppo:

  • albero centralizzata su una condivisione di file o http, chiamato project-trunk o project che è la versione definitiva del progetto
  • Un albero pulito sul mio sistema che clono da il repository remoto e utilizzare per tornare al repository. Quindi clonerò da questo albero per le mie modifiche. Chiamo questo albero project-local
  • Clona l'albero project-local per ciascuna delle mie modifiche: ad es. project-addusers, project-141, ecc
  • Dopo che ho finito con i commit a un albero, ho quindi spingere le modifiche al repository project-local
  • Infine, spingere i cambiamenti nel project-local al project-trunk

ho l'albero pulito project-local perché in questo modo posso riportare tutti i changeset al trunk contemporaneamente, il che è utile se c'è un gruppo di modifiche correlate che devono essere rimandate insieme.

Per quanto riguarda gli strumenti, dipende dalla piattaforma. Io uso solo lo strumento da riga di comando di vanilla. Venendo da TortoiseSVN, era un po 'un cambiamento per andare alla riga di comando. Ma adesso sto bene. Ho provato a usare TortoiseHg ma non funzionava bene sulla mia macchina virtuale Windows 7 x64. Ho sentito che è molto meglio sulle piattaforme supportate a 32 bit.

+0

Il libro è migliorato con la sua più recente iterazione ed è abbastanza maturo da essere stato pubblicato in formato cartaceo. Se stai leggendo questo, e stai ancora cercando un punto di partenza Mercurial, è sicuramente il punto di partenza. – quark

+1

Come bonus aggiuntivo puoi trovare la fonte del libro in un repository Mercurial su BitBucket: http://bitbucket.org/bos/hgbook. Il che significa che puoi apportare modifiche e presentarle all'autore, usando lo strumento stesso. – quark

2

Se si utilizza l'ultima versione del client TortoiseHG e includere la directory di installazione nel proprio ambiente PATH, si sarà in grado di utilizzare sia la grafica piacevole che forniscono, e la linea di comando 'hg'

Non posso raccomandare utilizzando il estensioni di mq troppo. Rappresentano un ottimo ambiente di "repository funzionante".

Uso le code per gestire le modifiche locali contro un repository di subversion. Faccio le mie modifiche locali a breve termine e uso mercurial per rimanere in sintonia con la sovversione e il resto della squadra.

13

Ecco un helpful tutorial su Mercurial scritto da Joel Spolsky.

Riguarda l'utilizzo e i comandi di base, nonché il modo di lavorare con Mercurial a un livello più concettuale. Se hai già familiarità con SVN, allora la prima parte merita sicuramente di essere letta: parla delle principali differenze concettuali tra SVN e Mercurial, perché provare ad usare Mercurial nello stesso modo in cui si usa SVN è un problema.

+1

Questo tutorial è assolutamente incredibile, così chiaro e facile da capire. Proprio quello di cui avevo bisogno come qualcuno completamente nuovo per DVCS e Controllo versione in generale. – Acorn

+0

Molto probabilmente hai ragione di mettere in guardia contro l'uso di Mercurial come se fosse SVN, ma per molte operazioni di base questo è ancora possibile. E le estensioni come * hgsubversion * (vedi https://bitbucket.org/durin42/hgsubversion/overview/) suggeriscono che questo è perfettamente valido.Tuttavia, le caratteristiche speciali che includono * Mercurial Queues * (http://mercurial.selenic.com/wiki/MqExtension) liberano il vero potere di Mercurial e ti perdi prima di familiarizzare con queste funzionalità. – hasienda

0

Oltre alla Mercurial Libro e il tutorial Hg Init, mi piace menzionare la guida esempio-driven che ho scritto:

Essa mostra come ottenere iniziato con Mercurial e copre anche alcuni concetti più avanzati come i rami nominati e hgsubversion. L'ho usato quando insegnavo a Mercurial ai nuovi utenti e sembrava che gli piacesse.