Mercurial

Категория:Программное обеспечение по алфавиту
Категория:Программное обеспечение, разработанное в 2005 году
Категория:ПРО:ИТ:Статьи по алфавиту
Категория:ПРО:ИТ:Последняя правка: в текущем месяце
Merkuriy (eng — "simob, mobil"), Hg nomi bilan ham tanilgan (simob kimyoviy elementi nomidan) - bu juda katta kod omborlari bilan samarali ishlash uchun mo'ljallangan, o'zaro platformalarda taqsimlangan versiyani boshqarish tizimi. Birinchidan, bu konsol dasturi.

Mercurial Git yaratilishiga olib kelgan bir xil to'qnashuvdan chiqdi. Yangi tizim muallifi Mett Makkall edi.

 Tavsif 
Mercurial tizimi Python da yozilgan, garchi unumdorlikka sezgir bo'lgan qismlar (masalan, diff ning o'z ilovasi kabi) C da kengaytma modullari sifatida amalga oshirilgan. Rust ham ish faoliyatini yaxshilash uchun ishlatiladi. Mercurial dastlab Linux uchun yozilgan, keyinchalik Windows, Mac OS X va ko'pgina Unix tizimlariga ko'chirilgan. Mercurial omborlari hg buyruq qatori vositasi yordamida boshqariladi, ammo GUI-lar ham mavjud.

Versiyalarni boshqarish tizimlarining an'anaviy xususiyatlari bilan bir qatorda, Mercurial to'liq markazlashtirilmagan ishlarni (asosiy kodlar ombori tushunchasi yo'q), tarmoqlanishni (bitta loyihaning bir nechta filiallarini saqlab turish va filiallar o'rtasida o'zgarishlarni nusxalash mumkin), omborlarni birlashtirishni (qaysi) qo'llab-quvvatlaydi. ishning "taqsimlanishiga" erishadi). HTTP / HTTPS, SSH orqali va qo'lda paketlangan o'zgarishlar to'plamidan foydalangan holda omborlar o'rtasidagi aloqani qo'llab-quvvatlaydi.

hg yordam dasturi ixcham interfeysga ega va Mercurial, masalan, git ga qaraganda osonroq o'rganish hisoblanadi.

 Tushunchalar 

 Ish jarayoni 
Mercurial - bu taqsimlangan (markazlashtirilmagan) versiyani boshqarish tizimi. Bu shuni anglatadiki, ish jarayoni odatda quyidagicha ko'rinadi:

 Shaxsiy kompyuterda yangi ombor yaratiladi (mavjud omborni klonlash, yangisini yaratish va hokazo). P.);
 Fayllar ushbu omborning ishchi katalogida o'zgartiriladi/qo'shiladi/o'chiriladi;
 O'zgartirishlar ushbu omborga (ya'ni shaxsiy kompyuterdagi mahalliy omborga) kiritilgan;
 2 va 3-bosqichlar qancha kerak bo'lsa, shuncha takrorlanadi;
 Boshqa odamlarning o'zgarishlar to'plami olib tashlanadi (torting);
 O'zgarishlarni birlashtirish (birlashtirish);
 O'ziga beriladi (surish).

Ya'ni, barcha kundalik ishlar mahalliy omborda amalga oshiriladi va zarurat tug'ilganda, ularning ish natijalari bir yoki bir nechta boshqa omborlarga yuboriladi. Mercurial-ni majburiyat bajarilganda avtomatik ravishda boshqa omborlarga o'zgartirish kiritish uchun sozlash orqali masofaviy omborlar bilan ishlashda qadamlar sonini kamaytirishingiz mumkin.

 Konsol dasturi 
Konsol dasturi shunday amalga oshiriladiki, har qanday buyruq nomi, uning nomi bir ma'noli bo'lib qolsa, uni qisqartirish mumkin. Bundan tashqari, ba'zi buyruqlar taxalluslarga ega. Masalan, hg commit o'rniga hg commi, hg comm yoki hg com ni yozishingiz mumkin, lekin agar siz hg c yozsangiz, Mercurial bu buyruqni bajarishdan bosh tortadi va "c" buyrug'i noaniq ekanligini aytib, buyruqlar ro'yxatini beradi. bu qisqartma ostida. Siz hg co dan hg commit uchun stenografiya sifatida foydalana olmaysiz, chunki u hg update, lekin hg ci stenografiyasi mavjud.

 O'zgarishlar to'plamining mantiqiy tuzilishi 
