Mercurial Web programuotojams
Kadangi ubuntu.lt kodą buvo nuspręsta perkelti po Launchpad.net stogu, tai teko šiek tiek pasidomėti bazaar versijų kontrolės sistema. Radau įdomų dalyką – Publishing your branch! Bazaar gali siųsti pakeitimus tiesiai į SFTP serverį.
Tikriausiai daugelis Web programuotojų keičia kodą savo kompiuteryje, o vėliau tai kas pakeista siunčia per FTP į Web serverį. Aš darau būtent taip ir darau tai labai dažnai. Iki šiol pakeitimų į Web serverį siuntimui naudojau Makefile + lftp. Tačiau pasiskaitęs apie Bazaar nusprendžiau pasidomėti ar Mercurial turi kokias nors priemones „push’inti“ į FTP. Pasirodo turi! :)
Atradimas¶
Radau Mercurial FTPExtension, kuris daro būtent tai, ko reikia!
Trumpai aprašysiu kaip dirbu su kodu ir kaip jį siunčiu į Web serverį, per FTP.
-
Keičiu kodą:
$ vim index.php
-
Fiksuoju tai ką keičiu:
$ hg ci -m "Aprašymas ką ir kodėl keičiau."
-
Magija prasideda :) Siunčiu pakeistus failus į Web serverį, per FTP:
$ hg ftp -u
hg ftp -u
komanda surenka visus pakeitimus nuo paskutinio siuntimo į Web
serverį ir siunčia naujus ir keistus failus, o taip pat ištrina tai, kas buvo
ištrinta. Tačiau neliečia nei vieno failo Web serveryje, kurio nėra Mercurial
repozitoriume. Tai reiškia, kad serveryje gali būti kokių tik nori failų,
tačiau atnaujinama bus tik tai, kas konkrečiai keičiasi kode. Bent jau mano
darbe tai yra labai naudingas dalykas.
Kaip įdiegti FTPExtension?¶
Labai paprastai:
$ mkdir -p ~/.hgext $ cd ~/.hgext $ hg clone http://bitbucket.org/misery/hgftp/
Po šių veiksmų, galite įjungti šį praplėtimą globaliai (~/.hgrc
), arba tik
konkrečiam repozitoriumui (./.hg/hgrc) į nurodytą failą įrašydami:
FTPExtension konfigūravimas¶
Kai jau turite veikiantį praplėtimą, konkrečiam Web projekto repozitoriumui
galite nurodyti FTP prisijungimą, kur bus siunčiami duomenys. Tai galite
padaryti repozitormiumo konfigūraciniame faile ./.hg/hgrc
, nurodydami:
Jei prisijungimo eilutę priskirsite specialią paskirtį turinčiam žodeliui
‘ftp’, tuomet šis FTP serveris bus naudojamas pagal nutylėjimą ir galėsite
tiesiog naudoti hg ftp -u
. Kitais atvejais, reikia nurodyti serverį taip:
hg ftp -u myhost
.
Toliau reikia nurodyti reviziją, nuo kurios bus siunčiami atnaujinimai. FTPExtension pakeitimus siunčia nuo revizijos, kuri pažymėta žyme ‘uploaded@host‘. Žinoma ‘host’, reikia pakeisti į konkretų hostą, tai myhost atveju, turėtų būti ‘uploaded@incubo.de‘. Einamajai revizijai lokalią žymę uždėsite taip:
$ hg tag -l uploaded@host
Viskas, kai jau FTPExtension žino reviziją, nuo kurios siųsti pakeitimus, galite keisti kodą, fiksuoti pakeitimus ir siųsti juos per ftp labai paprastai ir labai greitai. Daugiau nereikės sukti galvos dėl to kas buvo keista, kada atnaujinta ir pan.
Pabaigai, siūlau pasiskaityti daugiau apie tai, kaip naudoti šį praplėtimą:
$ hg help ftp
Daugiau informacijos praplėtimo svetainėje: