*******
Oprávky
*******
.. module:: patches
:synopsis: Describe patch operations
Definice oprávky
================
Četba těchto odkazů je užitečná pro pochopení historie a povahy oprávek (patches) a jejich použití v Mercurialu.
* `Problém správy oprávek <http://tortoisehg.bitbucket.org/hgbook/1.4/managing-change-with-mercurial-queues.html#sec:mq:patch-mgmt>`_
* `Pochopení oprávek <http://tortoisehg.bitbucket.org/hgbook/1.4/managing-change-with-mercurial-queues.html#sec:mq:patch>`_
* `Více o oprávkách <http://tortoisehg.bitbucket.org/hgbook/1.4/managing-change-with-mercurial-queues.html#sec:mq:adv-patch>`_
Zádrhel
=======
Standardní formát oprávky neumí popsat binární soubory, změnu jmen souborů nebo změnu povolení. Potřebujeme-li zachytit cokoliv z uvedeného, musíme povolit oprávky **git** zadáním::
[diff]
git=True
Mercurial 1.5 své chování v tomto směru vylepšuje. Vydá varování, když jsou potřebné git diffy nebo se někdy do formágu git nastaví automaticky - `diff section <http://www.selenic.com/mercurial/hgrc.5.html#diff>`_.
Oprávkové rutiny Mercurialu nezacházejí dobře s různými EOLN mezi zdrojovými kódy a oprávkami. Pro zlepšení situace bylo v 1.3 zavedeno nastavení **patch.eol**::
[patch]
eol = auto #strict, lf, or crlf
Práce na extenzi hgeol se v této oblasti také zlepšuje. Bude zřejmě vyřešeno v hg-1.5. `patch section <http://www.selenic.com/mercurial/hgrc.5.html#patch>`_.
Použití oprávky není blbuvzdorná operace. Pokud je zdrojový soubor odvozen ze souboru, použitého pro vytvoření oprávky, mohou při jejím použití vzniknout konflikty. Tyto se zapisují do souboru s příponou .rej. Tyto odmítnuté změny musejí v současné době být řešeny ručně uživatelem.
Export oprávek
==============
Changeset
---------
Pro export changesetu jako oprávkového souboru použijeme kontextovou nabídku pro vybranou revizi v Průzkumníku repozitáře :menuselection:`Export oprávky...`. Budeme požádání o potvrzení jména souboru 'repo_rev.patch'
Rozsah changesetů
-----------------
V Průzkumníku repozitáře určíme rozsah changesetů tak, že levým poklepem vybereme první (bázový) changeset a potom pravým poklepem poslední (cílový) changeset. Tím se také otevře kontextová nabídka, jejíž pomocí můžeme generovat oprávky či svazek oprávek a poslat jej případně mailem nebo si prohlédnout nahromaděné změny.
Tento nástroj je velmi účinný a pro volbu báze a cíle nejsou žádná omezení.
Email
-----
Pro odeslání changesetu prostřednictvím emailu použijeme kontextové menu v Průzkumníku repozitáře.
:menuselection:`Email oprávky`. Volba otevře dialog pro odeslání vybraného changesetu.
Pro odeslání rozsahu changesetů použijeme výše popsaný způsob výběru a zvolíme :menuselection:`Emailem odsud k vybranému...`
Konečně lze použít tlačítko :guilabel:`Email` v synchronizační liště Průzkumníka repozitáře pro odeslání všech odchozích změn do vybraného vzdáleného repozitáře.
.. note::
Pro posílání oprávek emailem nutno nastavit
`SMTP <http://www.selenic.com/mercurial/hgrc.5.html#smtp>`_
Vybírání třešniček
------------------
V Průzkumníku repozitáře použijeme již popsaný způsob určení rozsahu a z kontextové nabídky vybereme :menuselection:`Diff odsud k vybranému`. Otevře se prohlížeč 'status' se zobrazenými změnami mezi bázovým a cílovým changesetem.
V tomto prohlížeči můžeme vybírat soubory a porce diffů stejně jako v nástroji 'commit'. Svůj výběr si můžeme prohlédnout volbou :guilabel:`Náhled před uložením` a vybrané změny uložit do oprávkového souboru tlačítkem :guilabel:`Uložit jako`.
Označené porce na záložce 'Výběr porce' můžeme také příkazem
CTRL-C uložit do schránky.
.. note::
Změna pořadí výběru změní účinek oprávky.
Import oprávek
==============
Zádrhel: Import vyžaduje čistý pracovní adresář. Příkaz hg import může vygenerovat editor, jestliže oprávka nemá záhlaví.
Fronty oprávek
==============
Záložka MQ (při povolené extenzi) v Průzkumníku repozitáře, nástroj Commit.
.. vim: noet ts=4
|
Loading...