right|thumb|320x320px| Qayta ko'rib chiqish grafik tasviriga misol. Uning o'ng tomonida siz tahrirlar ro'yxati, sharhlar va ularning xeshini ko'rishingiz mumkin
hg commit buyrug'ini chaqirganingizda, o'zgarishlar amalga oshiriladi. , dastur omborga bir qator o'zgarishlarni saqlaydi (o'zgartirishlar yoki qayta ko'rib chiqish). Jismoniy jihatdan bir xil o'zgarishlar sizniki kabi sodir bo'ladi, lekin ular nusxada emas, balki xizmat fayllarida saqlanadi (batafsilroq " Sahna orqasida").

Qoida tariqasida, kiritilgan barcha o'zgarishlar to'plami katta ulangan tarmoq (grafik) sifatida ko'rsatiladi, bu yerda har bir o'zgartirish to'plami bir yoki ikkita boshqasi bilan bog'lanadi.

Siz hg log --debug buyrug'i yordamida amalga oshirilgan o'zgarishlar to'plami bilan bog'langan asosiy o'zgarishlar to'plamining identifikatorlarini topishingiz mumkin. Har bir o'zgartirish to'plamida ikkita ota-ona bo'ladi (bu ombor ichida tarmoqqa ajratish imkonini beradi, hg -v help branch qarang). "-1:0000000000000000000000000000000000000000" qiymati ota-onaning yo'qligini bildiradi. Masalan, ombordagi birinchi oʻzgartirishlar toʻplami ikkala ota-ona uchun ham ushbu qiymatga ega boʻladi, keyingi oʻzgarishlar toʻplami esa ikkinchi ota-ona uchun bu qiymatga ega boʻladi (agar ular uchun omborda tarmoqlanish ishlatilmagan boʻlsa) va birinchi ota-onada Oldingi oʻzgarishlar toʻplamidagi identifikator.

Ishchi katalogni bir xil o'zgarishlar to'plami sifatida ko'rib chiqish ham foydalidir (ular hali amalga oshirilmagan, lekin tez orada ham amalga oshirilishi mumkin). Ishchi katalog, shuningdek, hg parents buyrug'i bilan topilishi mumkin bo'lgan bir yoki ikkita ota-ona o'zgarishlar to'plami bilan bog'langan. O'zgartirishlar kiritilgandan so'ng, bu ota-onalar yangi (allaqachon amalga oshirilgan) o'zgarishlar to'plamining ota-onasi bo'ladi.

 To'plam identifikatorini o'zgartirish 
Tahrirlar quyidagi xususiyatlar bilan tan olinadi :

 qayta ko'rib chiqish raqami;
 o'zgarishlar to'plami identifikatori;
 teglar (teg);
 filial nomi.

 Tahrir raqami 
Qayta ko'rib chiqish raqami - bu o'zgarishlar to'plamining omborga qo'shilish tartibini ifodalovchi butun son. Qayta ko'rib chiqish raqami noldan boshlanadi, avtomatik ravishda o'zgarishlar to'plamiga tayinlanadi va o'zgarishlar to'plamini aniqlash uchun ishlatilishi mumkin. Har bir ombor klonida bir xil o'zgartirishlar to'plamining qayta ko'rib chiqish raqami boshqacha bo'lishi mumkin. hg log buyrug'ining chiqishida qayta ko'rib chiqish raqamini yo'g'on nuqtadan oldin ko'rish mumkin (masalan, "4:e1be1898f374").

 To'plam identifikatorini o'zgartirish 
O'zgarishlar to'plami identifikatori raqamlar va "a, b, c, d, e, f" harflaridan iborat SHA-1 xeshi bo'lib, masalan, "e1be1898f3747386c41c8a5c5776e87373f6d3d3". O'zgarishlar to'plamining identifikatori avtomatik ravishda har bir o'zgarishlar to'plamiga tayinlanadi, bu o'zgarishlar to'plamining mazmunidan hisoblanadi va shuning uchun barcha omborlarda bir xil o'zgarishlar to'plamiga mos keladi. Ikki xil o'zgartirish to'plami uchun bir xil SHA-1 xeshi yaratilganda to'qnashuv ehtimoli juda kichik.

Mercurial uni buyruqlarda ishlatishda to'liq identifikator qatorini talab qilmaydi, unga faqat kerakli o'zgarishlar to'plamini noyob tarzda aniqlaydigan boshlang'ich qismi kerak (aks holda Mercurial noaniqlik haqida xabar beradi). hg log buyrug'ining chiqishida o'zgarishlar to'plamining identifikatorini ikki nuqtadan keyin ko'rish mumkin (masalan, "4:e1be1898f374"). --debug opsiyasisiz hg log buyrug'i to'liq o'rniga qisqartirilgan (12 belgidan iborat) o'zgarishlar to'plami identifikatorini chop etadi.

 Teglar 
Qayta ko'rib chiqish raqami va o'zgarishlar to'plami identifikatoriga qo'shimcha ravishda, Mercurial har bir o'zgartirish to'plamiga teglar (yoki teglar) deb ataladigan bir yoki bir nechta ixtiyoriy ramziy nom berish imkoniyatini beradi. Teglar hg tag buyrug'i yordamida tayinlanadi va barcha qo'shilgan teglarni hg tags buyrug'i yordamida ko'rish mumkin. Teg nomi ba'zi belgilarni o'z ichiga olmaydi (masalan, ": "), Mercurial hg tag buyrug'ini bajarishda kerak bo'lganda xabar beradi.

 Filial nomi 
