1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
****************************
Použití s jinými systémy VCS
****************************
.. module:: nonhg
:synopsis: Describe using TortoiseHg as a front-end to other VCS
Tato kapitola popisuje tři nejoblíbenější extenze Mercurialu pro spolupráci s *cizími* systémy VCS. Viz také `Konverze repozitáře <http://mercurial.selenic.com/wiki/RepositoryConversion>`_.
Perfarce (Perforce)
===================
* `Perfarce <http://www.kingswood-consulting.co.uk/hg/perfarce/>`_ home page.
* `Mercurial for Perforce users <http://mercurial.selenic.com/wiki/PerforceConcepts>`_
Tato extenze upravuje obsluhu vzdáleného repozitáře tak, že cesta repozitáře, která připomíná::
p4://p4server[:port]/clientname
způsobí operace na jmenované klientské specifikaci p4 na serveru p4. Klientská specifikace musí již na serveru existovat před použitím této extenze. Provádění změn u klienstské specifikace Views působí problémy při synchronizaci repozitářů a měli bychom se jim vyhnout.
Extenze přepisuje pět vestavěných příkazů Mercurialu.
odchozí::
Jestliže název cílového repozitáře začíná s p4:// potom jsou oznámeny soubory ovlivněné revizemi lokálního repozitáře, nikoliv repozitáře v lokaci p4.
push::
Jestliže název cílového repozitáře začíná p4://, potom jsou exportovány změny z lokálního repozitáře do lokace p4. Není-li určena žádná revize, potom jsou odeslány všechny změny od posledního výpisu změn p4. V obou případech jsou všechny revize, které mají být odeslány, shrnuty v jediném výpisu změn p4.
Volitelně je výsledný changelist předán serveru p4 na základě volby --submit pro push nebo na základě nastavení **perfarce.submit** na True. Je-li **perfarce.keep** nastaveno na False potom se po úspěšném předání souborů smaže pracovní prostor p4.
pull::
Začíná-li jméno zdrojového repozitáře *p4://*, potom jsou změny importovány z depotu, přičemž se automaticky slučují changelisty podané příkazem hg push. Je-li **perfarce.keep** nastaveno na False, potom se po úspěšném importu souborů smaže pracovní prostor p4; v opačném případě je pracovní prostor p4 novými soubory aktualizován.
příchozí::
Začíná-li název zdrojového repozitáře *p4://*, potom jsou oznámeny změny v depotu p4, které dosud nejsou v lokálním repozitáři.
clone::
Začíná-li název zdrojového repozitáře *p4://*, potom se vytvoří cílový repozitář a přetáhnou se do něho všechny změny z depotu p4.
*Integrace TortoiseHg*
Je-li umožněna extenze perfarce, přidá se volba :guilabel:`start revision` do nástroje *klonovat* a nabídka :guilabel:`Perforce` do Průzkumníka repozitáře. Nabídka má dvě položky:
identity::
Nalezne poslední (tip) revizi (v Perforce označována jako changelist) a vybere ji v okně Průzkumníka.
pending::
Nalezne *pending* revize Perforce, které byly příkazem push poslány do naší klientské extenze Perforce ale nebyly ani zapsány do repozitáře, ani staženy zpět. V této situaci se otevře dialog, ve kterém můžeme nepřevzaté (pending) revize převzít nebo odmítnout.
*Instalace*
Perfarce se dodává společně s instalátorem TortoiseHg 1.0 pro Windows takže jej snadno umožníme přidáním záznamu do souboru Mercurial.ini nebo do konfiguračního souboru hgrc repozitáře::
[extensions]
perfarce=
hgsubversion (SVN)
==================
* `hgsubversion <http://bitbucket.org/durin42/hgsubversion/wiki/Home>`_ home page
* `hgsubversion Extension <http://mercurial.selenic.com/wiki/HgSubversion>`_ wiki page
* `Working with Subversion Repositories <http://mercurial.selenic.com/wiki/WorkingWithSubversion>`_
hgsubversion, jak název napovídá, umožňuje použít Mercurial jako klientskou aplikaci pro server SVN. Lze jej také použít pro přímý převod repozitářů SVN do Mercurialu.
*Instalace*
Instalační programy TotroiseHg pro Window obsahují pojítka python-svn, potřebná pro hgsubversion, takže je možné klonovat repozitář hgsubversion do vlastního počítače::
hg clone http://bitbucket.org/durin42/hgsubversion/ C:\hgsvn
Potom umožníme extenzi v našem souboru Mercurail.ini uvedením názvu vyhrazené složky::
[extensions]
hgsubversion = C:\hgsvn\hgsubversion
Funkčnost instalace si ověříme zadáním :command:`hg help hgsubversion`
Podrobnosti nalezneme na stránkách wiki pro hgsubversion.
.. warning::
Při klonování serveru Subversion se vřele doporučuje klonovat jenom několik prvních revizí a zbytek přetáhnout (pull). Vyskytne-li se chyba při klonování, bývá smazán celý neúplný klon. Akce pull je mnohem shovívavější.
*Integrace TortoiseHg*
Importované changesety ze Subversion se v Průzkumníku repozitáře zobrazí s původními čísly v Subversion.
hg-git (git)
============
* `hg-git <http://hg-git.github.com/>`_ home page
* `hg-git Extension <http://mercurial.selenic.com/wiki/HgGit>`_ wiki page
* `Mercurial for Git users <http://mercurial.selenic.com/wiki/GitConcepts>`_
hg-git, jak název naznačuje, nám umožní použít Mercurial jako klientskou aplikaci pro server git. Lze jej použít také pro přímý převod repozitáře Git do Mercurialu.
*Instalace*
Instalační programy TotroiseHg pro Window obsahují pojítka python-git (označovaná jako dulwich), potřebná pro hg-git, takže je možné klonovat repozitář hg-git do vlastního počítače::
hg clone http://bitbucket.org/durin42/hg-git/ C:\hg-git
Potom umožnit hggit a bookmarks v souboru Mercurial.ini::
[extensions]
bookmarks =
hggit = C:\hg-git\hggit
Funkčnost instlace si ověříme zadáním :command:`hg help hggit`
Podrobnosti viz dokumentace hggit.
Mějme na vědomí, že příkazy 'příchozí' a 'odchozí' při komunikaci s repozitáři git mají deformované zobrazení. Jsme tedy odkázání na prostá push a pull, což není neobvyklé při propojení s nástroji externího systému revizí.
.. vim: noet ts=4
|