Vytváření a Používání Záplat

Pro open source projekty (jako je tento) má každý přístup ke čtení z úložiště a každý může k projektu přispět. Tak, jak jsou ty příspěvky kontrolovány? Pokud by kdokoli mohl změny odevzdat, projekt by byl trvale nestabilní a pravděpodobně trvale rozbitý. V této situaci je změna kontrolována posláním záplatového souboru vývojovému týmu, kteří mají přístup pro zápis. Mohou záplatu nejdříve prohlédnout a pak buď odeslat do úložiště, nebo odmítnout a vrátit zpět k autorovi.

Záplatové soubory jsou prostě soubory sjednoceného rozdílu popisující rozdíly mezi Vaší pracovní kopii a základní revizi.

Vytvoření Záplatového souboru

Nejdříve je potřeba, abyste změny otestovali. Pak namísto použití TortoiseSVNOdevzdat... na nadřazený adresář, vyberte TortoiseSVNVytvořit Záplatu...

Obrázek 4.63. Dialogové okno Vytvořit Záplatu

Dialogové okno Vytvořit Záplatu

nyní můžete vybrat soubory, které chcete do záplaty zahrnout, stejně jako byste udělali s úplným odevzdáním. Toto vyprodukuje jeden soubor, který obsahuje přehled všech změn, které jste provedli ve vybraných souborech od poslední aktualizace z úložiště.

Sloupce v tomto dialogovém okně lze upravit stejným způsobem jako sloupce v dialogovém okně Zkontrolovat změny. Přečtěte si „Místní a Vzdálený Stav“ pro další podrobnosti.

Kliknutím na tlačítko Možnosti můžete určit, jak je záplata vytvořena. Například můžete určit, že změny na konci řádků nebo mezery nejsou zahrnuty v konečném záplatovém soubor.

Můžete vytvářet oddělené záplaty obsahující změny v různé sadě souborů. Samozřejmě, pokud vytvoříte záplatový soubor, provede některé další změny ve stejných souborech a pak vytvoříte další záplatu, bude druhý záplatový soubor zahrnovat obě sady změn.

Jednoduše uložte soubor pomocí jména dle Vašeho výběru. Záplatové soubory mohou mít jakoukoli příponu, která se Vám líbí, ale podle úmluvy, by měl mít příponu .patch nebo .diff. Nyní jste připraveni odeslat Váš záplatový soubor.

Tip

Při ukládání záplaty nepoužívejte příponu .txt, pokud ji chcete poslat e-mailem někomu jinému. Soubory s prostým textem jsou často měněny e-mailovým software a mnohdy se stává, že znaky mezer a nových řádků jsou automaticky převedeny a zkomprimovány. Pokud k tomu dojde, záplatu nepůjde snadno použít. Proto při jejím ukládání používejte přípony .patch nebo .diff.

Můžete také uložit záplatu do schránky místo do souboru. Možná to budete chtít tak udělat, abyste ji mohli vložit do e-mailu pro ostatní ke kontrole. Nebo pokud máte dvě pracovní kopie na jednom počítači a chcete přenést změny z jedné do druhé, záplata do schránky, je vhodný způsob, jak toto udělat.

Pokud chcete, můžete vytvořit soubor záplaty v rámci dialogových oken Odevzdání nebo Zkontrolovat změny. Stačí jen vybrat soubory a použít položku kontextového menu pro vytvoření záplaty z těchto souborů. Pokud chcete vidět dialogové okno Možnosti je třeba držet shift když kliknete pravým tlačítkem myši.

Použití Záplatového souboru

Záplatové soubory jsou aplikovány na Vaší pracovní kopii. Toto mělo být provedeno ze stejné úrovni adresáře, která byla použita k vytvoření záplaty. Pokud si nejste jisti, která to je, stačí se podívat na první řádek záplatového souboru. Například, pokud první soubor, na kterém se pracovalo byl dok/zdroj/česky/kapitola1.xml a první řádek v záplatovém souboru je Index: česky/kapitola1.xml pak je třeba záplatu použít v adresáři dok/zdroj/. Nicméně pokud jste ve správné pracovní kopii, pokud vyberete špatnou úroveň adresáře, TortoiseSVN si toho všimne a navrhne správnou úroveň.

Aby bylo možno použít záplatový soubor na Vaší pracovní kopii, musíte mít do úložiště alespoň přístup pro čtení. Důvodem je, že program sloučení musí odkázat změny zpět na revizi, proti níž byly vyrobeny dálkovým vývojářem.

Z kontextového menu pro daný adresář, klikněte na TortoiseSVNPoužít Záplatu... To zobrazí dialogové okno otevření souboru umožňující vybrat záplatový soubor k použití. Ve výchozím nastavení jsou zobrazeny pouze soubory .patch nebo .diff, ale můžete vybrat Všechny soubory. Pokud jste dříve uložili záplatu do schránky, můžete použít Otevřít ze schránky... v dialogovém okně otevření souboru. Nezapomeňte, že tato možnost se zobrazí, pouze pokud jste uložili záplatu do schránky pomocí TortoiseSVNVytvořit Záplatu.... Kopírováním záplaty do schránky z jiné aplikace toto tlačítko nezobrazí.

Případně, pokud záplatový soubor má příponu .patch nebo .diff, můžete na něj přímo kliknout pravým tlačítkem myši a zvolit TortoiseSVNPoužít Záplatu.... V tomto případě budete vyzváni k zadání umístění pracovní kopie.

Tyto dvě metody nabízejí různé způsoby, jak dělat totéž. S první metodou zvolíte pracovní kopii a vyhledáte záplatový soubor. S druhým vyberete záplatový soubor a přejdete do pracovní kopie.

Jakmile jste si vybrali záplatový soubor a umístění pracovní kopie, je spuštěn TortoiseMerge pro sloučení změn ze záplatového souboru do Vaší pracovní kopie. Malé okno obsahuje seznam souborů, které byly změněny. Postupně dvakrát klikněte na každý z nich, zkontrolujte změny a sloučené soubory uložte.

Záplata vzdáleného vývojáře je nyní použíta na Vaší pracovní kopii, takže musíte odevzdat změny, aby všichni ostatní měli k nim z úložiště přístup.