Har bir filialning o'z nomi bor. Filial yaratilganda ko'rsatiladi va boshqa hech qachon o'zgarmaydi.

 Aniq bo'lmagan holatlar 

 Agar raqam buyruqqa qayta koʻrib chiqish identifikatori sifatida uzatilsa, Mercurial tahrir raqami unga uzatilgan deb hisoblaydi va agar koʻrsatilgan tahrir raqami bilan oʻzgarishlar toʻplami boʻlmasa, faqat qisqartirilgan oʻzgarishlar toʻplami identifikatori bilan farq qiladi. Misol uchun, agar omborda "6" tahrir raqamiga ega bitta o'zgartirishlar to'plami va "647362ac74d76124267215af1a3f94aa9707dfdf" identifikatorli boshqa o'zgarishlar to'plami ("6" bilan boshlanadi), hg log -r 6 noaniqlik haqida xabar bermasdan birinchi o'zgarishlar to'plami haqida xabar beradi. Shuning uchun, agar global identifikator raqam bilan boshlansa, uni har doim faqat harf o'z ichiga olguncha qisqartirish foydali bo'ladi. Bu xatti-harakatlar Mac OS X 10.7.4 ostida 2.2.1 versiyada kuzatilgan.
 Agar siz "5" kabi nomli teg yaratsangiz, omborda "5" tahrir raqamlari bo'lgan o'zgarishlar to'plami mavjud bo'lganda (yoki kelajakda bo'ladi), u holda Mercurial birinchi navbatda tahrir raqami bo'yicha o'zgarishlar to'plamini qidiradi. Ammo agar siz omborda "e1be" bilan boshlanadigan o'zgarishlar to'plami identifikatori mavjud bo'lganda (yoki kelajakda bo'ladi) "e1be" kabi nomli teg yaratsangiz, Mercurial o'zgarishlar to'plamini birinchi navbatda teglar bo'yicha qidiradi. Bundan tashqari, ikkala holatda ham noaniqlik haqida xabar berilmaydi. Shu sababli, faqat raqamlar va / yoki harflardan iborat teglar yaratish tavsiya etilmaydi "a, b, c, d, e, f". Bu xatti-harakatlar Mac OS X 10.7.4 ostida 2.2.1 versiyada kuzatilgan.
 Siz bo'sh papkani omborga qo'sha olmaysiz (bu muammoni hal qilish uchun siz papkaga istalgan faylni qo'yishingiz mumkin, masalan, readme.txt). Buning sababi shundaki, Mercurial papkalarni kuzatmaydi, faqat fayllar. Xulq-atvor tizimni soddalashtirish uchun ataylab amalga oshiriladi va hozircha hech qanday o'zgarishlar rejalashtirilmagan.

 O'ziga xos xususiyatlar 
git dan farqli o'laroq, Mercurial yanada qat'iy ishlash modelini o'z zimmasiga oladi, uning eng diqqatga sazovor jihatlari :

 "Halol filiallar" - har qanday filialni boshidanoq kuzatish mumkin;
 O'zgarishlarni revlog ko'rinishida saqlash (git-dagi blobdan farqli o'laroq);
 Bitta o'tishda faqat ikkita filialni birlashtirish mumkin (git bir nechta birlashtirishga ruxsat beradi);
 Majburiyatni bekor qilishning iloji yo'qligi - buning o'rniga siz tuzatuvchini yuborishingiz kerak, u bajarilmaganning ustiga qo'yiladi;
 Qattiqroq farq nazorati sukut bo'yicha yagona standartga amal qiladi va turli versiyalar va mijozlar o'rtasidagi ziddiyatlarni bartaraf qiladi.

 Qo'shimcha mablag'lar 
Mercurial omborlarga veb-interfeysni taqdim etish uchun CGI skriptlari bilan birga keladi.

TortoiseHg grafik qobig'i mavjud bo'lib, u Windows (Explorer integratsiyasi bilan) va Linux ostida (alohida dastur sifatidaSourceForge.net: TortoiseHg — Develop yoki Gnome/Nautilus integratsiyasiSourceForge.net: TortoiseHg — Develop bilan) ishlaydi. Linux va Windows uchun ishlab chiqilayotgan hgtui konsol mijozi mavjud (cygwin yordamida).

Atlassian, shuningdek, hg va svn va git-ga kirishni ta'minlaydigan SourceTree mijozini targ'ib qilmoqda.

Bir qator ishlab chiqish muhitlari Microsoft Visual Studio, IntelliJ IDEAhg4ideaJetBrains IntelliJ IDEA Plugin Repository, Eclipse, Qt Creator (2.0 versiyasidan beri). PIDA kabi Mercurial imkoniyatlariga ega., NetBeans. Emacs tarkibiga kiritilgan universal VC paketi yordamida Mercurial bilan Emacs ichidan ishlash mumkin.

Mercurial uchun eksperimental yordam Trac da mavjud. Redmine loyihasi, shuningdek, Mercurial omborlarini saqlaydi.

Tailor yordam dasturi yoki konvertatsiya kengaytmasi yordamida boshqa versiyalarni boshqarish tizimlarining, jumladan CVS, Subversion, Git, Perforce, Darcs, GNU Arch, Bazaar ning repozitoriylarini aylantirish mumkin.

 Mercurial yordamida loyihalar 
Ko'pgina bepul dasturiy ta'minotni ishlab chiqish loyihalarida Mercurial asosiy versiyani boshqarish tizimi sifatida ishlatiladi. Ular orasida:
 
 GNU Multi-Precision Library
 GNU Octave
 
 
 LiquidFeedback
 Mozilla
 Nginx
 
 Pidgin
 
 
 Tryton
 wmii
 XEmacs
 Xine
GCC, Vim, Emacs va Linux yadrosi kabi boshqa loyihalarProjects with synchronized Mercurial repositories asosiy omborlarining simob oynalari qo'llab-quvvatlanadi.

Mercurial’dan uzoq vaqt foydalanilgan, lekin 2019—2021-yillarda Git’ga oʻtgan loyihalar orasida Adium, CLISP, Illumos, Coin3D, OpenJDK, SDL bor.

 Eslatmalar 

 

 Mercurial bosh sahifasi )
 Merkuriy hujjatlari  (rus. )
 Mercurial: To'liq qo'llanma (rus. ) (boshqa formatlar)
 Mercurial haqidagi maqolalar to'plami  (rus. )

 

 
Turkum:Pages with unreviewed translations