Kiln » TortoiseHg » TortoiseHg
Clone URL:  
shelve.txt
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
127
128
129
130
131
132
133
134
135
136
137
138
Almárka ======= .. module:: shelve.dialog :synopsis: Dialog used to perform shelve/unshelve operations Účelem tohoto nástroje je umožnit uživateli **odložit** (shelve) vybrané změny z pracovního adresáře, uložit je uvnitř repozitáře ve speciálním oprávkovém souboru (patch file) a později je opět **vyjmout** (unshelve). .. figure:: figures/shelve.png :alt: Shelve dialog Dialogové okno Shelve Stručný popis jednotlivých tlačítek: :guilabel:`Shelve` Odložit vybrané diffy v zatržených souborech (do almárky). :guilabel:`Unshelve` Vrátit odložené změny zpět do pracovního adresáře. :guilabel:`VDiff` Optické porovnání vybraného souboru :guilabel:`Vrátit` Vrátit vybrané soubory k poslednímu verzovanému stavu. Při slučování je možné určit návrat k vybranému rodiči. :guilabel:`Přidat` Zahrnout vybrané soubory (které měly status neznámého (?) nebo ignorovaného (I) souboru) do procesu *shelve*. :guilabel:`Přesunout` Přemístit vybrané soubory do určeného cílového adresáře verzovaným způsobem. :guilabel:`Odstranit` Smazat vybrané verzované i neverzované soubory (verzované označit jako smazané). :guilabel:`Zapomenout` Zapomenout vybrané verzované soubory. :guilabel:`Obnovit` Znovu načíst stav pracovního adresáře. Procedura se snaží zachovat výběr souborů i jejich výběrový status. Pole pro seznam souborů má čtyři sloupce: 1) Zatržítko, které ukazuje zda je soubor pro operaci vybrán. Tlačítka nástrojové lišty pracují jenom s vybranými soubory. "Částečně" vybrané soubory mají zvlášní výběrový status. 2) Sloupec :guilabel:`st` označuje status souboru. 3) Sloupec :guilabel:`ms` označuje stav sloučení (merge) souboru. Viz odstavec 4.5.5 Slučování. 4) Kanonická cesta souboru (relativně ke kořenu repozitáře). Pod seznamem souborů jsou (po rozbalení přepínače) zatržítka, která přepínají zobrazení různých tříd souborů (neznámý, upravený, ignorovaný, přidaný, čistý, odstraněný, smazaný). Tato zatržítka nejsou přístupná, pokud byl commit spuštěn se zadaným výběrem souborů. Záložky ------- Diffový panel nástroje Shelve má čtyži záložky: 1) Text diffu - ukazuje diff aktuálně vybraného souboru 2) Výběr porce - umožňuje přeskakovat porce diffů vybraného souboru 3) Náhled regálu - zobrazuje všechny vybrané změny. Tento náhled ukazuje změny, které budou odstraněny z pracovního adresáře a odloženy v almárce. 4) Obsah regálu - aktuální obsah regálu. Odkládání změn -------------- Stejně jako procedura Commit, používá i procedura Shelve vestavěný kód pro výběr porcí u zadaných souborů pro přemístění do almárky. Stiskneme-li tlačítko Shelve, jsou vybrané změny odstraněny z pracovního adresáře a umístěny do oprávkového souboru. Pokud almárka již změny obsahuje, musíme rozhodnout, zda má být soubor přepsán anebo zda mají být změny sloučeny. Obsahuje-li almárka nějaké změny, je aktivní tlačítko "Vyjmout". Vracení odložených změn ----------------------- Při stisku tlačítka Unshelve jsou odložené změny znovu použity v pracovním adresáři. .. note:: Vrácené změny se projeví jako úpravy pracovního adresáře po použití tlačítka Obnovit. V čem se odložení liší od předání? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Odložené změny jsou fyzicky odstraněny z pracovního adresáře dokud je opět nevrátíme. To znamená, že můžeme rozvíjet a testovat svůj projekt při nepřítomnosti odložených změn. To je bezpečnější, než vybírání změn při rozvíjení projektu. Odložením dokončených úseků projektu si také můžeme zajistit, že se nám tyto části nebudou křížit s odlaďováním či jinými prováděnými změnami. Výhrada: Odložené změny jsou uloženy v oprávce (patch), která vychází z obsahu aktuálního pracovního adresáře. Není žádná záruka že oprávku bude možné později znovu použít, pokud by odložené změny kolidovaly se změnami, provedenými v pracovním adresáři po úkonu Odložit. V čem se odložení liší od MQ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Almárku lze považovat za nepojmenovanou oprávku MQ, která není nikdy přeměněna na changeset. Nástroj Shelve může být užitečný při údržbě fronty oprávek. Úkon "shelve" může vzít změny z jedné oprávky a použít je u jiné nebo u oprávky úplně nové. Například: 1) Provedeme push do oprávky, kterou bychom rádi rozdělili 2) Otevřeme nástroj pro odkládání změn, kde můžeme vybrat poslední změny oprávky 3) Vypustíme z výběru porce, které chceme ponechat v oprávce a stiskneme :guilabel:`Shelve` 4) Obnovíme poslední (top) oprávku příkazem :command:`hg qrefresh`, nebo použijeme nástroj pro komit 5) Provedeme push nebo pop (?) do oprávky pro níž chceme použít odložené změny 6) Otevřeme nástroj pro odkládání změn a stiskneme :guilabel:`Unshelve` 7) Obnovíme poslední oprávku (opakujeme krok 4) Nelze odložit soubory přidané, odstraněné nebo přejmenované, ale extenze MQ to umí. V čem se odložení liší od procedury attic? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Extenze attic je sada nástrojů pro práci s "almárkou". Toto rozšíření umožňuje mít několik pojmenovaných *odstávek*, které mohou být odládány a vraceny nezávisle na sobě. Klávesová navigace ------------------- :guilabel:`Ctrl-C` v panelu se záložkami zkopíruje aktuálně zvýrazněné (nikoliv vybrané, jen zvýrazněné) porce diffů do schránky. Tyto mohou být vlepeny do textového zásobníku za účelem vytvoření libovolné oprávky založené na změnách v pracovním adresáři. Kód, který kopíruje porce (hunks) do schránky, rozezná záhlaví diffů. Obsah schránky může vždy tvořit platnou oprávku (patch). Nastavitelné atributy v kofiguraci repozitáře --------------------------------------------- * :menuselection:`TortoiseHg -> Diff. panel dole` * :menuselection:`TortoiseHg -> Šířka záložky` * :menuselection:`TortoiseHg -> Max velikost diffu` Spuštění z příkazového řádku ------------------------------------- Dialogové okno akce Shelve (Odložit) se otevře jedním z následujících příkazů:: hgtk shelve hgtk unshelve globální možnosti viz "hgtk -v help shelve" Přístup k funkci *shelve* v samotném Mercurialu si otevřeme úpravou konfiguračního souboru Mercurial.ini:: [extensions] tortoisehg.util.hgshelve= Příkazy :command:`shelve` a :command:`unshelve` lze potom zadávát s příkazem **hg**. .. warning:: Extenze win32text může působit potíže při výběru porcí. Toto je již vyřešeno ve verzích Mercurial 1.3 a TortoiseHg 0.8, ale vyžaduje to řádné nastavení. Viz `issue #82 <http://bitbucket.org/tortoisehg/stable/issue/82/>`_. .. vim: noet ts=4