Size: 2430
Comment:
|
Size: 3437
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 49: | Line 49: |
L'output è conciso ma il prefisso {{{M}}} ci dice semplicemente che hello.c è stato modificato ed è pronto per andare in un changeset. Potremmo anche analizzare le modifiche che abbiamo fatto al file finora usando il comando {{{diff}}}: ==codediff== <!>In caso volessimo '''annullare''' le nostre modifiche e ricominciare, possiamo usare il comando {{{revert}}} per ripristinare hello.c al suo stato iniziale (si potrebbe usare anche l'opzione {{{-a}}} per ripristinare tutti i file). Fare attenzione però che sia proprio quello che desideriamo fare. {{{ $ hg revert hello.c }}} KenMin aggiunge: il comando {{{revert}}} rinomina anche il file modificato hello.c con hello.c.orig. {{{ $ hg status ? hello.c.orig }}} Se ci ripensiamo nuovamente e vogliamo tornare al file modificato è sufficiente rimuovere lo stato originario di hello.c e rinominare hello.c.orig, quello modificato, con hello.c. {{{ $ rm hello.c $ mv hello.c.orig hello.c $ hg status M hello.c }}} |
Tutorial - fare la prima modifica
Procedendo con quanto visto in TutorialCronologia, siamo nel nostro repository my-hello, già copiato in TutorialClone.
E' buona pratica nello sviluppo con Mercurial isolare ogni modifica in un repository separato (vedere anche WorkingPractices). Questo permette di evitare di mescolare il codice non correlato e rende più semplice verificare le varie parti del lavoro una per una. Iniziamo seguendo il modello.
Il nostro semplicissimo obbiettivo è far stampare una riga in più al nostro programma "hello world". Dapprima creiamo un nuovo repository chiamato my-hello-new-output clonando my-hello.
$ cd .. $ hg clone my-hello my-hello-new-output
In questo caso, il comando clone non stampa output se esegue l'operazione con successo.
LyleJohnson aggiunge: Per la mia installazione di Mercurial 0.9.4 su Mac OS X(da MacPorts), ho ricevuto la seguente linea in output:
$ hg clone my-hello my-hello-new-output 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
N.B.: Notare come abbiamo dato un nome descrittivo al nuovo repository, un nome che permetta di individuare facilmente lo scopo delle modifiche. Fin quando effettuare la "clonazione" di un repository in Mercurial sarà cosa rapida, noi accumuleremo velocemente molti repository poco diversi. Se non diamo a questi repository nome sensati, altrettanto rapidamente perderemo la capacità di riconoscerli.
Adesso è giunto il momento buono per fare una modifica nel nostro repository. Andiamo nella cartella di lavoro (cfr. working directory), che è semplicemente il nome che diamo alla cartella dove sono tutti i nostri file e modifichiamo il codice sorgente per mezzo dell'editor di testi preferito:
$ cd my-hello-new-output $ vi hello.c
Il contenuto di hello.c inizialmente assomiglia a questo:
==codiceC==
Facciamo in modo che dal main si stampi una linea di output in più:
==CodiceC2==
Una volta che l'abbiamo fatto salviamo le modifiche, usciamo dal nostro editor di testo ed è fatta. Ora possiamo creare un changeset.
Tuttavia riflettiamo un attimo: nel caso venissimo interrotti durante l'operazione di modifica e ci fossimo dimenticati quali modifiche stessimo facendo una volta creato il changeset? A questo proposito possiamo usare il comando status.
$ hg status M hello.c
L'output è conciso ma il prefisso M ci dice semplicemente che hello.c è stato modificato ed è pronto per andare in un changeset.
Potremmo anche analizzare le modifiche che abbiamo fatto al file finora usando il comando diff:
==codediff==
<!>In caso volessimo annullare le nostre modifiche e ricominciare, possiamo usare il comando revert per ripristinare hello.c al suo stato iniziale (si potrebbe usare anche l'opzione -a per ripristinare tutti i file). Fare attenzione però che sia proprio quello che desideriamo fare.
$ hg revert hello.c
KenMin aggiunge: il comando revert rinomina anche il file modificato hello.c con hello.c.orig.
$ hg status ? hello.c.orig
Se ci ripensiamo nuovamente e vogliamo tornare al file modificato è sufficiente rimuovere lo stato originario di hello.c e rinominare hello.c.orig, quello modificato, con hello.c.
$ rm hello.c $ mv hello.c.orig hello.c $ hg status M hello.c