Capul Mercurial pentru tot capul, blog-ul merge

Deoarece scris ultima parte a ultimelor două săptămâni, dar în acest timp a existat o mulțime de evenimente. Mercurial 1.5 și TortoiseHg 1.0 au fost lansate. iar Joel Spolsky a scris un tutorial despre mercurial. Grăitor, povestea lui, Joel subțiat busteni de consola ferestre, ceea ce-mi permite o speranță secretă că înainte ca el a citit blog-ul meu :)







Cu toate acestea, chiar și o astfel de competiție serioasă nu mă va lipsi de dorința de a continua revizuirea mea mizerabilă.

Astăzi subiectul va fi mic și, la prima vedere, simplu. Cu toate acestea, aici vă puteți confunda. Deci - se află în Mercurial.

Capul este o revizuire fără descendenți. Cu o dezvoltare liniară (fără sucursale), totul este, în general, limpede - ultima revizuire este actuala revizuire de lucru și capul întregii dezvoltări. Dacă există sucursale, lucrurile devin puțin complicate.

Creați un nou director de lucru și depozit pentru teste.

Să terminăm cazul înainte de prima revizie.

După cum puteți vedea, capul nostru este prima noastră și până acum singura revizie.


Dreptul de a fi numit capul a trecut la următoarea revizuire. Și cu o dezvoltare liniară, acest titlu va fi transferat de la precedent la următor.

Sucuri anonime

Ramurile ramurilor pe care le-am considerat ultima dată sunt, de fapt, doar un caz particular de ramuri (numite sucursale). Pe lângă acestea, sunt posibile și filiale anonime.

O ramură anonimă este ușor de creat (atât de simplu încât să o puteți crea accidental, când nu este necesară). Vom reveni la revizuirea anterioară și vom continua dezvoltarea în paralel cu cele deja efectuate.

Capul Mercurial pentru tot capul, blog-ul merge

Notă: "cap nou creat". Acum, în cea de-a cincea revizie, doi descendenți ai revizuirii și ei înșiși nu au descendenți - ambii sunt capi:

Am format două ramuri de proiectare (în cazul în care filiala este încă una - default). În aceste ramuri, puteți continua dezvoltarea paralelă (capul fiecărei ramuri va merge la următoarea revizie), puteți produce încă ramuri, bine, cel mai plăcut lucru: ramurile pot fi turnate împreună.

Am fuzionat două sucursale (unite două capete într-un singur). Acum, ambii capete anterioare sunt strămoșii unei noi revizuiri, care a devenit actualul nostru cap.

Capul Mercurial pentru tot capul, blog-ul merge






Rețineți că o revizuire nu poate avea mai mult de doi strămoși, adică puteți uni doar două capete. Deoarece am avut doar două capete și a existat, atunci am chemat să fuzionăm hg fără parametri. Dacă ar exista mai multe obiective, ar fi necesar să se precizeze care dintre ele ar trebui să fie fuzionate cu cea actuală.

Ramurile denumite (ramuri)

Acum, să ne uităm la ramură și la un aspect nou.

Să creăm un depozit nou pentru teste:

Să facem câteva angajări în filiala implicită:

Și acum vom ramifica ramura "una" și acolo un cuplu mai mult.

Capul Mercurial pentru tot capul, blog-ul merge

Să vedem ce avem cu ramuri și capete:

E ghinion, avem două sucursale acum, dar numai un cap.

Revizuirea # 1, care este ultima din ramura implicită și, la prima vedere, ar trebui să fie capul ei, de fapt nu poate fi. Pur și simplu pentru că are un descendent (revizuirea # 2, chiar dacă este dintr-o altă ramură). Astfel, ramura implicită este în general lăsată fără cap și este marcată în listă ca (inactivă).

Așa că o să-i atașăm capul! Mai întâi, reveniți la ramura implicită:

Observați de ce aceste sucursale sunt numite ramuri "numite". Numele "nume" implicit aici este pur și simplu un sinonim pentru ultima revizie din ramura corespunzătoare. Aceasta este, am putea exact la fel de bine scrie hg actualizare 1.

Am creat un cap în ramura implicită (creată nouă cap).

Capul Mercurial pentru tot capul, blog-ul merge

Să verificăm ce sa întâmplat

Acum există două capete, iar implicit a devenit o ramură plină.

În loc de fuzionare hg, am arătat off și am scris hg merge 3 pentru a indica din nou că unul. este doar "numirea" revizia # 3 (ultima din ramura 1).

Capul Mercurial pentru tot capul, blog-ul merge

Capetele s-au îmbinat într-unul. De când am "turnat" o ramură în ramura implicită. acest cap aparține implicit. O ramură. astfel, a rămas în general fără cap și a devenit inactiv.

Filiale cu sub-sucursale

Pentru o înțelegere ușor mai bună (sau confuzie finală), ia în considerare următoarea perversiune:

Capul Mercurial pentru tot capul, blog-ul merge

Nu numai că aici avem două ramuri numite, deci și în fiecare dintre ele două anonime. Aceasta este, în final, avem 4 capete (# 3, # 4, # 5 și # 6).

Deci, întrebarea ce indică numele implicit și testul. Răspuns: indică ultimele revizii din ramurile lor (în consecință, # 5 și # 6). Acest lucru poate fi văzut în lista de ramuri:

Ce revizie va fi fuzionată cu modificările de îmbinare. În cel în care ne aflăm. Mergeți la # 4 și înăbușiți-vă cu testul.

De asemenea, ce sa întâmplat la noi? Și sa dovedit acest lucru:

Capul Mercurial pentru tot capul, blog-ul merge

Doar un singur cap (# 6) stânga și un cap schimbat revizuire (# 4 → # 7). Au rămas restul, inclusiv unul dintre capii ramurii de test. datorită căreia continuă să fie activă.

Poți să faci multe alte lucruri atât de absurde ...







Articole similare

Trimiteți-le prietenilor: