Merkurijal, višeplatformska distribuirana alatka za nadzornu kontrolu namenjena programerima, je većinski implementirana korišćenjem programskog jezika Pajton, ali uključuje i implementaciju dif programa napisanog u Ce-u. Podržavaju ga Windows i Juniks-slični sistemi, kao recimo FreeBSD, OS X i Linuks. Merkurijal radi preko interfejsa komandne linije, ali su ekstenzije za grafičko korisnički interfejs dostupne. Sve Merkurijal operacije se navode kao argumenti njihovog glavnog programa hg(referenca na Hg – hemijski simbol za živu).

Glavni ciljevi u dizajnu Merkurijala uključuju visoke perfomanse i skalabilnost, decentralizaciju, potpuno distribuirani zajednički razvoj, stabilno rukovanje tekstualnim i binarnim datotekama, kao i unapređena grananja i mogućnost spajanja uz ideju očuvanja jednostavnosti [1]. Uključuje integrisani veb-interfejs. Merkurijal je, takođe, olakšao tranziciju za korisnike ostalih sistema za kontrola verzija, najviše Subverzija.

Met Makal je stvorio Merkurijal i dalje radi kao glavni developer. Merkurijal je pušten kao besplatan softver pod uslovima GNU GPLv2 licence (ili bilo koje kasnije verzije[2]).

Istorija uredi

Makal je prvi put najavio pojavu Merkurijala 19. aprila 2005.[3] Podsticaj za to je saopštenje objavljeno nešto ranije tog meseca o povlačenju Bitmoverovog besplatnog BitKeeper-a.

BitKeeper je korišćen za upraljanje izvornim kodom kod Linuks kernel projekta. Makal je odlučio da napiše distribuirani izvorni kod sistema kao zamena Linuks kernelu. Ovaj projekat je započeo par dana nakon još jednog projekta zvanog Git, koji je pokrenuo Linus Torvalds sa sličnom namerom[4].

Projekat Linuks kernela je odlučio da radije koristi Git nego Merkurijal, ali se Merkurijal danas koristi za ostale različite projekte (pogledaj ispod). “Git protiv Merkurijala” je postao jedan od svetih ratova hakerske kulture[5].

Kao odgovor mejl listi Merkurijala, Met Makal je objasnio kako je ime „Merkurijal“ izabrano:[6]

Neposredno pre svog prvog izdanja, pročitao sam članak o porazu trenutnog BitKeeper-a koji opisuje Leri MekVoj-a kao merkurijal (u smislu „nepredvidiv“). Zbog različitih značenja, prikladna skraćenica i dobar fit sa mojom prethodno postojućom šemom imena (pogledajte moju e-mejl adresu), savršeno se uklopilo. Merkurijal je dobio ime u čast Lerija. Ne znam da l' je istina i za Git.

Godine 2013, Fejsbuk je usvojio Merkurijal i počeo da ga razvija za rukovanje njihovom velikim i jedinstvenim kodnim skladištem[7].

Dizajn uredi

Merkurijal koristi SHA-1 heševe da identifikuje korekcije. Za pristup skladištu, Merkurijal koristi HTTP baziran protokol koji traži da smanji povratne zahteve, nove konekcije i prenesene podatke. Merkurijal takođe radi preko SSH-a gde je protokol jako sličan onom koji je baziran na HTTP-u. Koristi trostruko spajanje pre nego što pozove spoljašnje alatke za spajanje.

Upotreba uredi

Prikaz 1 pokazuje neke najbitnije operacije u Merkurijalu i njihovu povezanost sa konceptima Merkurijala.

 
Prikaz 1: Neke bitne operacije u Merkurijalu i njihova povezanost.

Srodni softver uredi

 
Prikaz: hgk u upotrebi
 
Prikaz: TortoiseHg istorija korisnika
TortoiseHg
TortoiseHg je višeplatformski GKI za Merkurijal. Većina Merkurijalovih operacija mogu biti pokrenute sa grafičkog interfejsa. Može biti upotrebljeno na Windows, Mac OS X, ili Linuks sistemima.[8] Na Windows sistemima, TortoiseHg instaler vezuje Merkurijal i Pajton.
MacHg
MacHg je besplatan i brz višenitan frontend za Mac OS X 10.6 i kasnije verzije.[9]
SourceTree
je besplatan klijent za Mac OS X i Windows GUI, kojeg je razvio Atlassian, koji radi i sa Merkurijalom, i sa Gitom.[10]
Hgk
Ovo je bio prvobitni pregledač prijava za Merkurijal. Implementiran je kao produžetak za Merkurijal sa tcl/tk frontendom. Zasnovan je na sličnom alatu za Git, koji se naziva gitk. Ovaj bregledač se smatra sada nepoželjnim.[11] Preporučene alternative su hgview[12] ili TortoiseHg.
Murky
GKI za Mac OS X pisan u Objective-C 2.0. Radi na Mac OS X 10.5 i na kasnijim verzijama.[13]
MacMercurial
GKI za Mac OS X, koji ne treba da u potpunosti zameni upotrebu komandne linije za Merkurijal, nego da olakša najuobičajnije Merkurijal operacije. Radi na Mac OS X 10.4 i na kasnijim verzijama.[14]
EasyMercurial
To je prost korisnički interfejs za Merkurijal distribuirane sisteme za kontrolu. On je besplatan višeplatformski softver otvorenog koda.[15]
hgtui
To je besplatan TKI za Linuks i Windows.[16]

Usvajanje uredi

Iako Merkurijal nije bio izabran da rukovodi izvorima Linuks kernela, prihaćen je od pojedinih organizacija, ukljućujući Fejsbuk,[21] W3C, i Mozila.

Hostovanje izvornog koda uredi

Sledeći internet sajtovi obezbeđuju besplatno hostovanje izvornog koda za skladišta Merkurijala:

Projetki otvorenog koda koji koriste Merkurijal uredi

Neki projekti koji koriste Merkurijal [25]

Vidi još uredi

Reference uredi

  1. ^ Mackall, Matthew ‘Matt’ (2006), „Towards a Better SCM: Revlog and Mercurial” (PDF), Linux Symposium Proceedings (PDF)|format= zahteva |url= (pomoć), Ottawa: Mercurial-scm.org 
  2. ^ „Relicensing”, Mercurial (wiki), Mercurial-scm.org 
  3. ^ Mackall, Matt (20. 4. 2005). „Mercurial v0.1 – a minimal scalable distributed SCM”. Linux kernel (Lista adresa). Arhivirano iz originala 5. 8. 2012. g. Pristupljeno 9. 6. 2016. 
  4. ^ Mackall, Matt (29. 4. 2005). „Re: Mercurial 0.4b vs git patchbomb benchmark”. Linux kernel (Lista adresa). Arhivirano iz originala 9. 7. 2012. g. Pristupljeno 9. 6. 2016. 
  5. ^ „Managing source code with Mercurial”. „Mercurial and Git fans are also happy to discuss the learning curve, merits, and usability of each VCS system's command set. Space prevents that discussion here, but a web search on that topic will provide lots of interesting reading material. 
  6. ^ Mackall, Matt (15. 2. 2012). „Why did Matt choose the name Mercurial?”. Mercurial (Lista adresa). 
  7. ^ Goode, Durham; Agarwal, Siddharth. „Scaling Mercurial at Facebook”. Facebook Code. Facebook. Pristupljeno 13. 10. 2015. 
  8. ^ „Introduction”. TortoiseHg Documentation. Pristupljeno 23. 4. 2014. 
  9. ^ MacHg
  10. ^ Free Mercurial and Git Client for Windows and Mac | Atlassian SourceTree
  11. ^ „Hgk Extension”. Mercurial Wiki. Pristupljeno 23. 4. 2014. 
  12. ^ „hgview (qt4 and text based Mercurial log navigator) (Logilab.org)[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 05. 04. 2012. g. Pristupljeno 09. 06. 2016.  Sukob URL—vikiveza (pomoć)
  13. ^ [„snej / Murky / wiki / Home — Bitbucket[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 10. 03. 2012. g. Pristupljeno 09. 06. 2016.  Sukob URL—vikiveza (pomoć) snej / Murky / wiki / Home — Bitbucket]
  14. ^ James Walker's Mac Stuff
  15. ^ EasyMercurial
  16. ^ Google Code Archive - Long-term storage for Google Code Project Hosting
  17. ^ http://meld.sourceforge.net/
  18. ^ „VisualHG - Home[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 11. 03. 2012. g. Pristupljeno 09. 06. 2016.  Sukob URL—vikiveza (pomoć)
  19. ^ [„zzsergant / HgSccPackage / wiki / Home — Bitbucket[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 03. 07. 2020. g. Pristupljeno 09. 06. 2016.  Sukob URL—vikiveza (pomoć) zzsergant / HgSccPackage / wiki / Home — Bitbucket]
  20. ^ „Intland codeBeamer[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 08. 04. 2013. g. Pristupljeno 09. 06. 2016.  Sukob URL—vikiveza (pomoć)
  21. ^ „Scaling Mercurial at Facebook”. 
  22. ^ „CodePlex now supporting native Mercurial”. CodePlex (Weblog). Microsoft. 22. 1. 2010. Arhivirano iz originala 7. 7. 2013. g. Pristupljeno 9. 6. 2016. 
  23. ^ „Git, Mercurial & Subversion hosting”. Features. Codebase HQ. 4. 3. 2013. Arhivirano iz originala 30. 3. 2014. g. Pristupljeno 9. 6. 2016. 
  24. ^ „Hosting”, Mercurial (wiki), Mercurial-scm.org 
  25. ^ „Some projects that use Mercurial”, Mercurial (wiki), Mercurial-scm.org 
  26. ^ „Source”, Adblock+, Arhivirano iz originala 16. 06. 2016. g., Pristupljeno 09. 06. 2016 
  27. ^ „Source code repositories migrated from Subversion to Mercurial”. Coin3D (news). 27. 2. 2010. Arhivirano iz originala 26. 7. 2012. g. Pristupljeno 9. 6. 2016. 
  28. ^ „Mercurial Work Flow” (wiki). Illumos. 13. 3. 2011. 
  29. ^ Reed, J Paul (12. 4. 2007). „Version Control System Shootout Redux Redux”. 
  30. ^ „Switch to hg.netbeans.org completed”. Net beans. januar 2008. Arhivirano iz originala 18. 09. 2012. g. Pristupljeno 09. 06. 2016. 
  31. ^ „Mercurial”. Developers. OGRE – Open Source 3D Graphics Engine. 4. 4. 2010. Arhivirano iz originala 2. 1. 2011. g. Pristupljeno 9. 6. 2016. 
  32. ^ James Gosling. „Open Sourcing Sun's Java Platform Implementations, Part 1” (intervju). Intervju sa Robert Eckstein. Sun. 
  33. ^ „Source Repositories”. OpenIndiana. 13. 3. 2011. Arhivirano iz originala 15. 08. 2016. g. Pristupljeno 09. 06. 2016. 

Spoljašnje veze uredi