TortoiseSVN

Subversion klient pro Windows

Version 1.14

Stefan Küng

Lübbe Onken

Simon Large

Zbyněk Schwarz ([email protected])

Překlad 

2022/09/06 19:53:28 (r29447)


Obsah

Předmluva
Co je TortoiseSVN?
Funkce TortoiseSVN
Licence
Vývoj
Historie TortoiseSVN
Poděkování
Průvodce Čtením
Terminologie použitá v tomto dokumentu
1. Začínáme
Instalace TortoiseSVN
Systémové požadavky
Instalace
Základní představa
Jdeme si to vyzkoušet
Vytvoření Úložiště
Import projektu
Získání Pracovní Kopie
Provedení změn
Přidání více souborů
Prohlížení Historie Projektu
Vracení Změn
Pokračujeme ...
2. Základní koncepty Kontroly Verzí
Úložiště
Modely Verzování
Problém sdílení souborů
Řešení Zamknout-Změnit-Odemknout
Řešení Kopírovat-Změnit-Sloučit
Co Subversion dělá?
Subversion v akci
Pracovní kopie
URL úložiště
Revize
Jak Pracovní Kopie Sledují Úložiště
Shrnutí
3. Úložiště
Vytváření úložiště
Vytvoření úložiště z příkazového řádku klienta
Vytváření úložiště pomocí TortoiseSVN
Lokální Přístup do Úložiště
Přístup k úložišti na síťovém disku
Rozložení úložiště
Záloha Úložiště
Hákové skripty na straně serveru
Odkazy pro Získání
Přístup do úložiště
4. Příručka Každodenního Použití
Obecné Funkce
Překryv Ikon
Kontextové menu
Táhnout a Pustit
Běžné zkratky
Ověření
Maximalizace oken
Import dat do úložiště
Import
Import na místě
Mimořádné soubory
Získání Pracovní Kopie
Hloubka Získání
Odevzdání Vašich změn do úložiště
Dialogové okno Odevzdání
Seznam Změn
Odevzdat pouze části souborů
Vyjmout položky ze seznamu odevzdání
Zprávy Záznamu Odevzdání
Průběh Odevzdání
Aktualizovat pracovní kopii změnami od ostatních
Řešení Konfliktů
Konflikty souboru
Konflikt Vlastností
Konflikty Stromu
Získávání informací o stavu
Překryv Ikon
Podrobný Stav
Místní a Vzdálený Stav
Zobrazení rozdílů
Seznam Změn
Shelving
Dialogové Okno Záznamu Revizí
Vyvolání Dialogového Okna Záznamu Revizí
Činnosti Záznamu Revizí
Získání dodatečných informací
Zobrazení více zpráv záznamu
Aktuální Revize Pracovní Kopie
Funkce Sledování Sloučení
Změna Zpráv Záznamu a Autora
Filtrování Zpráv Záznamu
Statistické informace
Offline režim
Obnovení zobrazení
Zobrazit Rozdíly
Rozdíly souboru
Možnosti konců řádků a mezer
Porovnávání adresářů
Porovnávání snímků pomocí TortoiseIDiff
Porovnávání Dokumentů Office
Externí Nástroje Porovnání/Sloučení
Přidání nových souborů a adresářů
Kopírování/Přesun/Přejmenování Souborů a Adresářů
Ignorování Souborů a Adresářů
Shoda vzorů v seznamech k Ignorování
Mazání, Přesunutí a Přejmenování
Smazání souborů a adresářů
Přesouvání souborů a adresářů
Řešení konfliktů v názvech souborů
Oprava Přejmenování Souborů
Smazání souborů bez verze
Vrátit změny zpět
Vyčistit
Nastavení projektu
Subversion Vlastnosti
TortoiseSVN Vlastnosti projektu
Editoři vlastností
Externí položky
Externí adresáře
Externí soubory
Vytváření externích pomocí přetáhnutí
Větvení/Značkování
Vytvoření Větve nebo Značky
Jiné způsoby, jak vytvořit větev nebo značku
Získat nebo Překlopit...
Sloučení
Sloučení Rozsahu Revizí
Sloučení Dvou Různých Stromů
Nastavení Sloučení
Zhodnocení výsledků sloučení
Sledování Sloučení
Handling Conflicts after Merge
Údržba Větve Funkcí
Zamykání
Jak Zamykání v Subversion Funguje
Získání zámku
Uvolnění zámku
Kontrola stavu zámku
Převést Neuzamčené Soubory na Pouze Pro Čtení
Hákové Skripty Uzamknutí
Vytváření a Používání Záplat
Vytvoření Záplatového souboru
Použití Záplatového souboru
Kdo Změnil Který Řádek?
Obviňovat ze souborů
Obvinit Rozdíly
Průzkumník Úložiště
Grafy Revizí
Uzly Grafu Revizí
Změna zobrazení
Použití Grafu
Obnovení zobrazení
Čištění stromů
Export Pracovní Kopie Subversion
Smazání pracovní kopie ze správy verzí
Přemístit pracovní kopii
Integrace se Systémy pro Sledování Chyb/Problémů
Přidání Čísel Problémů do zpráv záznamu
Získávání informací od Systému pro Sledování Problémů
Integrace s Internetovými Prohlížeči úložiště
Nastavení TortoiseSVN
Obecná nastavení
Nastavení Grafu Revizí
Nastavení Překryvu Ikon
Nastavení sítě
Nastavení Externího Programu
Nastavení Uložených dat
Uchovávání záznamu
Hákové Skripty na Straně Klienta
Nastavení TortoiseBlame
Nastavení TortoiseUDiff
Export Nastavení TSVN
Pokročilá nastavení
Poslední krok
5. Monitor projektů
Přidávání projektů do monitoru
Dialogové okno monitoru
Hlavní operace
6. Program SubWCRev
Příkazový řádek SubWCRev
Nahrazení Klíčového Slova
Příklad klíčového slova
Rozhraní COM
7. Rozhraní IBugtraqProvider
Úmluva pro pojmenování
Rozhraní IBugtraqProvider
Rozhraní IBugtraqProvider2
A. Často kladené otázky (FAQ)
B. Jak...
Přesunout/zkopírovat větší množství souborů najednou
Přinutit uživatele zadat zprávu záznamu
Hákový skript na serveru
Vlastnosti projektu
Aktualizovat vybrané soubory z úložiště
Vrátit zpět revize v úložišti
Pomocí dialogového okna záznamu revizí
Pomocí dialogového okna sloučení
Pomocí svndumpfilter
Porovnat dvě revize souboru nebo adresáře
Zahrnout společný podprojekt
Pomocí svn:externals
Pomocí vnořené pracovní kopie
Pomocí relativního umístění
Přidat projekt do úložiště
Vytvořit zkratku úložiště
Ignorovat soubory, které už mají verzi
Odstranit verzi pracovní kopie
Odebrat pracovní kopii
C. Užitečné tipy pro administrátory
Nasazení TortoiseSVN pomocí zásad skupiny
Přesměrovat kontrolu nové verze
Nastavení proměnné prostředí SVN_ASP_DOT_NET_HACK
Zakázání položek kontextového menu
D. Automatizace TortoiseSVN
Příkazy TortoiseSVN
Obslužná rutina URL Tsvncmd
Příkazy TortoiseIDiff
Příkazy TortoiseUDiff
E. Odkazy Rozhraní Příkazové Řádky
Úmluvy a Základní pravidla
Příkazy TortoiseSVN
Získat
Aktualizovat
Aktualizovat na Revizi
Odevzdat
Porovnat
Zobrazit Záznam
Zjistit změny
Graf Revizí
Průzkumník Úložiště
Upravit konflikty
Vyřešeno
Přejmenovat
Smazat
Vrátit
Vyčistit
Uzamknout
Uvolnit zámek
Větev/značka
Překlopit
Sloučit
Exportovat
Přemístit
Vytvořit Úložiště Zde
Přidat
Import
Obvinit
Přidat do seznamu k ignorování
Vytvořit Záplatu
Použít Záplatu
F. Detaily zavedení
Překryv Ikon
G. Jazykové balíčky a kontrola pravopisu
Jazykové balíčky
Kontrola pravopisu
Slovník pojmů
Rejstřík

Seznam obrázků

1.1. Menu TortoiseSVN pro složky bez verzí
1.2. Dialogové okno importu
1.3. Prohlížeč Rozdílů v Souborech
1.4. Dialogové okno Záznamů
2.1. Typický klient/server systém
2.2. Problém, kterému je třeba se vyvarovat.
2.3. Řešení Zamknout-Změnit-Odemknout
2.4. Řešení Kopírovat-Změnit-Sloučit
2.5. ... Pokračování Kopírovat-Změnit-Sloučit
2.6. Systém souborů úložíště
2.7. Úložiště
3.1. Menu TortoiseSVN pro složky bez verzí
4.1. Průzkumník ukazující překryv ikon
4.2. Kontextové menu pro adresář pod správou verzí
4.3. Menu Soubor v Průzkumníku pro zkratky v adresáři s verzí
4.4. Menu táhnutí pravým tlačítkem pro adresář pod správou verzí
4.5. Dialogové okno Ověření
4.6. Dialogové okno importu
4.7. Dialogové okno Získání
4.8. Dialogové okno odevzdání
4.9. Kontrola pravopisu v Dialogovém oknu Odevzdání
4.10. Dialogové okno průběhu zobrazující probíhající odevzdání
4.11. Dialogové okno průběhu zobrazující dokončení aktualizace
4.12. Průzkumník ukazující překryv ikon
4.13. Stránka vlastností v Průzkumníku, karta Subversion
4.14. Zjistit změny
4.15. Dialogové okno odevzdání se Seznamem Změn
4.16. Shelve dialog
4.17. Unshelve dialog
4.18. Dialogové Okno Záznamu Revizí
4.19. Horní Panel Dialogového okna Záznamu revizí s Kontextovým menu
4.20. Dialogové okno nastavení spolupráce na kódu
4.21. Horní panel Kontextového Menu pro 2 vybrané Revize
4.22. Dolní panel dialogového okna Záznamů s Kontextovým Menu
4.23. Dolní panel dialogového okna Záznamů s Kontextovým Menu při zvolení více souborů.
4.24. Dialogové Okno Záznamu Zobrazující Sledování Sloučení Revizí
4.25. Sloupcový graf Odevzdání-podle-Autora
4.26. Koláčový graf Odevzdání-podle-Autora
4.27. Graf odevzdání podle data
4.28. Dialogové okno Jít Offline
4.29. Dialogové okno Porovnání Revizí
4.30. Prohlížeč porovnání obrázku
4.31. Kontextové menu průzkumníka pro soubory bez verze
4.32. Menu táhnutí pravým tlačítkem pro adresář pod správou verzí
4.33. Kontextové menu průzkumníka pro soubory bez verze
4.34. Kontextové menu průzkumníka pro soubory s verzí
4.35. Dialogové okno Vrátit
4.36. Dialogové okno Vyčištění
4.37. Stránka Subversion vlastností
4.38. Přidání vlastností
4.39. Dialogové okno vlastností pro hákové skripty
4.40. Dialogové okno vlastností uživatelských booleanských typů
4.41. Dialogové okno vlastností uživatelských stavových typů
4.42. Dialogové okno vlastností uživatelských jednořádkových typů
4.43. Dialogové okno vlastností uživatelských víceřádkových typů
4.44. Stránka vlastnosti svn:externals
4.45. Stránka vlastnosti svn:keywords
4.46. Stránka vlastnosti svn:eol-style
4.47. Stránka vlastnosti tsvn:bugtraq
4.48. Stránka vlastnosti velikost zprávy záznamu
4.49. Stránka vlastnosti jazyka
4.50. Stránka vlastnosti svn:mime-type
4.51. Stránka vlastnosti svn:needs-lock
4.52. Stránka vlastnosti svn:executable
4.53. Šablony zpráv sloučení v dialogovém okně vlastností
4.54. Dialogové okno Větev/Značka
4.55. Dialogové okno Překlopení
4.56. Průvodce Sloučením - Vyberte Rozsah Revizí
4.57. Průvodce Sloučením - Sloučení Stromu
4.58. The Merge Conflict Dialog
4.59. The Merge Tree Conflict Dialog
4.60. Dialogové okno Sloučit vše...
4.61. Dialogové okno Uzamknutí
4.62. Dialogové okno Zjistit Změny
4.63. Dialogové okno Vytvořit Záplatu
4.64. Dialogové okno Okomentování / Obvinění
4.65. TortoiseBlame
4.66. Průzkumník Úložiště
4.67. Graf Revize
4.68. Dialogové okno Export z URL
4.69. Dialogové okno přemístění
4.70. Dialogové Okno Vlastností Bugtraq
4.71. Ukázka dialogového okna dotazu na systém pro sledování problémů
4.72. Dialogové okno nastavení, stránka Obecné
4.73. Dialogové okno Nastavení, Stránka Kontextového menu
4.74. Dialogové Okno Nastavení, Dialogová okna Stránka 2
4.75. Dialogové okno Nastavení, Dialogová okna Stránka 2
4.76. Dialogové okno Nastavení, Dialogová okna Stránka 3
4.77. Dialogové okno Nastavení, Strana Barvy
4.78. Dialogové okno nastavení, Stránka Graf Revizí
4.79. Dialogové okno nastavení, Stránka Barvy Grafu Revizí
4.80. Dialogové okno nastavení, Stránka Překryv Ikon
4.81. Dialogové okno nastavení, Stránka Sady Ikon
4.82. Dialogové okno nastavení, Stránka Obslužné Rutiny Ikon
4.83. Dialogové okno nastavení, Stránka Síť
4.84. Dialogové okno Nastavení, Stránka Prohlížeč Rozdílů
4.85. Dialogové okno Nastavení, Pokročilé Dialogové Okno Rozdílů/Sloučení
4.86. Dialogové okno nastavení, Stránka Uložená Data
4.87. Dialogové okno Nastavení, Stránka Úschova Záznamu
4.88. Dialogové okno Nastavení, Statistika Úschovy Záznamu
4.89. Dialogové okno nastavení, Stránka Hákové Skripty
4.90. Dialogové okno Nastavení, Konfigurace Hákových Skriptů
4.91. Dialogové okno nastavení, Stránka Integrace se Systémem pro Sledování Problémů
4.92. Dialogové okno nastavení, Stránka TortoiseBlame
4.93. Dialogové okno nastavení, Stránka TortoiseUDiff
4.94. Dialogové okno nastavení, stránka Synchronizace
4.95. Hlavní panel s výchozím seskupením
4.96. Seskupení v hlavním panelu podle úložiště
4.97. Seskupení v hlavním panelu podle úložiště
4.98. Seskupení v hlavním panelu s překryvnými barvami úložiště
5.1. Dialogové okno úpravy projektu v monitoru projektů
5.2. Hlavní dialogové okno monitoru projektu
B.1. The TortoiseSVN right drag context menu for moving files
C.1. Dialogové okno odevzdání, zobrazující oznámení o nové verzi

Seznam tabulek

2.1. Přístupová URL úložiště
4.1. Připnutá revize
6.1. Seznam dostupných přepínačů v příkazovém řádku
6.2. Seznam kódů chyb SubWCRev
6.3. Seznam dostupných klíčových slov
6.4. Podporované metody COM/automatizace
C.1. Položky menu a jejich hodnoty
D.1. Seznam dostupných příkazů a možností
D.2. Seznam dostupných možností
D.3. Seznam dostupných možností

Předmluva

Správa verzí je umění řízení změn informací. To dlouho byl zásadní nástroj pro programátory, kteří obvykle tráví svůj čas prováděním malých změn v softwaru a pak další den vracejí nebo odevzdají některou z těchto změn. Představte si, že tým takovýchto vývojářů pracuje současně - a možná i na stejném souboru ve stejnou chvíli! - a můžete vidět, proč je zapotřebí systém pro zvládnutí potencionálního chaosu.

Co je TortoiseSVN?

TortoiseSVN je bezplatný open-source Windows klient pro Apache™ Subversion®, systém pro správu verzí. To znamená, že TortoiseSVN spravuje soubory a adresáře v průběhu času. Soubory jsou uloženy v centrálním úložišti. Úložiště je podobné běžnému souborovému serveru, až na to, že si pamatuje každou změnu, kdo kdy ve Vašich souborech a adresářích udělal. To vám umožní obnovit starší verze souborů a zkoumat historii, jak a kdy se Vaše data změnila, a kdo je změnil. To je důvod, proč si mnoho lidí myslí, že Subversion, a systémy pro správu verzí vůbec, je jako stroj času.

Některé systémy pro správu verzí jsou také software pro řízení konfigurace (SCM). Tyto systémy jsou speciálně přizpůsobeny pro správu stromů zdrojového kódu, a mají mnoho funkcí, které jsou specifické pro vývoj software - jako je nativní podpora programovacích jazyků, nebo dodávají nástroje pro vytváření softwaru. Subversion, nicméně, není jeden z těchto systémů, je to všeobecný systém, který lze použít ke správě všech sbírek souborů, včetně zdrojového kódu.

Funkce TortoiseSVN

Co dělá z TortoiseSVN takového dobrého klienta Subversion? Zde je krátký seznam vlastností.

Integrace do Rozhraní

TortoiseSVN se hladce integruje do prostředí Windows (tj. průzkumník). To znamená, že můžete pokračovat v práci s nástroji, které už znáte. A nemusíte přepínat do jiné aplikace vždy, když potřebujete funkce správy verzí!

A nemusíte ani používat Průzkumník Windows. Kontextové menu TortoiseSVN fungují i v mnoha jiných manažerech souborů, a v dialogovém okně Soubor/Otevřít, které je společné pro většinu standardních aplikací Windows. Měli byste však mít na paměti, že TortoiseSVN je záměrně vyvinut jako rozšíření pro Průzkumník Windows. Může se stát, že v jiných aplikacích integrace není tak kompletní a např. překryvy ikon nemusí být zobrazeny.

Překryv ikon

Stav všech verzí souborů a složek je indikován malými překryvnými ikonami. Tímto způsobem můžete ihned vidět, jaký je stav vaší pracovní kopie.

Grafické Uživatelské Rozhraní

Když zobrazíte seznam změn v souboru nebo ve složce, můžete kliknout na revizi pro zhlédnutí komentářů k tomuto odevzdání. Můžete také zobrazit seznam změněných souborů - stačí dvakrát kliknout na soubor, abyste viděli, co všechno se změnilo.

Dialogové okno odevzdání zobrazuje seznam všech položek, které budou zahrnuty do odevzdání. Každá položka má zaškrtávací rámeček, takže položky, které chcete zahrnout, si můžete vybrat. Soubory bez verzí mohou být také uvedeny, v případě, že jste je zapomněl dodat, jako nový soubor.

Snadný přístup k příkazům Subversion

Veškeré příkazy Subversion jsou dostupné z kontextového menu průzkumníka. TortoiseSVN do něho přidá své vlastní podmenu.

Vzhledem k tomu, že TortoiseSVN je klient Subversion, bychom Vám také rádi ukázali i některé funkce Subversion:

Verze adresáře

CVS sleduje pouze historii jednotlivých souborů, ale Subversion zavedlo virtuální souborový systém verzí, který sleduje změny celého adresářového stromu v průběhu času. Soubory a adresáře jsou opatřeny verzí. Výsledkem je existence opravdových příkazů přesunout a kopírovat na straně klienta, které pracují se soubory a adresáři.

Atomová odevzdání

Odevzdání buď jde do úložiště úplně, nebo vůbec ne. To umožňuje vývojářům vytvářet a odevzdávat změny jako logické kousky.

Metadata s verzí

Každý soubor a adresář má přiložen neviditelný soubor vlastností. Můžete si vymyslet a ukládat libovolný pár klíčů/hodnot, které chcete. Vlastnosti jsou opatřeny verzí v průběhu času, tak jako obsah souborů.

Výběr síťových vrstev

Subversion má abstraktní pojem o přístupu k úložišti, takže je snadné pro lidi si zavést nový sítový mechanizmus. Vyspělý síťový server Subversion je modul pro webový server Apache, který používá variantu HTTP nazývanou WebDAV/DeltaV. To dává Subversion velkou výhodu v oblasti stability a interoperability, a poskytuje zdarma různé klíčové vlastnosti např.: ověření, pověření, kompresi po síti a prohlížení úložiště. Menší, samostatný server Subversion je také k dispozici. Tento server používá vlastní protokol, který lze snadno tunelovat přes ssh.

Konzistentní zpracování dat

Subversion vyjadřuje rozdíl souborů za použití binárního odlišovacího algoritmu, který pracuje shodně na textových (čitelný člověkem) i binárních (nečitelný člověkem) souborech. Oba typy souborů jsou uloženy stejně komprimované v úložišti, a rozdíly jsou přenášeny v obou směrech přes síť.

Efektivní větvení a značkování

Cena za větvení a značkování nemusí být úměrná velikosti projektu. Subversion vytváří větve a značky tím, že zkopíruje projekt, pomocí mechanismu podobný tvrdému odkazu. Proto tato operace zabírá pouze velmi malé, neměnné množství času, a velmi málo místa v úložišti.

Licence

TortoiseSVN je Open Source projekt vytvořený pod licencí GNU General Public License (GPL). Je zdarma ke stažení a zdarma k použití, a to buď pro osobní, nebo komerční účely, na libovolný počet počítačů.

Although most people just download the installer, you also have full read access to the source code of this program. You can browse it on this link https://osdn.net/projects/tortoisesvn/scm/svn/. The current development line is located under /trunk/, and the released versions are located under /tags/.

Vývoj

TortoiseSVN i Subversion jsou vyvíjeny komunitou lidí, kteří pracují na těchto projektech. Pocházejí z různých zemí celého světa, společně pracující na vytvoření skvělého softwaru.

Historie TortoiseSVN

V roce 2002 Tim Kemp zjistil, že Subversion je velmi dobrý systém pro správu verzí, ale postrádá dobrého GUI klienta. Myšlenka pro klienta Subversion jako integraci do rozhraní Windows brala inspiraci z podobného klienta pro CVS jménem TortoiseCVS. Tim zkoumal zdrojový kód TortoiseCVS a použil ho jako základ pro TortoiseSVN. Pak založil projekt, zaregistroval doménu tortoisesvn.org a dal zdrojový kód online.

Během té doby, Stefan Küng hledal dobrý a svobodný systém správy verzí a nalezl Subversion a zdroj pro TortoiseSVN. Vzhledem k tomu, že TortoiseSVN nebyl v té době ještě připraven k použití, se brzy připojil k projektu a začal programovat. Zanedlouho přepsal většinu stávajícího kódu a začal přidávat příkazy a funkce, až do bodu, kdy nic z původního kódu nezůstalo.

Jak se Subversion stával stabilnějším, přitahoval více a více uživatelů, kteří také začali používat TortoiseSVN jako jejich klienta Subversion. Uživatelská základna rychle rostla (a stále roste každý den). V tu dobu Lubbe Onken nabídl svoji pomoc a vytvořil překrásné ikony a logo pro TortoiseSVN. V současnosti se stará o webové stránky a správu překladů.

Postupem času ostatní systémy pro správu verzí vytvořily své vlastní klienty Tortoise, což způsobilo problém s překryvnými ikonami v Průzkumníku: počet takovýchto překryvů je omezený a i jeden klient ho může snadno překročit. Proto Stefan Küng zavedl komponentu TortoiseOverlays umožňující všem klientům Tortoise používat stejné překryvné ikony. V současnosti všichni svobodní klienti Tortoise a i někteří další používají tuto sdílenou komponentu.

Poděkování

Tim Kemp

za zahájení projektu TortoiseSVN

Stefan Küng

za tvrdou práci, aby dostal TortoiseSVN tam, kde je teď a jeho vedení projektu

Lübbe Onken

za nádherné ikony, logo, odchyt chyb, překládání a řízení překladů

Simon Large

za údržbu dokumentace

Stefan Fuhrmann

za úschovu záznamů a graf revizí

Knize Subversion

za skvělý úvod do Subversion a její 2. kapitolu, kterou jsme zde zkopírovali

Projektu Tigris Style

za některé styly, které byly použity v této dokumentaci

Našim Přispěvatelům

za opravy, hlášení chyb a nové nápady a za pomoc druhým odpovídáním na otázky týkající se našeho mailing listu.

Našim Dárcům

za mnoho hodin radosti s hudbou, kterou nám poslali

Průvodce Čtením

Tato kniha je napsána pro znalce počítačů, kteří chtějí využívat Subversion pro správu svých dat, ale chtěji používat GUI klienta raději, než příkazový řádek. TortoiseSVN je rozšíření rozhraní Windows a předpokládá se, že uživatel je obeznámen s Průzkumníkem Windows a ví, jak ho používat.

Tato Předmluva vysvětluje, co je TortoiseSVN, něco málo o projektu TortoiseSVN a komunitě lidí, kteří na něm pracují a licenční podmínky pro jeho použití a distribuci.

1 – „Začínáme vysvětluje, jak nainstalovat TortoiseSVN na vašem PC a jak ho začít ihned používat.

V 2 – „Základní koncepty Kontroly Verzí dáváme krátký úvod do Subversion systému pro správu revizí, z něhož vychází TortoiseSVN. Toto je převzato z dokumentace pro projekt Subversion a vysvětluje různé přístupy k řízení verzí, a jak funguje Subversion.

V kapitole o 3 – „Úložiště je vysvětleno, jak nastavit místní úložiště, které je užitečné pro testování Subversion a TortoiseSVN pomocí jediného PC. Také vysvětluje něco o správě úložiště, která je rovněž relevantní pro úložiště umístěné na serveru.

4 – „Příručka Každodenního Použití je nejdůležitější část, protože vysvětluje všechny hlavní rysy TortoiseSVN a jak je používat. Má podobu výuky, začíná se získáním pracovní kopie, její změnou, odevzdáním Vašich změn, atd. Pak přikročí k pokročilejším tématům.

The 5 – „Monitor projektů explains how you can monitor your Subversion projects so you don't miss important commits from your other team members.

6 – „Program SubWCRev je samostatný program, který je součástí TortoiseSVN. Extrahuje informace z vaší pracovní kopie a zapíše je do souboru. To je užitečné pro připojení informací o sestavení ve Vašich projektech.

B – „Jak... tato část odpovídá na některé běžné otázky o plnění úkolů, které nejsou výslovně uvedeny jinde.

Část o D – „Automatizace TortoiseSVN ukazuje, jak můžou dialogová okna TortoiseSVN GUI být volány z příkazového řádku. To je užitečné pro skriptování, kde ještě potřebujete interakci s uživatelem.

E – „Odkazy Rozhraní Příkazové Řádky zprostředkuje vztah mezi příkazy TortoiseSVN a jejich ekvivalenty v příkazovém řádku klienta Subversion svn.exe .

Terminologie použitá v tomto dokumentu

Pro snazší čtení těchto dokumentů, všechny jména obrazovek a menu z TortoiseSVN jsou označeny jiným písmem. Například Dialogové Okno Záznamů.

Výběr z menu je označen šipkou. TortoiseSVNZobrazit záznam znamená: vybrat Zobrazit záznam z kontextového menu TortoiseSVN.

Tam, kde se objevuje místní kontextové menu v jednom z dialogových oken TortoiseSVN, je zobrazeno takto: Kontextové menuUložit jako ...

Tlačítka uživatelského rozhraní jsou označena takto: Stiskněte OK pro pokračování.

Činnosti uživatelů jsou vyznačeny tučným písmem. Alt+A: Stiskněte klávesu Alt na Vaší klávesnici a při držení zároveň stiskněte klávesu A. Táhnutí pravým tlačítkem: Stiskněte pravé tlačítko myši a při držení táhněte položky do nového umístění.

Systémový výstup a vstup z klávesnice je také indikován jiným písmem.

Důležité

Důležité poznámky jsou označeny ikonou.

Tip

Tipy, které vám usnadní život.

Výstraha

Místa, kde musíte být opatrní, co děláte.

Varování

Tam, kde je vyžadováno extrémní opatrnosti. Pokud jsou tato varování ignorována, může dojít k poškození dat či jiným ošklivým věcem.

Kapitola 1. Začínáme

Tato část je zaměřena na lidi, kteří by chtěli zjistit, co TortoiseSVN vlastně je, a vyzkoušet si ho. Vysvětluje, jak nainstalovat TortoiseSVN, vytvořit místní úložiště a provede Vás nejčastěji používanými operacemi.

Instalace TortoiseSVN

Systémové požadavky

TortoiseSVN běží na Windows Vista nebo vyšší a je k dispozici v obou 32bitových a 64bitových variantách. Instalátor pro 64bitový Windows také obsahuje části rozšíření pro 32bitovou verzi. Což znamená, že nemusíte instalovat 32bitovou verzi zvlášť, abyste dostali kontextové menu TortoiseSVN a překryvy v 32bitových aplikacích.

Podpora pro Windows 98, Windows ME a Windows NT4 byla ukončena ve verzi 1.2.0 a podpora Windows 2000 a XP SP2 byla ukončena ve verzi 1.7.0. Podpora Windows XP SP3 byla ukončena ve verzi 1.9.0. Stále si můžete stáhnout a nainstalovat starší verze, pokud je budete potřebovat.

Instalace

TortoiseSVN přichází se snadno použitelným instalátorem. Dvakrát klikněte na instalační soubor a postupujte podle pokynů. Instalátor se postará o zbytek. Nezapomeňte po instalaci restartovat.

Důležité

K instalaci TortoiseSVN musíte mít správcovská oprávnění. Instalátor Vás o ně požádá až budou potřeba.

Jsou k dispozici jazykové balíčky, které přeloží uživatelské rozhraní TortoiseSVN do mnoha různých jazyků. Zkontrolujte prosím G – „Jazykové balíčky a kontrola pravopisu pro více informací, jak je nainstalovat.

If you encounter any problems during or after installing TortoiseSVN please refer to our online FAQ at https://tortoisesvn.net/faq.html.

Základní představa

Než Vás vtáhneme do práce se skutečnými soubory, je důležité získat přehled o tom, jak Subversion funguje a jaké jsou používány výrazy.

Úložiště

Subversion používá centrální databázi, která obsahuje všechny soubory kontrolované verzí s jejich kompletní historií. Tato databáze je označována jako úložiště. Úložiště normálně existuje na souborovém serveru, na kterém běží Subversion server program, který dodává na vyžádání klientů Subversion (např. TortoiseSVN) obsah. Zálohujete-li si pouze jednu věc, zálohujte si úložiště, protože to je definitivní hlavní kopie všech vašich dat.

Pracovní kopie

Zde provádíte skutečnou práci. Každý vývojář má svoji vlastní pracovní kopii, někdy také známou jako sandbox, na svém lokálním PC. Můžete si stáhnout nejnovější verzi z úložiště, pracovat na ni lokálně bez ovlivnění někoho jiného. Pak, když jste spokojeni se změnami, které jste provedli, je odevzdejte zpět do úložiště.

Pracovní kopie Subversion neobsahuje historii projektu, ale ponechává si kopii souborů, tak jak existují v úložišti předtím, než jste začali provádět změny. To znamená, že je snadné přesně zkontrolovat, jaké změny jste provedli.

Také je potřeba vědět, kde najít TortoiseSVN, protože z nabídky Start není moc vidět. To je proto, že TortoiseSVN je rozšíření rozhraní, takže nejdříve spusťte Průzkumníka Windows. Klikněte pravým tlačítkem na adresář v Průzkumníku a měli byste takto vidět některé nové položky v kontextovém menu:

Obrázek 1.1. Menu TortoiseSVN pro složky bez verzí

Menu TortoiseSVN pro složky bez verzí


Jdeme si to vyzkoušet

Tato sekce Vám ukáže, jak si vyzkoušet některé z nejčastěji používaných funkcí na malém zkouškovém úložišti. Přirozeně se nevysvětluje všechno - toto je přeci pouze Průvodce Rychlým Startem. Jakmile jste připraveni, měli byste si přečíst i zbytek této uživatelské příručky, která Vás věcmi provede mnohem důkladněji. Také podrobněji vysvětluje nastavení řádného Subversion serveru.

Vytvoření Úložiště

Pro Váš skutečný projekt, bude Vaše úložiště vytvořeno někde v bezpečí a bude kontrolováno Subversion serverem. Pro účely této výuky budeme využívat možnosti místního úložiště Subversion, který umožňuje přímý přístup k úložišti vytvořeném na pevném disku bez nutnosti mít server.

Nejdříve si vytvořte nový prázdný adresář na Vašem PC. Může být kdekoliv, ale v této výuce ho budeme nazývat C:\svn_repos. Nyní klikněte pravým tlačítkem myši na nový adresář a z kontextového menu zvolte TortoiseSVNZde vytvořit úložiště. Úložiště je pak vytvořeno uvnitř adresáře a je připraveno k použití. Také vytvoříme výchozí vnitřní strukturu adresáře kliknutím na tlačítko Vytvořit strukturu adresáře.

Důležité

Funkce lokální úložiště je velmi užitečná pro testování a demonstraci, ale pokud nepracujete jako jediný vývojář na jednom počítači, měli byste vždy používat opravdový Subversion server. Je lákavé, v malé firmě, vyhnout se práci s vytvořením serveru a jen přistupovat k úložišti ve sdílené síti. To nikdy nedělejte. Ztratíte tak data. Přečtěte si „Přístup k úložišti na síťovém disku“ abyste zjistili, proč je to špatný nápad, a jak nastavit server.

Import projektu

Nyní máme úložiště, ale v tuto chvíli je zcela prázdné. Předpokládejme, že mám sadu souborů v C:\Projekty\Widget1, které bych chtěl přidat. Přejděte v Průzkumníku do složky Widget1 a pravým tlačítkem myši na něj klikněte. Nyní vyberte TortoiseSVN Importovat... , která otevře dialogové okno

Obrázek 1.2. Dialogové okno importu

Dialogové okno importu


Na Subversion úložiště se odkazuje pomocí adresy URL, což nám umožňuje specifikovat úložiště kdekoliv na internetu. V tomto případě musíme odkázat na naše vlastní lokální úložiště, které má URL file:///c:/svn_repos/Widget1 a do které přidáme naše vlastní jméno projektu Widget1. Všimněte si, že se používají 3 lomítka po file: a že lomítka jsou používána všude.

Dalším důležitou funkcí tohoto dialogového okna je okno Import zpráv, které Vám umožní zadat zprávu popisující, co děláte. Když se procházíte historií svého projektu, tyto zprávy odevzdání jsou cenným vodítkem ukazující, jaké změny byly provedeny a proč. V tomto případě můžeme říct něco jednoduchého, jako je Import projektu Widget1. Klikněte na OK a adresář je přidán do Vašeho úložiště.

Získání Pracovní Kopie

Nyní, když máme projekt v našem úložišti, musíme vytvořit pracovní kopii pro každodenní práci. Všimněte si, že importováním adresáře automaticky neznamená, že tento adresář je pracovní kopie. Termín pro vytvoření nové pracovní kopie Subversion je Získat. Chceme získat složku z našeho úložiště do vývojového adresáře na PC nazvaný C:\Projekty\Widget1-Dev. Vytvořte tento adresář, klepněte na něj pravým tlačítkem myši a zvolte TortoiseSVNZískat. Pak zadejte URL pro získání, v tomto případě file:///c:/svn_repos/trunk/Widget1 a klikněte na OK. Náš vývojový adresář je pak naplněn soubory z úložiště.

Důležité

Ve výchozím nastavení se položka Získání nenachází v podnabídce TortoiseSVN, ale je zobrazena v nejvyšší nabídce Průzkumníka. Příkazy TortoiseSVn, které nejsou v podnabídce mají předponu SVN: SVN Získat...

Můžete si povšimnout, že vzhled této složky se liší od naší původní složky. Každý soubor má zelené zaškrtnutí v levém dolním rohu. Jedná se o stavové ikony TortoiseSVN, které jsou přítomny pouze v pracovní kopii. Zelený stav označuje, že soubor se od verze v úložišti neliší.

Provedení změn

Čas pustit se do práce. V adresáři Widget1-Dev začneme upravovat soubory - řekněme, že provedeme změny v Widget1.c a ReadMe.txt. Všimněte si, že překryv ikon v těchto souborech se nyní změnila na červenou, což naznačuje, že byly lokálně provedeny změny.

Ale jaké to byly změny? Klikněte pravým tlačítkem myši na jeden ze změněných souborů a vyberte TortoiseSVNPorovnat. Nástroj TortoiseSVN pro porovnání souborů se spustí a ukáže vám přesně, které řádky se změnily.

Obrázek 1.3. Prohlížeč Rozdílů v Souborech

Prohlížeč Rozdílů v Souborech


Dobře. Takže jsme spokojeni se změnami, pojďme aktualizovat úložiště. Tato činnost se nazývá Odevzdat změny. Klikněte pravým tlačítkem na adresář Widget1-Dev a vyberte TortoiseSVNOdevzdat. Dialogové okno odevzdání zobrazí změněné soubory, z nichž každý má zaškrtávací políčko. Možná budete chtít vybrat pouze část těchto souborů, ale v tomto případě budeme odevzdávat změny obou souborů. Zadejte zprávu popisující změnu a klikněte na OK. Dialogové okno průběhu zobrazí soubory jak jsou nahrávány na úložiště a je hotovo.

Přidání více souborů

Postupně, jak se projekt vyvíjí, budete muset přidat nové soubory - řekněme, že chcete přidat nějaké nové funkce Navic.c a přidat odkaz na existující Makefile. Klikněte pravým tlačítkem myši na složku a TortoiseSVNPřidat. Dialogové okno Přidat Vám nyní zobrazí všechny soubory bez verze a můžete si vybrat ty, které chcete přidat. Dalším způsobem, jak přidat soubory by bylo kliknout pravým tlačítkem myši na vlastní soubor a zvolte TortoiseSVNPřidat .

Nyní, když vstoupíte do složky odevzdání, nový soubor se ukáže jako Přidaný a existující soubor jako Modifikovaný. Všimněte si, že můžete oklepáním na upravený soubor zkontrolovat, přesně jaké změny byly provedeny.

Prohlížení Historie Projektu

Jedna z nejvíce užitečných funkcí TortoiseSVN je dialogové okno Záznamů. Zde můžete vidět seznam všech odevzdání, které jste provedli v souboru nebo v adresáři a také ukazuje podrobné zprávy o odevzdáních, které jste zadali (napsali jste zprávu odevzdání jak jsme Vám doporučovali? Pokud ne, pak teď víte proč je to důležité).

Obrázek 1.4. Dialogové okno Záznamů

Dialogové okno Záznamů


Dobrá, tak tady jsem trochu podváděl a použil snímek obrazovky z úložiště TortoiseSVN.

Horní panel ukazuje seznam revizí odevzdaných spolu se začátkem zprávy odevzdání. Zvolíte-li jednu z těchto revizí, prostřední panel Vám ukáže úplnou zprávu záznamu pro zvolenou revizi a na spodním panelu se zobrazí seznam změněných souborů a adresářů.

Každý z těchto panelů má kontextové menu, které nabízí mnoho dalších způsobů jak využit informace. Ve spodním panelu můžete dvojklikem na soubor zjistit, jaké přesně změny byly provedeny v této revizi. Pro více informací si přečtěte „Dialogové Okno Záznamu Revizí“.

Vracení Změn

Jednou funkcí, kterou mají všechny systémy pro správu revizí je, že umožňuje vrátit zpět změny, které jste provedli dříve. Jak byste očekávali, s TortoiseSVN máte usnadněný přístup.

Pokud se chcete zbavit změn, které jste doposud neodevzdali a obnovit soubor tak, jak byl před úpravami, TortoiseSVN Vrátit je volba pro Vás. Tímto se zbavíte svých změn (pro každý případ jsou přesunuty do Koše) a vrátíte se k odevzdané verzi s kterou jste začali. Pokud se chcete zbavit jen některých změn, můžete použít TortoiseMerge k zobrazení rozdílů a vybrat změněné řádky pro vrácení.

Pokud chcete vrátit zpět změny konkrétní revize, začněte s dialogovým oknem Záznamů a najděte problematickou revizi. Zvolte Kontextové menuVrátit změny z této revize a tyto změny budou zrušeny.

Pokračujeme ...

Tento průvodce Vám dal velmi rychlou prohlídku některých nejvýznamnějších a užitečných funkcí TortoiseSVN, ale samozřejmě je toho daleko více, co jsme ještě neprobrali. Výrazně doporučujeme, abyste si udělali čas a přečetli si zbytek tohoto manuálu, zejména 4 – „Příručka Každodenního Použití která Vám dá mnohem více podrobností o každodenních operacích.

Překonali jsme spoustu problémů, abychom se ujistili, že je informativní i snadno čitelný, ale jsme si vědomi, že je tam toho hodně! Udělejte si čas a nebojte se všechno si vyzkoušet v ukázkovém úložišti, jak budete moct. Nejlepší způsob, jak se to naučit, je si to vyzkoušet.

Kapitola 2. Základní koncepty Kontroly Verzí

Tato kapitola je mírně upravená verze téže kapitoly v knize Subversion. On-line verze knihy Subversion je k dispozici zde: http://svnbook.red-bean.com/.

Tato kapitola je krátký, neformální úvod do Subversion. Pokud nejste obeznámeni se správou verzí, tato kapitola je určitě pro Vás. Začneme diskusi o obecných představách o správě verzí, propracujeme se ke konkrétním myšlenkám Subversion, a ukážeme si některé jednoduché příklady použití Subversion.

I přesto, že příklady uvedené v této kapitole ukazují lidi sdílející sbírky zdrojového kódu programu, mějte na paměti, že Subversion může spravovat jakýkoli druh souborů - není omezen na pomoc programátorům.

Úložiště

Subversion je centralizovaný systém pro sdílení informací. Jejím jádrem je úložiště, které je centrálním skladištěm dat. Úložiště uchovává informace ve formě stromu souborového systému - typická hierarchie souborů a adresářů. Libovolný počet klientů se připojí k úložišti a pak z těchto souborů čtou nebo do nich zapisují. Zapisováním dat klient zpřístupňuje informací ostatním; čtením dat klient od ostatních informace obdrží.

Obrázek 2.1. Typický klient/server systém

Typický klient/server systém

Tak proč je to zajímavé? Zatím to zní jako definice typického souborového serveru. A skutečně, úložiště je typ souborového serveru, ale není to jen tak nějaký souborový server. Co dělá úložiště Subversion zvláštní je, že si pamatuje každou změnu která kdy byla na něj vložena: každou změnu každého souboru, a dokonce i změny v samotném stromovém adresáři, jako je přidávání, mazání a přeskupování souborů a adresářů.

Když klient čte data z úložiště, obvykle vidí pouze poslední verzi stromu souborového systému. Ale klient má také možnost zobrazit předchozí stavy souborového systému. Například, klient může položit historickou otázky jako: co tento adresář obsahoval minulou středu?, nebo kdo byl poslední, kdo změnil tento soubor, a jaké změny udělali? To jsou druhy otázek, které jsou srdcem každého systému pro správu verzí: systémy, které jsou navrženy tak, aby uchovávaly a sledovaly změny údajů v čase.

Modely Verzování

Všechny systémy pro správu verzí musí řešit stejný základní problém: jak se systém, který umožňuje uživatelům sdílet informace, bude bránit proti nechtěnému šlápnutí na nohu toho druhého? Je až příliš snadné, aby si uživatelé navzájem přepsali změny v úložišti.

Problém sdílení souborů

Vezměme si tento scénář: Předpokládejme, že máme dva spolupracovníky, Lojzu a Lízu. Každý z nich se rozhodne upravit stejné úložiště souborů současně. Pokud si Lojza uloží své změny úložiště první, pak je možné, že (o několik okamžiků později) Líza je mohla omylem přepsat svoji vlastní novou verzi souboru. Zatímco Lojzova verze souboru nebude navždy ztracena (protože systém si pamatuje každou změnu), všechny změny, které provedl Lojza nebudou přítomny v Lízině novější verzi souboru, protože nikdy neviděla Lojzovy změny. Lojzova práce je stále ztracena - nebo alespoň chybí v nejnovější verzi souboru - a pravděpodobně omylem. To je určitě situace, které se chceme vyhnout!

Obrázek 2.2. Problém, kterému je třeba se vyvarovat.

Problém, kterému je třeba se vyvarovat.

Řešení Zamknout-Změnit-Odemknout

Mnoho systémů pro správu verzí používá model Zamknout-Upravit-Odemknout pro řešení tohoto problému, což je velmi jednoduché řešení. V takovém systému úložiště umožňuje pouze jedné osobě provést změnu jednoho souboru najednou. Nejdříve Lojza musí zamknout soubor dříve, než do něho může začít dělat změny. Zamykání souboru je podobné jako vypůjčit si knihu z knihovny, když Lojza uzamkl soubor, Líza nemůže provádět žádné změny. Pokud se pokusí zamknout soubor, úložiště požadavek zamítne. Jediné, co může udělat, je otevřít si soubor pro čtení, a čekat až Lojza dokončí změny a zámek odemkne. Poté, co Lojza odemkne soubor, je na řadě Líza, která si může soubor zamknout a upravit ho.

Obrázek 2.3. Řešení Zamknout-Změnit-Odemknout

Řešení Zamknout-Změnit-Odemknout

Problém s modelem zamknout-změnit-odemknout je, že je trochu omezující, a často se stává překážkou pro uživatele:

  • Uzamknutí může způsobit administrativní problémy. Někdy Lojza zamkne soubor a pak na něj zapomene. Mezitím Líza, protože stále čeká na příležitost upravit soubor, má svázané ruce. A pak Lojza odjede na dovolenou. Nyní Líza musí požádat správce k odemknutí Lojzova zámku. Situace tak způsobila spoustu zbytečných průtahů a ztracený čas.

  • Zamykání může způsobit zbytečné serializace. Co když Lojza upravuje začátek textového souboru a Líza chce upravovat pouze konec stejného souboru? Tyto změny se vůbec nepřekrývají. Snadno by mohli upravovat soubor současně a žádné velké škody by nenastaly, za předpokladu, že změny byly řádně sloučeny. Není třeba, aby se v této situaci střídali.

  • Zamykání může vytvořit falešný pocit bezpečí. Předstírejme, že Lojza uzamkl a upravuje soubor A, a současně Líza zamkla a upravuje soubor B. Předpokládejme, že A i B jsou na sobě závislé a změny provedené v obou souborech jsou sémanticky neslučitelné. Najednou A i B už spolu nefungují. Systém zámků nedokázal zabránit problému - přesto nějak poskytl pocit falešného bezpečí. Je snadné pro Lojzu a Lízu si představit, že zamknutím souborů, každý začíná bezpečný, izolovaný úkol, a tím jim už od začátku bylo zabráněno prodiskutovat jejich nekompatibilní změny.

Řešení Kopírovat-Změnit-Sloučit

Subversion, CVS, a další systémy pro správu verzí používají model Kopírovat-Upravit-sloučit jako alternativa k zamykání. V tomto modelu, každý klient uživatele čte úložiště a vytvoří osobní pracovní kopii ze souboru nebo projektu. Uživatelé pak pracují paralelně, a mění svoje vlastní soukromé kopie. Nakonec soukromé kopie jsou sloučeny do nové, konečné verze. Systém pro správu verzí často pomáhá se slučováním, ale v konečném důsledku je člověk odpovědný za to, aby vše proběhlo v pořádku.

Zde je příklad. Řekněme, že Lojza a Líza si každý vytvořil pracovní kopii stejného projektu, kopírovanou z úložiště. Pracují současně, a provádějí změny ve stejném souboru A v rámci jejich kopií. Líza uloží změny do úložiště jako první. Když se Lojza pokusí uložit své změny později, úložiště ho informuje, že jeho soubor A je zastaralý. Jinými slovy, tento soubor v úložišti se od posledního zkopírování nějak změnil. Takže Lojza požádá svého klienta, aby sloučil všechny nové změny z úložiště do jeho pracovní kopie souboru A. Je zde šance, že Líziny změny se nepřekrývají s jeho, takže jakmile má obě sady změn integrovány, si uloží svou pracovní kopii zpět do úložiště.

Obrázek 2.4. Řešení Kopírovat-Změnit-Sloučit

Řešení Kopírovat-Změnit-Sloučit

Obrázek 2.5. ... Pokračování Kopírovat-Změnit-Sloučit

... Pokračování Kopírovat-Změnit-Sloučit

Ale co když se Líziny změny překrývají s Lojzovými? Co pak? Tato situace se nazývá konflikt, A obvykle to není velký problém. Když Lojza požádá svého klienta o sloučení poslední změny úložiště do jeho pracovní kopie, jeho kopie souboru A je nějakým způsobem označena, že je ve stavu konfliktu: bude moct vidět obě sady konfliktních změn, a ručně si mezi nimi vybrat. Všimněte si, že software nemůže automaticky vyřešit konflikty, pouze lidé jsou schopni porozumět a učinit nezbytné inteligentní volby. Poté, co Lojza ručně vyřešil překrývající se změny (možná po diskuzi o konfliktu s Lízou!), může bezpečně uložit sloučený soubor zpět do úložiště.

Model Kopírovat-Upravit-Sloučit může znít trochu chaoticky, ale v praxi je to velmi lehké. Uživatelé mohou pracovat paralelně, nikdo nečeká na někoho jiného. Když se pracuje na stejném souboru, nakonec se ukáže, že většina jejich souběžných změn se vůbec nepřekrývá; konflikty se dějí vzácně. A doba potřebná k řešení těchto konfliktů, je mnohem menší, než doba ztracená při zamknutí systému.

Na konec všechno záleží na jednom zásadním faktoru: komunikace mezi uživateli. Když uživatelé špatně komunikují, jak syntaktické tak sémantické konflikty se zvyšují. Žádný systém nemůže nutit uživatele komunikovat dokonale a žádný systém nemůže odhalit sémantické konflikty. Takže nemá smysl ukolébat se falešným slibem, že zamykání bude nějak předcházet konfliktům; v praxi, zamykání brzdí produktivitu víc, než cokoliv jiného.

Je jedna častá situace, kdy model Uzamknout-Změnit-Odemknout je lepší a to, když máte neslučitelné soubory. Například, pokud vaše úložiště obsahuje některé grafické obrázky a dva lidé změní obrázek ve stejnou chvíli, neexistuje žádný způsob, jak tyto změny mohou být sloučeny. Buď Lojza nebo Líza ztratí svoji změnu.

Co Subversion dělá?

Subversion používá model Kopírovat-Upravit-Sloučit jako výchozí nastavení a v mnoha případech to je vše, co budete potřebovat. Nicméně, od verze 1.2, Subversion také podporuje zamykání souborů, takže pokud máte neslučitelné soubory, nebo pokud jste prostě nuceni do zásady řízení zamykání, Subversion Vám stále bude poskytovat funkce, které potřebujete.

Subversion v akci

Pracovní kopie

Už jste četli o pracovních kopiích, nyní budeme demonstrovat, jak je klient Subversion vytváří a využívá.

Pracovní kopie Subversion je obyčejný stromový adresářů na vašem lokálním systému, který obsahuje sadu souborů. Tyto soubory můžete upravovat, jak chcete a pokud jsou to soubory zdrojového kódu, je můžete z nich i kompilovat svůj program obvyklým způsobem. Vaše pracovní kopie je Váš vlastní soukromý pracovní prostor: Subversion nikdy nevčlení změny jiných lidí, ani nezpřístupní Vaše vlastní změny ostatním, pokud si to výslovně nepřejete.

Poté, co jste provedli nějaké změny v souborech v pracovní kopii a ověřili jste, že správně fungují, Subversion vám poskytuje příkazy jak zveřejnit Vaše změny pro ostatní, kteří s Vámi spolupracují na tomto projektu (zápisem do úložiště). Pokud ostatní zveřejní své vlastní změny, Subversion Vám nabízí příkazy sloučit tyto změny do Vašeho pracovního adresáře (čtením z úložiště).

Pracovní kopie také obsahuje i některé další soubory, vytvořené a udržované Subversion, na pomoc při provádění těchto příkazů. Zejména vaše pracovní kopie obsahuje podadresář .svn, také známý jako správcovský adresář pracovní kopie. Soubory ve správcovském adresáři pomáhají Subversion poznat, které soubory obsahují nezveřejněné změny a které jsou zastaralé s ohledem na práci ostatních. Před verzí 1.7 Subversion měl správcovské podadresáře .svn v každém adresáři s verzí ve vaší pracovní kopii. Subversion 1.7 má úplně jiný přístup a každá pracovní kopie má pouze jeden správcovský podadresář, která je přímo podřazen kořeni této pracovní kopie.

Typické úložiště Subversion často obsahuje soubory (nebo zdrojový kód) několika projektů; obvykle, každý projekt je podadresář v souborovém systému stromu úložiště. V tomto uspořádání bude pracovní kopie uživatele obvykle odpovídat konkrétnímu podstromu úložiště.

Předpokládejme například, že máte úložiště, které obsahuje dva softwarové projekty.

Obrázek 2.6. Systém souborů úložíště

Systém souborů úložíště

Jinými slovy, kořen adresáře úložiště má dva podadresáře: barva a kalkul.

Chcete-li získat pracovní kopii, nejdříve musíte získat některý podstrom úložiště. (Termín získat může znít, že má něco společného s blokováním nebo vyhrazením prostředků, ale to není pravda; jednoduše vytvoří vaši soukromou kopii projektu)

Předpokládejme, že provedete změny v tlacitko.c. Vzhledem k tomu, že adresář .svn si pamatuje datum změny souboru a původní obsah, Subversion může zjistit, že jste změnili soubor. Nicméně, Subversion změny veřejnými, dokud mu to výslovně neřeknete. Akt publikování změn je více znám jako odevzdání (nebo zapsání) změn do úložiště.

Chcete-li publikovat své změny pro ostatní, můžete použít Subversion příkaz odevzdat.

Nyní Vaše změny v tlacitko.c byly odevzdány do úložiště, pokud jiný uživatel získá pracovní kopii /Kalkul, uvidí Vaše změny v nejnovější verzi souboru.

Předpokládejme, že máte spolupracovníka, Lízu, která získala pracovní kopii /Kalkul ve stejnou dobu jako Vy. Když jste odevzdal své změny tlacitko.c, Lízina pracovní kopie je ponechána beze změny; Subversion mění pracovní kopie pouze na žádost uživatele.

Aby její projekt byl aktuální, Líza může požádat Subversion o aktualizaci její pracovní kopie, pomocí Subversion příkazu aktualizovat. To zahrne Vaše změny do její pracovní kopie, jakož i změny všech ostatních, které byly odevzdány, od doby získání kopie.

Všimněte si, že Líza nemusela určit, které soubory se mají aktualizovat; Subversion používá informace v adresáři .svn a další informace v úložišti, k určení, které soubory je třeba aktualizovat.

URL úložiště

K úložištím Subversion lze přistupovat pomocí mnoha různých metod - na lokálním disku, nebo prostřednictvím různých síťových protokolů. Avšak umístění úložiště je vždy URL. Schéma URL udává přístupové metody:

Tabulka 2.1. Přístupová URL úložiště

SchémaMetoda přístupu
file:// Přímý přístup k úložišti na místním nebo síťovém disku.
http:// Přístup přes protokol WebDAV na Apache server se Subversion
https:// Stejné jako http://, ale s šifrovaním pomocí SSL.
svn:// Neověřený přístup TCP/IP přes vlastní protokol na server svnserve.
svn+ssh:// ověřený, zašifrované přístup TCP/IP přes vlastní protokol na server svnserve.

Většinou, Subversion URL používají standardní syntaxi, která umožňuje jména serverů a čísla portů být zadána jako součást adresy URL. Přístupová metoda file:// se běžně používá pro lokální přístup, ačkoli může být použita s cestami UNC k síťovému hostiteli. URL tedy nabývá formy file://hostname/path/to/repos. Pro místní počítač, je část URL hostname buď vynechána, nebo je localhost. Z tohoto důvodu místní cesty mají obvykle tři lomítka, file:///path/to/repos.

Rovněž uživatelé protokolu file:// na platformách Windows, budou muset používat neoficiálně standardní syntaxi pro přístup k úložištím, které jsou na stejném počítači, ale na jiném disku, než je klientova aktuální pracovní jednotka. Jeden ze dvou následujících syntaxí cesty URL bude fungovat, když X je jednotka, na které je úložiště:

file:///X:/cesta/k/úložišti
...
file:///X|/cesta/k/úložišti
...
      

Všimněte si, že URL používá obyčejná lomítka, i když nativní (ne URL) forma cesty v systému Windows používá zpětná lomítka.

Do FSFS úložiště můžete vstupovat přes sdílenou sít, ale toto není z různých důvodů doporučeno:

  • Každému uživateli dáváte přímý přístup k zápisu do úložiště, takže jakýkoliv uživatel může omylem vymazat celé úložiště nebo nějakým jiným způsobem ho poškodit.

  • Ne všechny síťové protokoly pro sdílení souborů podporují zamykání, které Subversion potřebuje. Jednoho dne můžete zjistit, že vše úložiště bylo nenápadně poškozeno.

  • Oprávnění přístupu musíte nastavit hned. SAMBA je v tomto ohledu zvláště nepříjemná.

  • Pokud jedna osoba nainstaluje novou verzi klienta, která aktualizuje formát úložiště, pak všichni ostatní nebudou mí přístup k úložišti, dokud také nenainstalují novou verzi klienta.

Revize

Operace odevzdání může publikovat změny v libovolném počtu souborů a adresářů jako jediný atomový přenos. Ve vaší pracovní kopie, můžete měnit obsah souborů, vytvořit, smazat, přejmenovávat a kopírovat soubory a adresáře a pak odevzdat kompletní sadu změn jako celek.

V úložišti, každé odevzdání se považuje za atomové transakce: buď dojde ke všem změnám v odevzdání, nebo nedojde k žádné. Subversion zachovává tuto atomizaci navzdory pádům programu, zhroucení systému, problémy se sítí, a činnostmi jiných uživatelů.

Pokaždé, když úložiště přijme odevzdání, vytvoří se nový stav stromu souborového systému, který se nazývá revize. Ke každé revizi je přiřazeno unikátní přirozené číslo, o jedno větší než předchozí revize. Výchozí revize z čerstvě vytvořeného úložiště je očíslována nulou a neobsahuje nic kromě kořenového adresáře.

Hezký způsob, jak si úložiště představit je jako řadu stromů. Představte si řadu revizi čísel od 0, rozprostírající se zleva doprava. Každá revize má číslo stromu souborového systému visící pod ním a každý strom je snímek úložiště jak vypadalo po každém odevzdání.

Obrázek 2.7. Úložiště

Úložiště

Je důležité si uvědomit, že pracovní kopie ne vždy odpovídají každé jednotlivé revizi v úložišti; mohou obsahovat soubory z několika různých revizí. Například předpokládejme, že byste získali pracovní kopii z úložiště, jejíž nejnovější revize je 4:

kalkul/Makefile:4
celecislo.c:4
tlacitko.c:4
      

V současné době tento pracovní adresář, přesně odpovídá revizi 4 v úložišti. Předpokládejme však, že uděláte změnu v tlacitko.c a odevzdáte tuto změnu. Za předpokladu, že k žádným jiným odevzdáním nedošlo, Vaše odevzdání vytvoří 5. revizi úložiště, a vaše pracovní kopie bude nyní vypadat takto:

kalkul/Makefile:4
celecislo.c:4
tlacitko.c:5
      

Předpokládejme, že v tomto okamžiku, Líza odevzdá změnu celecislo.c a tím vytvoří revizi 6. Pokud používáte svn update, aby Vaše pracovní kopie zůstala aktuální, pak to bude vypadat takto:

kalkul/Makefile:6
celecislo.c:6
tlacitko.c:6
      

Líziny změny souboru celecislo.c se objeví ve Vaší pracovní kopii a Vaše změny stále budou přítomny v tlacitko.c. V tomto příkladu, text Makefile je totožný s revizí 4, 5 a 6, ale Subversion označí vaší pracovní kopii Makefile s revizí 6 aby naznačil, že je stále aktuální. Takže poté, co provedete čistou aktualizaci v nejvyšší části Vaší pracovní kopie, bude zpravidla odpovídat přesně jedné revizi v úložišti.

Jak Pracovní Kopie Sledují Úložiště

U každého souboru v pracovním adresáři, Subversion zaznamenává dva základní druhy informací ve správní oblasti .Svn/ :

  • na jaké revizi je Váš pracovní soubor založen (toto se nazývá pracovní revize souboru) a

  • časové razítko ukazující, kdy byla místní kopie naposledy aktualizovány úložištěm.

Vzhledem k této informaci, mluvením s úložištěm, může Subversion říct, ve kterém z těchto čtyř stavů se pracovní soubor nachází:

Beze změny a aktuální

Soubor je v pracovním adresáři nezměněn a žádné změny tohoto souboru nebyly odevzdány do úložiště od jeho pracovní verze. Odevzdáním tohoto souboru nebo aktualizací tohoto souboru se nic nestane.

Změněn lokálně a aktuální

Soubor byl změněn v pracovním adresáři a žádné změny do tohoto souboru nebyly odevzdány do úložiště od jeho počáteční revize. Existují lokální změny, které nebyly odevzdány do úložiště, tudíž odevzdání souboru úspěšně publikuje Vaše změny a aktualizace tohoto souboru nic neprovede.

Beze změny a zastaralé

Soubor nebyl změněn v pracovním adresáři, ale byl změněn v úložišti. Soubor by měl být časem aktualizován, aby byl aktuální s veřejnou revizí. Odevzdání tohoto souboru nic neprovede a aktualizace tohoto souboru zahrne poslední změny do Vaší pracovní kopie.

Změněn lokálně a zastaralý

Soubor byl změněn a to jak v pracovním adresáři tak i v úložišti. Odevzdání tohoto souboru bude hlásit chybu zastaralé. Soubor by měl být nejdříve aktualizován; Příkaz aktualizovat se pokusí sloučit veřejné změny se změnami místními. Pokud Subversion nemůže dokončit sloučení přijatelným způsobem automaticky, je ponecháno na uživateli, aby vyřešil konflikt.

Shrnutí

V této kapitole jsme probrali řadu základních pojmů Subversion:

  • Zavedli jsme pojmy centrálního úložiště, pracovní kopie klienta a pole stromových revizí úložiště.

  • Viděli jsme několik jednoduchých příkladů, jak dva spolupracovníci můžou využit Subversion pro publikaci a příjmutí změn, jeden od druhého, pomocí modelu 'Kopírovat-Upravit-Sloučit'.

  • Mluvili jsme o způsobu, jakým Subversion sleduje a spravuje informace v pracovní kopii.

Kapitola 3. Úložiště

Ať používáte jakýkoli protokol pro přístup do úložiště, vždy musíte alespoň jedno vytvořit. To může být provedeno buď z příkazové řádky klienta Subversion nebo z TortoiseSVN.

Pokud jste ještě nevytvořili úložiště Subversion, teď je na to vhodná doba.

Vytváření úložiště

Vytvoření úložiště z příkazového řádku klienta

  1. Vytvořte si prázdnou složku s názvem SVN (např. D:\SVN\), která bude použita jako kořen pro všechny Vaše úložiště.

  2. Vytvořte si další složku MojeNoveUloziste v D:\SVN\.

  3. Spusťte příkazový řádek (nebo DOS-Box), přejděte na D:\SVN\ a napište

    svnadmin create --fs-type fsfs MojeNoveUloziste
    

Vaše nové úložiště se teď nachází v D:\SVN\MojeNoveUloziste.

Vytváření úložiště pomocí TortoiseSVN

Obrázek 3.1. Menu TortoiseSVN pro složky bez verzí

Menu TortoiseSVN pro složky bez verzí

  1. Otevřete Průzkumníka Windows

  2. Vytvořte si novou složku a pojmenujte ji např. SVNUloziste

  3. Klikněte pravým tlačítkem myši na nově vytvořený adresář a vyberte TortoiseSVN Zde Vytvořit Úložiště.

    Úložiště je poté vytvořeno uvnitř nového adresáře. Neupravujte tyto soubory sami!. Pokud se zobrazí jakékoliv chyby, ujistěte se, že adresář je prázdný a není chráněn proti zápisu.

    Budete také dotázáni, zda chcete vytvořit adresářovou strukturu v rámci úložiště. Více informací o volbách uspořádání naleznete v „Rozložení úložiště“.

    TortoiseSVN nastaví vlastní ikonu adresáře, při vytvoření úložiště, takže můžete určit místní úložiště snadněji. Pokud vytvoříte úložiště pomocí příkazového řádku oficiálního klienta, tato ikona není adresáři přiřazena.

Tip

Dále také nedoporučujeme používat pro přístup file://, kromě pro lokální účely testování. Použití serveru je mnohem bezpečnější a spolehlivější pro všechny, až na práci jednoho vývojáře.

Lokální Přístup do Úložiště

Pro přístup do lokálního úložiště je třeba znát cestu k tomuto adresáři. Jen nezapomeňte, že Subversion očekává, že všechny cesty úložiště budou ve formě file:///C:/SVNUloziste/. Nezapomeňte všude používat lomítka.

Pro přístup k úložišti nacházející se ve sdílené síti, buď můžete použít mapování disku, nebo UNC cestu. Cesty UNC mají formu file://JmenoServeru/cesta/do/uloziste/. Všimněte si, že se zde používájí pouze 2 přední lomítka.

Před SVN 1.2, musely být UNC cesty uvedeny v nepřehledné podobě file:///ile://\JmenoServeru/cesta/do/uloziste/. Tato forma je stále podporována, ale nedoporučuje se.

Přístup k úložišti na síťovém disku

I když je teoreticky možné mít FSFS úložiště v sdílené síti a více uživatelů by k němu přistupovalo pomocí protokolu file://, toto rozhodně není doporučeno. Ve skutečnosti silně odrazujeme a takové použití z různých důvodů nepodporujeme:

  • Zaprvé: Každému uživateli dáváte přímý přístup k zápisu do úložiště, takže jakýkoliv uživatel může omylem vymazat celé úložiště nebo nějakým jiným způsobem ho poškodit.

  • Za druhé, ne všechny síťové protokoly pro sdílení souborů podporují zamykání, které Subversion potřebuje, takže Vaše úložiště může být poškozeno. Nemusí se to stát hned, ale jednoho dne se dva uživatelé pokusí o přístup do úložiště ve stejnou dobu.

  • Zatřetí: oprávnění k souboru musí být na to nastavena. Možná Vám to projde na sdíleném disku Windows, ale SAMBA je obzvlášť obtížná.

  • Pokud jedna osoba nainstaluje novou verzi klienta, která aktualizuje formát úložiště, pak všichni ostatní nebudou mí přístup k úložišti, dokud také nenainstalují novou verzi klienta.

Přístup přes file:// je určen pouze pro místní přístup jednoho uživatele a to zejména pro účely testování a ladění. Když chcete sdílet úložiště je opravdu třeba zřídit si řádný server a vůbec to není tak složité, jak si možná myslíte. Přečtěte si „Přístup do úložiště“ pro pokyny k výběru a nastavení serveru.

Rozložení úložiště

Než začnete importovat data do úložiště, měli byste se nejprve zamyslet nad tím, jak chcete Vaše data uspořádat. Pokud použijete jeden z doporučených rozložení, budete to později mít mnohem jednodušší.

Existují některé standardní, doporučené způsoby, jak organizovat úložiště. Většina lidí si vytvořit kmen adresář, který obsahuje hlavní linku vývoje, adresář větve obsahuje kopie větví a adresář značky obsahuje kopie značek. Pokud úložiště obsahuje pouze jeden projekt, pak se často vytváří tyto adresáře nejvyšší úrovně:

/kmen
/větve
/značky
      

Protože je toto uspořádání běžně používáno, bude i Vám při vytváření nového úložiště pomocí TortoiseSVN tato struktura nabídnuta.

Pokud úložiště obsahuje více projektů, lidé často indexují jejich rozložení podle větve:

/kmen/barva
/trunk/kalkul 
/větve/barva 
/větve/kalkul
/značky/barva
/značky/kalkul
      

... nebo podle projektu:

/barva/kmen
/barva/větve
/barva/značky
/kalkul/kmen
/kalkul/větve
/kalkul/značky
      

Indexování podle projektu má smysl v případě, že projekty spolu úzce nesouvisí a každý z nich je získáván individuálně. Pro související projekty, kde se budete chtít podívat na všechny projekty najednou, nebo tam, kde projekty jsou všechny spojeny v jediném distribučním balíčku, je často lepší indexovat podle větví. Tímto způsobem máte jen jeden kmen pro získání a vztahy mezi podprojekty jsou lépe viditelné.

Pokud přijmete model nejvyšších úrovní /kmen /značky /větve, nemusíme říkat, že musíte zkopírovat celý kmen pro každou větev a značku, a v některých ohledech tato struktura nabízí největší flexibilitu.

Pro nesouvisející projekty byste raději měli použít samostatné úložiště. Když se odevzdají změny, je to číslo revize celého úložiště, které se mění a ne číslo revize projektu. Mít 2 nesouvisející projekty sdílející 1 úložiště může znamenat velké rozdíly v číslech revizí. Projekty Subversion a TortoiseSVN se objevují na stejné adrese hostitele, ale jsou to zcela oddělená úložiště umožňující nezávislý vývoj a žádný zmatek nad čísly sestavení.

Samozřejmě, máte možnost tyto běžná rozložení ignorovat. Můžete si vytvořit jakýkoli druh variace, co bude pro Vás a Váš tým nejlepší. Pamatujte si, že to, co si zvolíte, není trvalý závazek. Svoje úložiště si můžete uspořádat kdykoliv. Vzhledem k tomu, že větve a značky jsou obyčejné adresáře, může je TortoiseSVN přesunout nebo přejmenovat jak budete chtít.

Přechod z jednoho rozložení na druhé je jen otázkou vydání řady přesunů na straně serveru; Pokud se vám nelíbí, jak jsou věci v úložišti organizovány, stačí jen zahýbat kolem adresáři.

Takže pokud jste si ještě nevytvořili základní adresářovou strukturu uvnitř úložiště, měli byste to hned udělat. Existují dva způsoby, jak toho dosáhnout. Pokud si chcete jednoduše vytvořit strukturu /kmen /značky /větve, můžete použít prohlížeč úložiště pro vytvoření těchto tří adresářů (ve třech samostatných odevzdání). Pokud chcete vytvořit hlubší hierarchii, pak je jednodušší si nejdříve vytvořit adresářovou strukturu na disku a pak importovat v jediném odevzdání takto:

  1. vytvořte si novou prázdnou složku na Vašem pevném disku

  2. vytvořte si požadovanou strukturu adresáře nejvyšší úrovně v daném adresáři - nevkládejte, prozatím, do něho žádné soubory!

  3. importujte tuto strukturu do úložiště pomocí kliknutím pravého tlačítka myši na adresář, který obsahuje tuto adresářovou strukturu a vyberte TortoiseSVN Imporovat... V dialogovém okně import zadejte URL adresu svého úložiště a klepněte na tlačítko OK. Toto importuje Váš dočasný adresář do kořene úložiště k vytvoření základního rozvržení úložiště.

Nezapomeňte, že název adresáře, který importujete, se nezobrazí v úložišti, pouze jeho obsah. Například, vytvořte následující strukturu adresáře:

C:\Temp\Novy\kmen
C:\Temp\Novy\vetve
C:\Temp\Novy\štítky

Import C:\Temp\Novy do kořene úložiště, pak bude vypadat takto:

/kmen
/větve 
/značky 

Záloha Úložiště

Ať používáte jakýkoliv typ úložiště, je životně důležité, abyste prováděli pravidelné zálohy a pak je ověřovali. Pokud server selže, máte možnost přístupu k poslední verzi souborů, ale bez úložiště všechna vaše historie je navždy ztracena.

Nejjednodušší způsob (ale nedoporučuje se) jak zkopírovat adresář úložiště na záložní médium. Nicméně, musíte si být naprosto jisti, že žádný proces, nepřistupuje k datům. V této souvislosti přístup znamená jakýkoliv přístup. Pokud je na Vaše úložiště vstoupeno kdykoli v průběhu kopírování, (webový prohlížeč zůstane otevřený, WebSVN, atd.), záloha bude bezcenná.

Doporučená metoda je spustit

svnadmin hotcopy cesta/k/úložišti cesta/k/záloze

k vytvoření kopie Vašeho úložiště bezpečným způsobem. Pak zálohujte kopii.

The svnadmin tool is installed automatically when you install the Subversion command line client. The easiest way to get this is to check the option to include the command line tools when installing TortoiseSVN, but if you prefer you can download the latest version of command line tools directly from the Subversion website.

Hákové skripty na straně serveru

Hákový skript je program spouštěný při nějaké událostí úložiště, jako je například vytvoření nové revize nebo změna vlastnosti bez verze. Každému háku je předán dostatek informací, pro zjištění, co je to za událost, jaké jsou cíle() operace a uživatelské jméno osoby, která událost spustila. V závislosti na výstupu háku či návratovém kódu, může hákový program pokračovat v činnosti, zastavit nebo ji nějakým způsobem pozastavit. Více informací naleznete v kapitole týkající se Hákové skripty v knize Subversion pro podrobnosti o hácích, které jsou zavedeny.

Tyto hákové skripty jsou spouštěny serverem, který je hostitelem úložiště. TortoiseSVN také umožňuje nastavit hákové skripty na straně klienta, které jsou spouštěny lokálně během určitých události. Navštivte „Hákové Skripty na Straně Klienta“ pro více informací.

Příklady hákových skriptů lze nalézt v adresáři hooks v úložišti. Tyto ukázkové skripty jsou vhodné pro Unix/Linux servery, ale je třeba je změnit, pokud máte Windows server. Hák může být dávkový soubor nebo spustitelný soubor. Příklad níže ukazuje dávkový soubor, který by mohl být použit k před-provedením-změn-vlastností revizí.

rem Pouze zprávy záznamu mohou být změněny.
id "%4" == "svn:log" exit 0
echo Vlastnost '%4' nemůže být změněna >&2
exit 1

Nezapomeňte, že všechno poslané do stdout je zahozeno. Pokud chcete, aby se zpráva zobrazila v dialogovém okně Odmítnutí odevzdání je třeba ji poslat na stderr. V dávkovém souboru je tohoto dosaženo použitím >&2.

Anulace háků

Pokud hákový skript Vaši změnu odmítl, pak je jeho rozhodnutí konečné. Ale můžete vytvořit anulující mechanismus v samotném skriptu s použitím techniky Kouzelného Slova. Pokud skript chce odmítnout operaci, nejprve prohledá zprávu záznamu pro speciální výraz a to buď fixní výraz nebo třeba název souboru s předponou. Pokud zjistí magické slovo, pak umožní pokračovat v odevzdání. Pokud výraz není nalezen, pak může zablokovat odevzdání s hlášením Neřekl jste kouzelné slovo. :-)

Odkazy pro Získání

Pokud chcete, aby Vaše úložiště Subversion bylo k dispozici ostatním, asi byste měli vložit na něj odkaz z Vašich internetových stránek. Jeden způsob, jak toto lépe zpřístupnit je začlenit odkaz pro získání ostatním uživatelům TortoiseSVN.

Při instalaci TortoiseSVN se zaregistruje nový protokol tsvn:. Když uživatel TortoiseSVN na takový odkaz klikne, automaticky se otevře dialogové okno získání s URL adresou úložiště již vyplněnou.

Chcete-li zahrnout takovéto spojení do Vaší vlastní html stránky, budete muset přidat kód, který vypadá nějak takto:

<a href="tsvn:http://projekt.doména.org/svn/kmen"></a>

Of course it would look even better if you included a suitable picture. You can use the TortoiseSVN logo or you can provide your own image.

<a href="tsvn:http://projekt.doména.org/svn/kmen">
  <img src=TortoiseCheckout.png>
</a>

Můžete také odkázat na konkrétní revizi, například

<a href="tsvn:http://projekt.doména.org/svn/kmen?100"></a>

Přístup do úložiště

Chcete-li používat TortoiseSVN (nebo jakéhokoliv jiného klienta Subversion), budete potřebovat místo, kde se budou nacházet Vaše úložiště. Můžete buď Vaše úložiště mít uložená lokálně a přistupovat k nim pomocí protokolu file:// nebo je můžete umístit na server a přistupovat k nim pomocí protokolů http:// nebo svn://. Tyto dva serverové protokoly mohou být také zašifrovány. Používáte k tomu https:// nebo svn+ssh://, nebo můžete použít svn:// a SASL.

If you are using a public hosting service such as SourceForge or your server has already been setup by someone else then there is nothing else you need to do. Move along to 4 – „Příručka Každodenního Použití.

Pokud nemáte server a budete pracovat sami, nebo právě hodnotíte Subversion a TortoiseSVN v soukromí, pak místní úložiště je pro Vás asi nejlepší volba. Stačí vytvořit úložiště na vlastním PC, jak bylo předtím popsáno v 3 – „Úložiště. Můžete přeskočit zbytek této kapitoly a hned jít na 4 – „Příručka Každodenního Použití abyste zjistili, jak úložiště začít používat.

Pokud jste uvažovali o vytvoření úložiště ve sdílené síti s více uživateli, pořádně se zamyslete. Přečtěte si „Přístup k úložišti na síťovém disku“ abyste zjistili, proč si myslíme, že je to špatný nápad. Nastavit server není tak těžké, jak se zdá a poskytne Vám lepší spolehlivost a asi i rychlost.

Podrobnější informace o možnostech serveru Subversion a jak si vybrat nejlepší architekturu pro vaši situaci můžete nalézt v knize Subversion v Nastavení serveru.

In the early days of Subversion, setting up a server required a good understanding of server configuration and in previous versions of this manual we included detailed descriptions of how to set up a server. Since then things have become easier as there are now several pre-packaged server installers available which guide you through the setup and configuration process. These links are for some of the installers we know about:

You can always find the latest links on the Subversion website.

You can find further How To guides on the TortoiseSVN website.

Kapitola 4. Příručka Každodenního Použití

Obsah

Obecné Funkce
Překryv Ikon
Kontextové menu
Táhnout a Pustit
Běžné zkratky
Ověření
Maximalizace oken
Import dat do úložiště
Import
Import na místě
Mimořádné soubory
Získání Pracovní Kopie
Hloubka Získání
Odevzdání Vašich změn do úložiště
Dialogové okno Odevzdání
Seznam Změn
Odevzdat pouze části souborů
Vyjmout položky ze seznamu odevzdání
Zprávy Záznamu Odevzdání
Průběh Odevzdání
Aktualizovat pracovní kopii změnami od ostatních
Řešení Konfliktů
Konflikty souboru
Konflikt Vlastností
Konflikty Stromu
Získávání informací o stavu
Překryv Ikon
Podrobný Stav
Místní a Vzdálený Stav
Zobrazení rozdílů
Seznam Změn
Shelving
Dialogové Okno Záznamu Revizí
Vyvolání Dialogového Okna Záznamu Revizí
Činnosti Záznamu Revizí
Získání dodatečných informací
Zobrazení více zpráv záznamu
Aktuální Revize Pracovní Kopie
Funkce Sledování Sloučení
Změna Zpráv Záznamu a Autora
Filtrování Zpráv Záznamu
Statistické informace
Offline režim
Obnovení zobrazení
Zobrazit Rozdíly
Rozdíly souboru
Možnosti konců řádků a mezer
Porovnávání adresářů
Porovnávání snímků pomocí TortoiseIDiff
Porovnávání Dokumentů Office
Externí Nástroje Porovnání/Sloučení
Přidání nových souborů a adresářů
Kopírování/Přesun/Přejmenování Souborů a Adresářů
Ignorování Souborů a Adresářů
Shoda vzorů v seznamech k Ignorování
Mazání, Přesunutí a Přejmenování
Smazání souborů a adresářů
Přesouvání souborů a adresářů
Řešení konfliktů v názvech souborů
Oprava Přejmenování Souborů
Smazání souborů bez verze
Vrátit změny zpět
Vyčistit
Nastavení projektu
Subversion Vlastnosti
TortoiseSVN Vlastnosti projektu
Editoři vlastností
Externí položky
Externí adresáře
Externí soubory
Vytváření externích pomocí přetáhnutí
Větvení/Značkování
Vytvoření Větve nebo Značky
Jiné způsoby, jak vytvořit větev nebo značku
Získat nebo Překlopit...
Sloučení
Sloučení Rozsahu Revizí
Sloučení Dvou Různých Stromů
Nastavení Sloučení
Zhodnocení výsledků sloučení
Sledování Sloučení
Handling Conflicts after Merge
Údržba Větve Funkcí
Zamykání
Jak Zamykání v Subversion Funguje
Získání zámku
Uvolnění zámku
Kontrola stavu zámku
Převést Neuzamčené Soubory na Pouze Pro Čtení
Hákové Skripty Uzamknutí
Vytváření a Používání Záplat
Vytvoření Záplatového souboru
Použití Záplatového souboru
Kdo Změnil Který Řádek?
Obviňovat ze souborů
Obvinit Rozdíly
Průzkumník Úložiště
Grafy Revizí
Uzly Grafu Revizí
Změna zobrazení
Použití Grafu
Obnovení zobrazení
Čištění stromů
Export Pracovní Kopie Subversion
Smazání pracovní kopie ze správy verzí
Přemístit pracovní kopii
Integrace se Systémy pro Sledování Chyb/Problémů
Přidání Čísel Problémů do zpráv záznamu
Získávání informací od Systému pro Sledování Problémů
Integrace s Internetovými Prohlížeči úložiště
Nastavení TortoiseSVN
Obecná nastavení
Nastavení Grafu Revizí
Nastavení Překryvu Ikon
Nastavení sítě
Nastavení Externího Programu
Nastavení Uložených dat
Uchovávání záznamu
Hákové Skripty na Straně Klienta
Nastavení TortoiseBlame
Nastavení TortoiseUDiff
Export Nastavení TSVN
Pokročilá nastavení
Poslední krok

Tento dokument popisuje každodenní používání klienta TortoiseSVN. Toto není úvod do systémů pro správu verzí ani úvod do Subversion (SVN). Je to spíš místo, kam se můžete obrátit, když přibližně víte, co chcete dělat, ale nemůžete si vzpomenout, jak na to.

Pokud potřebujete úvod do správy verzí pomocí Subversion, pak doporučujeme přečíst si tyto fantastické knihy: Správa verzí pomocí Subversion.

Tento dokument je také nedokončená práce, stejně jako jsou TortoiseSVN a Subversion. Pokud najdete nějaké chyby, nahlašte je, prosím, do mailing listu, abychom mohli aktualizovat dokumentaci. Některé snímky obrazovek v průvodci každodenním použitím (PKP) nemusí odrážet současný stav softwaru. Prosím, odpusťte nám. Na TortoiseSVN pracujeme v našem volném čase.

Abyste získali co nejvíce z průvodce každodenním použitím:

  • Měli byste již mít nainstalován TortoiseSVN.

  • Měli byste být seznámeni se systémy pro správu verzí.

  • Měli byste znát základy Subversion.

  • Měli byste mít nastaven server a/nebo mít přístup k úložišti Subversion.

Obecné Funkce

Tato část popisuje některé funkce TortoiseSVN, které platí téměř pro všechno v manuálu. Všimněte si, že mnoho z těchto funkcí se zobrazí pouze v pracovní kopii Subversion.

Překryv Ikon

Obrázek 4.1. Průzkumník ukazující překryv ikon

Průzkumník ukazující překryv ikon


Jedním z nejviditelnějších funkcí TortoiseSVN je překryv ikon, které se objevují na soubory v pracovní kopii. Tyto ikony Vám na první pohled ukážou, které z Vašich soubory byly změněny. Prohlédněte si „Překryv Ikon“ abyste zjistili, co různé překryvy znamenají.

Kontextové menu

Obrázek 4.2. Kontextové menu pro adresář pod správou verzí

Kontextové menu pro adresář pod správou verzí


Všechny příkazy TortoiseSVN jsou volány z kontextového menu Průzkumníka Windows. Většina z nich je hned viditelná, když kliknete pravým tlačítkem myši na soubor nebo adresář. Příkazy, které jsou k dispozici, závisí na tom, zda soubor nebo adresář, nebo jeho nadřazený adresář je pod správou verzí, nebo ne. Můžete si také zobrazit menu TortoiseSVN jako součást menu Soubor v Průzkumníku.

Tip

Některé příkazy, které jsou velmi zřídka používané jsou k dispozici pouze v rozšířeném kontextovém menu. Pro zobrazení rozšířeného kontextového menu, podržte klávesu Shift, když kliknete pravým tlačítkem myši.

V některých případech se může zobrazit několik položek TortoiseSVN. To není chyba!

Obrázek 4.3. Menu Soubor v Průzkumníku pro zkratky v adresáři s verzí

Menu Soubor v Průzkumníku pro zkratky v adresáři s verzí


Tento příklad je pro zkratky bez verze uvnitř adresáře s verzí, a v menu Soubor v Průzkumníku existují tři položky TortoiseSVN. Jedna z nich je pro adresář, jedna pro tuto zkratku a třetí pro objekt, na který zkratka ukazuje. Abychom Vám pomohli se mezi nimi vyznat, ikony mají v pravém dolním rohu ukazatel, který zobrazí, zda položka v menu je pro soubor, adresář, zkratku, nebo pro více vybraných položek.

Táhnout a Pustit

Obrázek 4.4. Menu táhnutí pravým tlačítkem pro adresář pod správou verzí

Menu táhnutí pravým tlačítkem pro adresář pod správou verzí


Ostatní příkazy jsou dostupné jako ovladače táhnutí, když soubory nebo adresáře táhnete pravým tlačítkem do nového umístění uvnitř pracovní kopie, nebo když soubor nebo adresář bez verze táhnete pravým tlačítkem do adresáře, který je pod správou verzí.

Běžné zkratky

Některé běžné operace ve Windows mají známé klávesové zkratky, ale nejsou uvedeny na tlačítkách, ani v menu. Pokud nemůžete přijít na to, jak udělat něco zřejmého, jako obnovit zobrazení, podívejte se sem.

F1

To je samozřejmě nápověda

F5

Obnoví současné zobrazení. Toto je možná jeden z nejužitečnějších jedno klávesových příkazů. Například ... V Průzkumníku obnoví překryv ikon ve Vaši pracovní kopii. V dialogovém oknu odevzdání znovu prohlédne pracovní kopii, jestli tam je něco, co může být odevzdáno. V dialogovém okně Záznamu Revizí znovu zkontaktuje úložiště ke kontrole posledních změn.

Ctrl-A

Vybrat vše. Toto může být použito, pokud dostanete chybovou zprávu a chcete ji celou zkopírovat a vložit do e-mailu. Použijte Ctrl-A pro výběr chybové zprávy a poté ...

Ctrl-C

Zkopírujte zvolený text. V případě že žádný text není vybrán, ale místo toho např. položka seznam u nebo textový rámeček, pak je jejich obsah zkopírován do schránky.

Ověření

Pokud je úložiště, do kterého se pokoušíte vstoupit chráněno heslem, zobrazí se dialogové okno ověření.

Obrázek 4.5. Dialogové okno Ověření

Dialogové okno Ověření


Zadejte své uživatelské jméno a heslo. Zaškrtávací políčko uloží Vaše pověření ve výchozím adresáři Subversion: %APPDATA%\Subversion\auth ve třech podadresářích:

  • svn.simple obsahuje pověření pro základní ověření (uživatelské jméno/heslo). Nezapomeňte, že hesla jsou uložena pomocí WinCrypt API, ne ve formátu prostého textu.

  • svn.ssl.server obsahuje SSL certifikáty serveru.

  • svn.username obsahuje pověření pro ověření pouze uživatelským jménem (není třeba heslo).

Pokud chcete vymazat uchovaná ověření, můžete tak učinit ze stránky dialogového okna Uložená data v nastavení TortoiseSVN. Tlačítko Vyčistit vše vymaže všechny uložené údaje ověření všech úložišť. Na druhou stranu tlačítko Vyčistit... zobrazí dialogové okno, kde můžete zvolit která uložená data chcete smazat. Viz „Nastavení Uložených dat“.

Někteří lidé chtějí mít své údaje ověření vymazány, když se odhlásí ze systému Windows, nebo při vypnutí. Můžete toho dosáhnout použitím skriptu ke smazání adresáře %APPDATA%\Subversion\auth např.

@Echo off
rmdir /s /q "%APPDATA%\Subversion\auth"

Návod, jak tyto skripty nainstalovat naleznete na http://www.windows-help-central.com/windows-shutdown-script.html.

Pro více informací o tom, jak nastavit server pro ověřování a řízení přístupu si prohlédněte „Přístup do úložiště“.

Maximalizace oken

Mnoho dialogových oken TortoiseSVN zobrazuje spousty informací, ale je často lepší raději maximalizovat pouze výšku, nebo šířku, než maximalizovat na celou obrazovku. Pro Vaše pohodlí, existují pro tuto funkci zkratky v tlačítku Maximalizovat. Použijte prostřední tlačítko myši pro vertikální maximalizaci a pravé tlačítko myši pro horizontální maximalizaci.

Import dat do úložiště

Import

Pokud importujete do již existujícího úložiště, které už některé projekty obsahuje, pak struktura úložiště bude již sestavená. Pokud importujete data do nového úložiště, stojí za to udělat si čas a popřemýšlet o tom, jak budou organizována. Přečtěte si „Rozložení úložiště“ pro další tipy.

Tato část popisuje Subversion příkaz Importovat, který je určen pro import hierarchie adresáře do úložiště najednou. I když funguje, má několik nedostatků:

  • Neexistuje žádný způsob, jak vybrat k zahrnutí soubory a adresáře, kromě použití globálního nastavení ignorování.

  • Importovaný adresář se nestane pracovní kopií. Musíte ji získat, pro zkopírování souborů zpět ze serveru.

  • Je snadné v úložišti importovat do špatné úrovně adresáře.

Z těchto důvodů vůbec nedoporučujeme používat příkaz Importovat, ale spíše postupovat podle metody dvou kroků popsané v

Před importem projektu do úložiště, byste měli:

  1. Odstraňte všechny soubory, které nejsou potřebné k sestavení projektu (dočasné soubory, soubory, které jsou vytvořeny kompilátorem např. *.obj, zkompilované spustitelné soubory, ...)

  2. Zorganizujte soubory v adresářích a podadresářích. Ačkoli je možné soubory přejmenovat/přesunout později je výrazně doporučováno, abyste si struktuře Vašeho projektu ujasnili před importem!

Nyní vyberte nejvyšší úroveň struktury adresáře projektu v programu Průzkumník Windows a kliknutím pravým tlačítkem myši otevřete kontextové menu. Vyberte příkaz TortoiseSVN Importovat... , který vyvolá dialogové okno:

Obrázek 4.6. Dialogové okno importu

Dialogové okno importu


V tomto dialogovém oknu je třeba zadat URL adresu místa v úložišti, kam chcete Váš projekt importovat. Je velmi důležité si uvědomit, že místní adresář, který importujete, se nezobrazí úložišti, pouze jeho obsah. Například pokud máte strukturu:

C:\Projekty\Widget\zdroj
C:\Projekty\Widget\dok
C:\Projekty\Widget\obrázky

a importujete C:\Projekty\Widget do http://mojedomena.cz/svn/kmen pak můžete být překvapeni, když zjistíte, že vaše podadresáře byly umístěny rovnou do kmene a ne do podadresáře Widget. Musíte zadat podadresáře jako součást URL, http://mojedomena.cz/svn/kmen/Widget-X . Nezapomeňte, že příkaz Importovat automaticky vytvoří v úložišti podadresáře, pokud neexistují.

Zpráva Importu se použije jako zpráva záznamu.

Ve výchozím nastavení, soubory a adresáře, které se shodují se vzory globálního ignorování, nejsou importovány. Chcete-li toto chování potlačit, můžete zaškrtnout políčko Zahrnout ignorované soubory. Pro více informací o formátech nastavení globálního ignorování navštivte „Obecná nastavení“.

Jakmile stisknete tlačítko OK TortoiseSVN importuje celý adresář stromu, včetně všech souborů do úložiště. Projekt je nyní uložen v úložišti pod správou verzí. Uvědomte si, prosím, že importované adresáře NEJSOU pod správou verzí! Pro získání pracovní kopie pod správou verzí musíte Získat verzi, kterou jste právě importovali. Nebo čtěte dále, abyste zjistili, jak importovat adresáře na místě.

Import na místě

Za předpokladu, že již máte úložiště a chcete přidat do něho novou strukturu adresáře, postupujte podle následujících kroků:

  1. Použitím Průzkumníka úložiště vytvořte nový adresář projektu přímo v úložišti. Pokud používáte jeden ze standardních uspořádání, budete toto pravděpodobně chtít vytvořit jako podadresář kmene spíše než v úložišti kořenového adresáře. Průzkumník úložiště zobrazuje strukturu úložiště stejně jako průzkumník Windows, takže můžete vidět, jak jsou věci uspořádány.

  2. Získejte nový adresář, který bude o úroveň výše než adresář, který chcete importovat. Budete varování, že místní adresář není prázdný. Toto varování ignorujte. Nyní máte adresář nejvyšší úrovně s verzí s obsahem bez verze.

  3. Použitím TortoiseSVN Přidat... na tento adresář s verzí přidejte některý nebo všechen jeho obsah. Můžete přidat a odstranit soubory, nastavit vlastnosti adresáře svn:ignore a provádět další změny, které potřebujete.

  4. Odevzdejte nejvyšší úroveň adresáře a máte nový strom s verzí a místní pracovní kopii, vytvořenou z Vašeho stávajícího adresáře.

Mimořádné soubory

Někdy musíte mít soubor pod kontrolou verzí, který obsahuje konkrétní údaje uživatele. To znamená, že máte soubor, který každý vývojář/uživatel potřebuje změnit, aby vyhovovaly jeho/jejím místním nastavení. Ale verzování takového souboru, je obtížné, protože každý uživatel by pokaždé odevzdal jeho/její změny do úložiště.

V těchto případech doporučujeme použít šablonový soubor. Vytvoříte soubor, který obsahuje všechna data Vaši vývojáři budou potřebovat, dát tento soubor pod kontrolu verzí a nechat vývojáře získat tento soubor. Potom, každý vývojář si vytvoří kopii tohoto souboru a přejmenuje si ji. Poté změna kopie už není problémem.

Jako příklad se můžete podívat na sestavovací skript TortoiseSVN. Volá souboru jménem default.build.user, který v úložišti neexistuje. Pouze soubor default.build.user.tmpl. default.build.user.tmpl je šablonový soubor a každý vývojář si musí vytvořit kopii tohoto souboru a přejmenovat ho na default.build.user. Uvnitř tohoto souboru jsme přidali komentáře, takže uživatelé mohou vidět, které řádky budou muset upravit a měnit v závislosti na jejich místním nastavení, aby všechno fungovalo.

Aby toto uživatele nerušilo, přidali jsme také soubor default.build.user do seznamu k ignorování v jeho nadřazené složce, tedy jsme nastavili Subversion vlastnost svn:ignore, aby zahrnovala tento název souboru. Takto se v každém odevzdání neukáže jako bez verze.

Získání Pracovní Kopie

Chcete-li získat pracovní kopii, musíte ji nejdříve z úložiště získat.

Vyberte adresář v Průzkumníku Windows, kde chcete umístit Vaši pracovní kopie. Klikněte pravým tlačítkem myši pro zobrazení kontextového menu a vyberte volbu TortoiseSVNZískat..., která zobrazí následující dialogové okno:

Obrázek 4.7. Dialogové okno Získání

Dialogové okno Získání


Pokud zadáte název adresáře, který ještě neexistuje, pak bude s tímto názvem vytvořen.

Důležité

Ve výchozím nastavení se položka Získání nenachází v podnabídce TortoiseSVN, ale je zobrazena v nejvyšší nabídce Průzkumníka. Příkazy TortoiseSVn, které nejsou v podnabídce mají předponu SVN: SVN Získat...

Hloubka Získání

Můžete si vybrat hloubku, kterou chcete získat, což Vám umožňuje určit hloubku rekurze v podřízených adresářích. Pokud chcete pouze několik částí velkého stromu, můžete získat nejvyšší úroveň adresáře a pak aktualizovat vybrané adresáře rekurzivně.

Plně rekurzivní

Získat celý strom, včetně všechny podřízených adresářů a podadresářů.

Bezprostředně podřazené prvky, včetně adresářů

Získat zadaný adresář včetně všech souborů a podřazených složek, ale podřízené adresáře nezaplňovat.

Pouze podřízené soubory

Získat zadaný adresář včetně všech souborů, kromě podřízených adresářů.

Pouze tuto položku

Získat pouze tento adresář. Nezaplňovat ho soubory nebo podřízenými adresáři.

Pracovní kopie

Ponechat hloubku uvedenou v pracovní kopii. Tato volba není použita v dialogovém okně získání, ale je výchozí ve všech ostatních dialozích, které mají nastavení hloubky.

Vynechat

Používá se při snížení hloubky pracovní kopii poté, co adresář byl již naplněn. Tato volba je dostupná pouze v dialogovém oknu Aktualizovat na revizi.

Chcete-li snadno vybrat pouze položky, které chcete získat a donutit výslednou pracovní kopii, aby si ponechala pouze tyto položky, klikněte na tlačítko Vyberte položky.... Otevře se nové dialogové okno, kde si můžete zkontrolovat všechny položky, které chcete ve Vaší pracovní kopii a zrušit položky, které nechcete. Výsledná pracovní kopie je pak známá jako řídké získání. Aktualizace této pracovní kopii nestáhne chybějící soubory a adresáře, ale pouze aktualizuje to, co již máte ve Vaší pracovní kopii.

Pokud získáte řídkou pracovní kopii (tj. výběrem něčeho jiného než plně rekurzivní jako hloubku získání), můžete snadno přidat či smazat další podadresáře pomocí následujících metod.

Řídká aktualizace pomocí Aktualizovat na revizi

Klikněte pravým tlačítkem myši na získaný adresář a pak použijte volbu TortoiseSVNAktualizovat na revizi a vyberte Zvolit položky.... To otevře stejné dialogové okno jako při původním získání a umožňuje Vám označit či odznačit položky, které budou zahrnuty v získání. Tato metoda je velmi pružná, ale může být pomalá, protože je každá položka aktualizována samostatně.

Řídká aktualizace pomocí Průzkumníka úložiště

Klikněte pravým tlačítkem myši na získaný adresář a pak použijte volbu TortoiseSVNPrůzkumník úložiště k zobrazení Průzkumníka úložiště. Najděte podadresář, který chcete přidat do vaší pracovní kopie a pak použijte volbu Kontextové menuAktualizovat položku na revizi....

Řídká aktualizace pomocí Kontroly změn

V dialogovém okně Zjistit Změny, nejprve stiskněte shift a klikněte na tlačítko Zkontrolovat Úložiště. Dialogové okno zobrazí všechny soubory a adresáře, které jsou v úložišti, ale nemáte je získané jako vzdáleně přidané. Klikněte pravým tlačítkem myši na adresář(e), které byste chtěli přidat do Vaší pracovní kopie, pak zvolte Kontextové menu Aktualizovat.

Tato funkce je velmi užitečná, když chcete získat části velkého stromu, ale chcete mít pohodlí aktualizace jediné pracovní kopie. Předpokládejme, že máte velký strom, který má podadresáře Projekt01Projekt99 a chcete získat pouze Projekt03, Projekt25 a Projekt76/PodProj. Postupujte podle těchto kroků:

  1. Získejte nadřazený adresář s hloubkou Jen tato položka Nyní máte prázdný adresář nejvyšší úrovně.

  2. Vyberte novou složku a zvolte TortoiseSVNPrůzkumník úložiště k zobrazení obsahu úložiště.

  3. Pravým tlačítkem myši klikněte na Projekt03 a Kontextové menu Aktualizovat položku na revizi... . Ponechejte výchozí nastavení a klikněte na OK. Nyní máte tento adresář zcela zaplněn.

    Opakujte stejný postup pro Projekt25.

  4. Přejděte na Projekt76/PodProj a udělejte to samé. Uvědomte si ale, že adresář Projekt76 nemá žádný obsah, kromě PodProj, který je zcela zaplněn. Subversion pro Vás vytvořil mezilehlé složky jejich bez naplnění.

Změna hloubky pracovní kopie

Jakmile získáte pracovní kopii u určité hloubce, můžete později hloubku změnit, abyste získali více nebo méně obsahu s použitím Kontextové menuAktualizovat položku na revizi.... V tomto dialogovém okně, nezapomeňte zaškrtnout políčko Nastavit hloubku jako výchozí.

Používání staršího serveru

Servery před verzí 1.5 nerozumí žádosti o hloubku pracovní kopie, proto také nemohou vždy efektivně řešit žádosti. Příkaz bude i nadále fungovat, ale starší server může poslat všechna data, takže klient musí odfiltrovat to, co není potřeba, což může znamenat hodně síťového provozu. Pokud je to možné, měli byste upgradovat server nejméně na verzi 1.5.

Pokud projekt obsahuje odkazy na externí projekty, které nechcete získat ve stejnou dobu, použijte políčko Vynechat externí.

Důležité

Pokud Vynechat externí je zaškrtnuto, nebo pokud chcete zvýšit hodnotu hloubky, budete muset provést aktualizaci Vaší pracovní kopie pomocí TortoiseSVNAktualizovat na revizi... místo TortoiseSVNAktualizace. Standardní aktualizace bude obsahovat všechny externí a zachová stávající hloubku.

Doporučuje se, abyste získali pouze část kmen adresářového stromu, nebo nižší. Zadáte-li hlavní cestu k adresáři stromu v URL pak byste mohli skončit s plným pevným diskem, protože budete mít kopie celého stromu úložiště, včetně všech větví a značek Vašeho projektu!

Exportování

Někdy možná budete chtít vytvořit lokální kopii, bez těch všech .svn adresářů, např. vytvořit tarem zazipovaný archiv Vašeho zdroje. Přečtěte si „Export Pracovní Kopie Subversion“ abyste zjistili, jak na to.

Odevzdání Vašich změn do úložiště

Odeslání změn provedených ve Vaši pracovní kopii se nazývá odevzdání změn. Ale dříve, než je můžete odevzdat, se musíte ujistit, že Vaše pracovní kopie je aktuální. Můžete použít buď přímo TortoiseSVN Aktualizovat, nebo můžete nejdříve použít TortoiseSVNZkontrolovat změny k zjištění, které soubory se lokálně nebo na serveru změnily.

Dialogové okno Odevzdání

Pokud vaše pracovní kopie je aktuální a neexistují žádné konflikty, jste připraveni odevzdat změny. Vyberte jakýkoli soubor a/nebo adresáře, které chcete odevzdat, pak TortoiseSVNOdevzdat....

Obrázek 4.8. Dialogové okno odevzdání

Dialogové okno odevzdání


Dialogové okno odevzdání Vám ukáže každý změněný soubor, včetně přidaných, smazaných a bez verze. Pokud si nepřejete, aby změněný soubor byl odevzdán, stačí zrušit zaškrtnutí tohoto souboru. Pokud chcete zařadit soubor bez verze, stačí zaškrtnout tento soubor k přidání do odevzdání.

Pro rychlé zaškrtnutí/odškrtnutí typů souborů, jako všechny soubory s verzí/nezměněné soubory, klikněte na položky odkazů umístěné hned nad seznamem zobrazených položek.

Pro informace o barvení a překryvech položek podle jejich stavu, si prosím prohlédněte „Místní a Vzdálený Stav“.

Položky, které byly překlopeny do jiné cesty úložiště, jsou rovněž uvedeny pomocí značky (s). Mohli jste něco překlopit při práci na větvi a zapomněli jste překlopit zpět do kmene. Toto je Váš varovný signál!

Odevzdat soubory nebo adresáře?

Když odevzdáváte soubory, dialogové okno odevzdání zobrazuje pouze soubory, které jste vybrali. Když odevzdáváte adresáře, dialogové okno odevzdání vybere změněné soubory automaticky. Pokud zapomenete na nový soubor, který jste vytvořili, odevzdáním adresáře se stejně najde. Odevzdání adresáře neznamená, že každý soubor je označen jako změněný, jen to ulehčuje Váš život tím, že za Vás udělá více práce.

Mnoho souborů bez verze v dialogovém oknu odevzdání

Pokud si myslíte, že dialogové okno odevzdání zobrazuje příliš mnoho souborů bez verze (např. vytvořené kompilátorem nebo záloha editoru), existuje několik způsobů, jak toto vyřešit. Můžete:

  • přidejte soubor (nebo zástupný znak výjimky) do seznamu souborů k vynechání na stránce nastavení. To bude mít vliv na každou pracovní kopii, kterou máte.

  • přidat soubor do seznamu svn:ignore pomocí TortoiseSVNPřidat do seznamu k ignorování To bude mít vliv pouze na adresář, na kterém nastavíte vlastnost svn:ignore. Použitím Dialogového okna Vlastností SVN, můžete měnit vlastnost svn:ignore pro adresář.

  • přidat soubor do seznamu svn:global-ignores pomocí TortoiseSVNPřidat do seznamu k ignorování (rekurzivně) To bude mít vliv na adresář, ve kterém nastavíte vlastnost svn:ignore a jeho podadresáře.

Přečtěte si „Ignorování Souborů a Adresářů“ pro více informací.

Dvojitým kliknutím na každý modifikovaný soubor v dialogovém oknu odevzdání zahájí externí nástroj rozdílů pro zobrazení změn. Kontextové menu Vám dá více možností, jak je na obrázku znázorněno. Můžete také přetáhnout soubory odtud do jiné aplikace, jako je textový editor nebo IDE.

Můžete označit nebo odznačit výběr položky klepnutím na zaškrtávací políčko vlevo od položky. Pro adresáře můžete využít Shift-vybrat, aby se akce stala rekurzivní.

Sloupce zobrazené v dolní části panelu jsou přizpůsobitelné. Pokud klikněte pravým tlačítkem myši na jakékoli záhlaví sloupce, zobrazí se kontextové menu, umožňující vybrat, které sloupce se mají zobrazit. Můžete také změnit šířku sloupce pomocí tažení rukojeti, která se objeví při pohybu myši nad hranici sloupce. Tyto úpravy jsou zachovány, takže i příště uvidíte stejné položky.

Ve výchozím nastavení, když odevzdáváte změny, všechny zámky, které na souborech držíte, jsou automaticky uvolněny po úspěšném odevzdání. Pokud si chcete tyto zámky ponechat, ujistěte se, že volba Udržet zámky je zaškrtnuta. Výchozí stav tohoto políčka je převzat z možnosti no_unlock v konfiguračním souboru Subversion. Pro více informací jak upravit konfigurační soubor Subversion navštivte „Obecná nastavení“.

Varování při odevzdávání do značky

Většinou se změny odevzdávají do kmene, nebo do větve, ale do značek ne. Značka je totiž považována za pevnou a neměla by se měnit.

Pokud se odevzdávání provádí na označkovanou URL, bude nejdříve zobrazeno potvrzovací dialogové okno pro ujištění, že tato činnost je opravdu žádána, protože většinou jsou takováto odevzdání prováděna omylem.

Tato kontrola ale funguje pouze v úložištích mající jednu z doporučených struktur, což znamená, že používá názvy trunk, branches a tags pro označení tří hlavních oblastí. V případě že rozdělení je jiné, může být zjišťování sekcí tag/branch/trunk (také nazýváno jako klasifikační vzory), nastaveno v dialogovém okně nastavení: „Nastavení Grafu Revizí“

Táhnout a Pustit

Můžete přetáhnout soubory do dialogového okna odevzdání odjinud, pokud byly pracovní kopie získány ze stejného úložiště. Například můžete mít obrovskou pracovní kopii s několika otevřenými okny Průzkumníka k zobrazení vzdálených adresářů hierarchie. Pokud chcete, aby se zabránilo odevzdání nejvyšší úrovně adresáře (se zdlouhavým procházením adresářů ke kontrole změn) můžete otevřít dialogové okno odevzdání jednoho adresáře a přetáhnout do položky z ostatních oken, k zahrnutí do stejného atomového odevzdání.

Můžete přetáhnout soubory bez verze, které jsou v pracovní kopii do dialogového okna odevzdání a budou automaticky SVN přidány.

Přetažením ze seznamu v dolní části dialogovém oknu odevzdání do editačního pole zprávy záznamu se do editačního pole vloží cesta jako prostý text. To je užitečné, chcete-li psát zprávy záznamu odevzdání, které obsahují cesty, které jsou odevzdáním ovlivněny.

Oprava Přejmenovaných Externích

Někdy jsou soubory mimo Subversion přejmenovány a pak se objeví v seznamu souborů jako chybějící a soubor bez verze. Aby nedošlo ke ztrátě historie je třeba Subversion o připojení oznámit. Stačí jen vybrat starý (chybějící) a nový (bez verze) název (chybí) a použit Kontextové menuOpravit přesun pro spárování těchto souborů jako přejmenování.

Oprava Vnější Kopie

Pokud jste udělali kopii souboru, ale zapomněli jste pro to použít příkaz Subversion, můžete opravit kopii, tak že nový soubor neztratí svoji historii. Stačí jen vybrat jak starý název (normální nebo upravený) a nový název (bez verze) a použit Kontextové menuOpravit kopii pro spárování obou souborů jako kopie.

Seznam Změn

Dialogové okno odevzdání podporuje funkce seznamu změn Subversion, které pomáhají seskupit dohromady související soubory. Vice informací o této funkci naleznete v „Seznam Změn“.

Odevzdat pouze části souborů

Někdy chcete odevzdat pouze části změn, které jste v souboru provedli. Takové situace většinou nastanou, když na něčem pracujete, ale pak je třeba odevzdat důležitou opravu a tato oprava se nachází ve stejném souboru, na kterém pracujete.

Klikněte pravým tlačítkem na soubor a použijte Kontextovou nabídkuObnovit po odevzdání. Toto vytvoří kopii souboru tak jak je. Pak můžete soubor upravit, např. v textovém editoru a vrátit všechny změny, které nechcete odevzdat. Po uložení těchto změn můžete soubor odevzdat.

Použití TortoiseMerge

Pokud k úpravě souboru použijete TortoiseMerge, můžete ho měnit normálním způsobem, nebo označit všechny změny, které chcete zahrnout. Klikněte pravým tlačítkem myši na změněný blok a zvolte Kontextovou nabídkuOznačit tuto změnu pro její zahrnutí. Pak pravým tlačítkem myši zvolte Kontextovou nabídkuPonechat pouze označené změny a tím pravý panel zobrazí pouze ty změny, které jste předtím označili a vráti změny, které označeny nejsou.

Po odevzdání je kopie souboru automaticky obnovena a máte zpět soubor se všemi změnami, které nebyly odevzdány.

Vyjmout položky ze seznamu odevzdání

Někdy máte soubory v adresářích, které se často mění, ale které nechcete odevzdat. Někdy to znamená chybu v sestavovacím procesu - Proč mají ty soubory verzi? Máte používat šablonové soubory? Ale občas je to nevyhnutelné. Klasický důvodem je, že vaše IDE změní časové razítko v souboru projektu pokaždé, když sestavuje. Soubor projektu musí mít verzí, protože zahrnuje všechny nastavení sestavení, ale nemusí být odevzdán jen proto, že časové razítko se změnilo.

Chcete-li pomoci v nepříjemných případech jako je tento, vyhradili jsme seznam změn s názvem ignore-on-commit. Jakýkoli soubor přidaný do tohoto seznamu bude automaticky odškrtnut v dialogovém oknu odevzdání. Stále můžete pořád odevzdávat změny, ale musíte je v dialogovém oknu odevzdání zvolit ručně.

Zprávy Záznamu Odevzdání

Ujistěte se, že zadáte zprávu záznamu, která popisuje změny, které odevzdáváte. To vám pomůže zjistit, co se stalo a kdy, pokud později budete procházet zprávy záznamu projektu. Zpráva může být tak dlouhá nebo krátká jak chcete; mnoho projektů má návody, co by mělo být zahrnuto, jaký jazyk používat a někdy dokonce i přísný formát.

Můžete použít jednoduché formátování zprávy záznamu pomocí dohody podobné té používané v rámci e-mailu. Chcete-li použít styl na text, použijte *text* pro tučné, _text_ pro podtržení a ^text^ pro kurzívu.

Obrázek 4.9. Kontrola pravopisu v Dialogovém oknu Odevzdání

Kontrola pravopisu v Dialogovém oknu Odevzdání


TortoiseSVN obsahuje kontrolu pravopisu, které Vám pomůže opravit Vaše zprávy záznamu. Bude upozorňovat na jakékoliv pravopisné chyby. Použijte kontextové menu pro zobrazení navrhovaných oprav. Samozřejmě neví každý technický termín, který Vy znáte, takže pravopisně správná slova se někdy zobrazí jako chyby. Ale nebojte se. Stačí je jen přidat do Vašeho osobního slovníku pomocí kontextového menu.

The log message window also includes a filename and function auto-completion facility. This uses regular expressions to extract class and function names from the (text) files you are committing, as well as the filenames themselves. If a word you are typing matches anything in the list (after you have typed at least 3 characters, or pressed Ctrl+Space), a drop-down appears allowing you to select the full name. The regular expressions supplied with TortoiseSVN are held in the TortoiseSVN installation bin folder. You can also define your own regexes and store them in %APPDATA%\TortoiseSVN\autolist.txt. Of course your private autolist will not be overwritten when you update your installation of TortoiseSVN. If you are unfamiliar with regular expressions, take a look at the introduction at https://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/.

Vytvořit správný regulární výraz může být obtížné, proto existuje dialogové okno Test, který Vám může pomoci sestrojit vhodný výraz. Umožňuje totiž zadat výraz a potom zadat názvy souborů k otestování. Spustíte ho z příkazového řádku pomocí příkazu TortoiseProc.exe/command:autotexttest.

Dialogové okno zpráv záznamu má také funkci útržku. Tyto útržky jsou zobrazeny v rozbalovacím seznamu automatického dokončení, jakmile zadáte zkratku útržku, vyberete ho ze seznamu, což pak povede ke vložení celého textu útržku. Útržky dodávané s TortoiseSVN jsou uchovávány ve složce bin v instalaci TortoiseSVN. Můžete si také vytvořit vlastní útržky a uložit je v %APPDATA%\TortoiseSVN\snippet.txt. # je znak komentáře. Nové řádky lze vložit maskováním takto: \n a \r. Pro vložení obráceného lomítka použijte toto maskování: \\.

Můžete znovu použít dříve zadanou zprávu záznamu. Stačí kliknout na Poslední zprávy k zobrazení seznam několika posledních zpráv, které jste zadali pro tuto pracovní kopii. Počet uložených zpráv lze přizpůsobit v dialogovém okně nastavení TortoiseSVN.

Můžete vymazat všechny uložené zprávy odevzdání ze stránky Uložená data v nastavení TortoiseSVN, nebo můžete jednotlivé zprávy vymazat v rámci dialogového okna Poslední zprávy s použitím klávesy Delete.

Pokud chcete zahrnout zkontrolované cesty ve své zprávě záznamu, můžete použít příkaz Kontextové menu Vložit seznam souborů v kontrole úprav.

Dalším způsobem, jak vložit cesty do zpráv záznamů je jednoduše přetáhnout soubory ze seznamu souborů na kontrolu úprav.

Vlastnosti Mimořádného Adresáře

Existuje několik speciálních vlastností adresáře, které mohou být použity k poskytnutí větší kontroly nad formátováním zpráv záznamu odevzdání a jazyk používaný modulem kontroly pravopisu. Přečtěte si „Nastavení projektu“ pro další informace.

Integrace s Nástroji Hledání Chyb

Pokud jste aktivovali systém pro sledování chyb, můžete nastavit jeden nebo více chyb v textovém poli ID chyby / Č. problému:. Vícero chyb by mělo být odděleno čárkou. Případně, pokud používáte podporu regulárních výrazů ve sledování chyb, stačí přidat Váš odkaz na chybu jako součást zpráv záznamu. Více se dozvíte na „Integrace se Systémy pro Sledování Chyb/Problémů“ .

Průběh Odevzdání

Po stisknutí tlačítka OK se objeví dialogové okno zobrazující průběh odevzdání.

Obrázek 4.10. Dialogové okno průběhu zobrazující probíhající odevzdání

Dialogové okno průběhu zobrazující probíhající odevzdání


Dialogové okno průběhu používá barevné kódování pro zvýraznění různých činností odevzdání

Modrá

Odevzdání změny.

Fialová

Odevzdání nové položky.

Tmavě červená

Odevzdání vymazání nebo nahrazení.

Černá

Všechny ostatní položky.

Toto je výchozí barevné schéma, ale můžete si ho přizpůsobit pomocí dialogového okna nastavení. Přečtěte si „Nastavení Barev TortoiseSVN“ pro více informací.

Aktualizovat pracovní kopii změnami od ostatních

Obrázek 4.11. Dialogové okno průběhu zobrazující dokončení aktualizace

Dialogové okno průběhu zobrazující dokončení aktualizace


Měli byste pravidelně zajistit, že změny provedené ostatními jsou začleněny do Vaší místní pracovní kopie. Proces získávání změn ze serveru do Vaší místní kopie je známý jako aktualizace. Aktualizace může být provedena pro jednotlivé soubory, sadu vybraných souborů, nebo rekurzivně na celou hierarchii adresáře. Chcete-li aktualizovat, vyberte soubory a / nebo adresáře, které chcete, klikněte pravým tlačítkem myši a vyberte TortoiseSVNAktualizovat v kontextovém menu Průzkumníka. Objeví se okno zobrazující průběh aktualizace, jak postupuje. Změny provedené ostatními budou sloučeny do Vašich souborů. Veškeré změny, aktualizovaných souborů, které jste provedli jsou zachovány. Úložiště není aktualizací ovlivněno.

Dialogové okno průběhu používá barevné kódování pro zvýraznění různých činností aktualizace

Fialová

Do Vaší pracovní kopie byla přidána nová položka.

Tmavě červená

Nadbytečná položka byla smazána z pracovní kopie, nebo byla nahrazena chybějící položka ve Vaší pracovní kopii.

Zelená

Změny z úložiště byly úspěšně sloučeny se změnami místními.

Jasně červená

Změny z úložiště byly sloučeny se změnami místními. Vznikly konflikty, které je třeba vyřešit.

Černá

Nezměněné položky ve Vaší pracovní kopii byly aktualizovány novější verzí z úložiště.

Toto je výchozí barevné schéma, ale můžete si ho přizpůsobit pomocí dialogového okna nastavení. Přečtěte si „Nastavení Barev TortoiseSVN“ pro více informací.

Pokud máte při aktualizaci jakékoli konflikty (to se může stát, když ostatní změnili stejné řádky ve stejném souboru jako Vy a tyto změny si neodpovídají), pak tyto konflikty mají v dialogovém oknu červenou barvu. Můžete dvojklikem na tyto řádky spustit externí nástroj sloučení pro vyřešení konfliktů.

Když je aktualizace dokončena, dialogové okno průběhu udává přehled o počtu aktualizovaných, přidaných, odstraněných, konfliktních, atd. položek pod seznamem souborů. Tyto souhrnné informace lze zkopírovat do schránky pomocí Ctrl+C.

Standardní příkaz Aktualizovat nemá žádné možnosti a pouze aktualizuje pracovní kopii na revizi HEAD z úložiště, což je nejčastější případ použití. Pokud chcete větší kontrolu nad procesem aktualizace, můžete použít TortoiseSVNAktualizovat na revizi.... To vám umožní aktualizovat pracovní kopii na konkrétní revizi, ne pouze na poslední. Předpokládejme, že vaše pracovní kopie je v revizi 100, ale chcete, aby odrážela stav, který měla v revizi 50 - pak jednoduše aktualizujte na revizi 50.

Ve stejném dialogovém okně můžete také vybrat hloubku, ve které se má stávající adresář aktualizovat. Použité pojmy jsou popsány v

Aby bylo snadnější zahrnout, nebo vyloučit určité položky z odevzdání, klikněte na tlačítko Vybrat položky.... Otevře se nové dialogové okno, kde můžete zkontrolovat všechny položky, které chcete ve Vaší pracovní kopii a odškrtnout všechny položky, které nechcete.

Můžete také zvolit, zda chcete v aktualizaci ignorovat všechny vnější projekty (tj. projekty, odkazující pomocí svn:externals).

Výstraha

Pokud aktualizujete soubor nebo adresář na určitou revizi, neměli byste provádět v těchto souborech změny. Získáte chybové hlášení zastaralé při pokusu o jejich odevzdání! Pokud chcete vrátit zpět změny v souboru a začít znovu od dřívější revize, můžete se vrátit zpět k předchozí revizi z dialogového okna záznamu revize. Podívejte se na „Vrátit zpět revize v úložišti“ pro další instrukce a alternativní metody.

Aktualizovat na revizi... někdy může být užitečná pro zobrazení, jak Váš projekt vypadal v nějakém dřívějším bodu své historie. Ale obvykle aktualizace jednotlivých souborů starší revizí není dobrý nápad, protože to zanechá Vaši pracovní kopii v nekonzistentním stavu. Pokud soubor, který chcete aktualizovat, změnil jméno, můžete dokonce zjistit, že tento soubor prostě zmizí z Vaší pracovní kopie, protože žádný soubor s daným názvem v dřívější revizi neexistoval. Měli byste také vzít na vědomí, že položka se zobrazí s normálním zeleným překryvem, takže je k nerozeznání od souborů, které jsou aktuální.

Chcete-li jenom místní kopii staré verze souboru, je lepší použít příkaz Kontextové menuUložit revizi do... z dialogového okna záznamu pro tento soubor.

Vícero Souborů/Adresářů

Pokud vyberete více souborů a adresářů v Průzkumníku a poté zvolíte Aktualizovat, všechny tyto soubory/adresáře jsou aktualizovány jeden po druhém. TortoiseSVN se ujistí, že všechny soubory/adresáře, které jsou ze stejného úložiště, jsou aktualizovány na přesně stejnou revizi! I když mezi těmito aktualizacemi došlo k dalšímu odevzdání.

Řešení Konfliktů

Jednou za čas, dostanete konflikt, když při aktualizaci/sloučení souborů z úložiště, nebo při překlopení Vaší pracovní kopie na jinou adresu URL. Jsou dva druhy konfliktů:

konflikty souboru

Konflikt souboru nastane, pokud dva (nebo více) vývojářů změní stejné řádky v souboru.

konflikty stromu

Konflikt stromu nastane, když vývojář přesune/přejmenuje/vymaže nějaký soubor nebo adresář, který jiný vývojář buď také přesunul/přejmenoval/ smazat, nebo právě upravil.

Konflikty souboru

Konflikt souboru nastane, když dva nebo více vývojářů změní stejné řádky v souboru. Protože Subversion neví nic o Vašem projektu, ponechá řešení konfliktů na vývojářích. Konfliktní oblast je v textovém souboru označena takto:

 
<<<<<<< název souboru
vaše změny
=======
   kód sloučený z úložiště
>>>>>>> revize

Také, pro každý soubor v konfliktu Subversion umístí další tři soubory ve Vašem adresáři:

filename.ext.mine

Toto je Váš soubor, jak vypadal v pracovní kopii, než jste ji aktualizovali - to je, bez značek konfliktu. Tento soubor má v něm Vaše poslední změny a nic jiného.

filename.ext.rOLDREV

Jedná se o soubor, který byl základní revizí před aktualizací Vaší pracovní kopie. To znamená, soubor, který jste získlali předtím, než jste provedli Vaše poslední úpravy.

filename.ext.rNEWREV

Jedná se o soubor, který váš klient Subversion právě obdržel ze serveru při aktualizaci Vaší pracovní kopie. Tento soubor odpovídá revizi HEAD v úložišti.

Můžete buď spustit externí nástroj sloučení / editor konfliktů s TortoiseSVNUpravit Konflikty nebo můžete použít jakýkoli jiný editor pro ruční vyřešení konfliktu. Měli byste se rozhodnout, jak má kód vypadat, udělat potřebné změny a soubor uložit. Použitím nástroje sloučení jako TortoiseMerge nebo jeden z dalších oblíbených nástrojů, je obecně ta snazší volba protože většinou soubory zobrazují v trojpanelovém zobrazení a nemusíte se starat o značky konfliktů. Pokud používáte textový editor, pak byste měli hledat řádky začínající řetězcem <<<<<<<.

Poté spusťte příkaz TortoiseSVNVyřešeno a odevzdejte Vaše změny do úložiště. Vezměte prosím na vědomí, že příkaz Vyřešeno ve skutečnosti konfliktu nevyřeší. Pouze odstraní soubory filename.ext.mine a filename.ext.r*, které Vám umožní změny odevzdat.

Máte-li konflikt ve spustitelných souborech, Subversion se nepokusí soubory sloučit. Místní soubor zůstane beze změny (přesně tak, jak jste ho naposledy změnili) a máte soubory filename.ext.r*. Pokud chcete změny zahodit a nechat si verzi z úložiště, stačí použít příkaz Vrátit. Pokud si chcete nechat Vaši verzi a přepsat verzi z úložiště, použijte příkaz Vyřešeno, pak odevzdejte svoji verzi.

Můžete použít příkaz Vyřešeno na více souborů, pokud kliknete pravým tlačítkem na nadřazený adresář a zvolíte TortoiseSVN Vyřešeno... zobrazí se dialogové okno se seznamem všech souborů v konfliktu v tomto adresáři a můžete si vybrat, které z nich označit jako vyřešené.

Konflikt Vlastností

Konflikt vlastností nastane, když dva nebo více vývojářů změní stejnou vlastnost. Tak jako s obsahem souboru, pouze vývojáři mohou konflikt vyřešit.

Pokud jedna ze změn musí vyřadit druhou, pak zvolte možnost Vyřešit použitím místní vlastnosti nebo Vyřešit pomocí vzdálené vlastnosti. Pokud změny musí být sloučeny tak poté zvolte Ručně změnit vlastnost, vyřešte jaká má být hodnota vlastnosti a označit ji jako vyřešenou.

Konflikty Stromu

Konflikt stromu nastane, když vývojář přesune/přejmenuje/vymaže nějaký soubor nebo adresář, který jiný vývojář buď také přesunul/přejmenoval/ smazal, nebo právě upravil. Existuje mnoho různých situací, které mohou vyústit v konflikt stromu a všechny z nich vyžadují různé kroky k jeho vyřešení.

Když je soubor v Subversion smazán lokálně, je také smazán z lokálního souborového systému, takže i když je součástí konfliktu stromu nemůže ukázat překrytí konfliktu a nemůžete na něj kliknout pravým tlačítkem myši, abyste ho vyřešili. Použijte dialogové okno Zkontrolovat změny místo volby Upravit konflikt.

TortoiseSVN Vám může pomoci najít správné místo ke sloučení změn, ale možná bude za potřebí další práce potřebná k vyřešení konfliktů. Pamatujte si, že po aktualizaci pracovního originálu bude vždy obsahovat revizi jednotlivých položek, tak jak byly v úložišti v době aktualizace. Pokud vrátíte změny po aktualizaci, vrátí se zpátky do stavu úložiště, ne jak byla, když jste začali provádět své vlastní místní změny.

Místní smazání, příchozí úpravy po aktualizaci

  1. Vývojář A změní Bla.c a odevzdá ho do úložiště.

  2. Vývojář B ve stejnou dobu přesune Bla.c do Alb.c v jeho pracovní kopii, nebo jednoduše smaže Bla.c nebo jeho nadřazený adresář.

Aktualizace pracovní kopie vývojáře B má za následek konflikt stromu:

  • Bla.c byl smazán z pracovní kopie, ale je označen konfliktem stromu.

  • Pokud konflikt vyplývá z přejmenování spíše než ze smazání pak Alb.c je označen jako přidaný, ale neobsahuje změny vývojáře A.

Vývojář B musí nyní rozhodnout, zda zachovat změny vývojáře A. V případě přejmenování souboru, může sloučit změny Bla.c do přejmenovaného souboru Alb.c. V případě prostého odstranění souboru nebo adresáře si může vybrat, zda si nechat položku se změnami vývojáře A a odstranění zruší. Nebo tím, že označení konfliktu jako vyřešený, aniž by něco udělal, se zbaví změn vývojáře A.

The conflict edit dialog offers to merge changes if it can find the original file of the renamed Bar.c. If there are multiple files that are possible move sources, then a button for each of these files is shown which allow you to chose the correct file.

Místní upravení, po aktualizaci příchozí smazání

  1. Vývojář A přesune Bla.c do Alb.c a odevzdá ho do úložiště.

  2. Vývojář B změní Bls.c v jeho pracovní kopii.

Nebo v případě přesunutí adresáře...

  1. Vývojář A přesune nadřazený adresář AdresářBla do AdresářAlb a odevzdá ho do úložiště.

  2. Vývojář B změní Bls.c v jeho pracovní kopii.

Aktualizace pracovní kopie vývojáře B má za následek konflikt stromu. Pro jednoduchý konflikt souboru:

  • Alb.c je přidán do pracovní kopie jako normální soubor.

  • Bla.c je označen jako přidaný (s historií) a má konflikt stromu.

Pro konflikt adresářů:

  • AdresářAlb je přidán do pracovní kopie jako normální adresář.

  • AdresářBla je označen jako přidaný (s historií) a má konflikt stromu.

    Bla.c je označen jako upravený.

Vývojář B musí nyní rozhodnout, zda souhlasit s reorganizací vývojáře A a sloučit její změny do odpovídajícího souboru v nové struktuře, nebo jednoduše vrátit změny vývojáře A a ponechat si místní soubor.

To merge her local changes with the reshuffle, Developer B must first find out to what filename the conflicted file Foo.c was renamed/moved in the repository. This can be done by using the log dialog. Then use the button which shows the correct source file to resolve the conflict.

If Developer B decides that A's changes were wrong then she must choose the Mark as resolved button in the conflict editor dialog. This marks the conflicted file/folder as resolved, but Developer A's changes need to be removed by hand. Again the log dialog helps to track down what was moved.

Místní smazání, po aktualizaci příchozí smazání

  1. Vývojář A přesune Bla.c do Alb.c a odevzdá ho do úložiště.

  2. Vývojář B přesune Bla.c na Elb.c.

Aktualizace pracovní kopie vývojáře B má za následek konflikt stromu:

  • Elb.c je označeno jako přidaný s historií.

  • Alb.c je přidán do pracovní kopie se stavem 'normální'.

  • Bla.c je označen jako smazaný a má konflikt stromu.

Pro vyřešení tohoto konfliktu, Vývojář B musí zjistit, jak byl konfliktní soubor Bla.c v úložišti přejmenován/přesunut. To lze provést pomocí dialogového okna záznamů.

Pak vývojář B musí rozhodnout, jaké nové jméno souboru Bla.c si ponechat - to od vývojáře A nebo to jeho.

Poté, co vývojář B ručně konflikt vyřešil, konfliktu stromu musí být označen jako vyřešený pomocí tlačítka v dialogovém okně editoru konfliktu.

Místní chybí, po sloučení příchozí úprava

  1. Vývojář A pracující v kmeni změní Bla.c a odevzdá ho do úložiště

  2. Vývojář B pracující na větvi přesune Bla.c do Alb.c a odevzdá ho do úložiště

Sloučení změn kmene vývojáře A do pracovní kopie větve vývojáře B vyústí v konflikt stromu:

  • Alb.c je již v pracovní kopii se stavem 'normální'.

  • Bla.c je označen jako chybějící s konfliktem stromu.

Pro vyřešení tohoto konfliktu Vývojář B musí označit soubor jako vyřešený v dialogovém okně editoru konfliktu, což ho ze seznamu konfliktu odstraní. Pak musí rozhodnout, zda zkopírovat chybějící soubor Bla.c z úložiště do pracovní kopie, zda sloučit změny Bla.c Vývojáře A do přejmenovaného Alb.c nebo zda ignorovat změny označením konfliktu za vyřešený a nedělat nic.

Nezapomeňte, že pokud zkopírujete chybějící soubor z úložiště a pak označíte konflikt jako vyřešený, Vaše kopie bude znovu odstraněna. Nejdříve musíte konflikt vyřešit.

Místní úprava, po sloučení příchozí smazání

  1. Vývojář A pracující na kmeni přesune Bla.c do Alb.c a odevzdá ho do úložiště.

  2. Vývojář B pracující na větvi změní Bla.c a odevzdá ho do úložiště.

  1. Vývojář A pracující na kmeni přesune nadřazený adresář AdresářBla do AdresářAlb a odevzdá ho do úložiště.

  2. Vývojář B pracující na větvi změní Bla.c v jeho pracovní kopii.

Sloučení změn kmene vývojáře A do pracovní kopie větve vývojáře B vyústí v konflikt stromu:

  • Alb.c je označen jako přidaný.

  • Bla.c je označen jako upravený s konfliktem stromu.

Vývojář B musí nyní rozhodnout, zda souhlasit s reorganizací vývojáře A a sloučit její změny do odpovídajícího souboru v nové struktuře, nebo jednoduše vrátit změny vývojáře A a ponechat si místní soubor.

To merge her local changes with the reshuffle, Developer B must first find out to what filename the conflicted file Foo.c was renamed/moved in the repository. This can be done by using the log dialog for the merge source. The conflict editor only shows the log for the working copy as it does not know which path was used in the merge, so you will have to find that yourself. The changes must then be merged by hand as there is currently no way to automate or even simplify this process. Once the changes have been ported across, the conflicted path is redundant and can be deleted.

If Developer B decides that A's changes were wrong then she must choose the Mark as resolved button in the conflict editor dialog. This marks the conflicted file/folder as resolved, but Developer A's changes need to be removed by hand. Again the log dialog for the merge source helps to track down what was moved.

Místní smazání, po sloučení příchozí smazání

  1. Vývojář A pracující na kmeni přesune Bla.c do Alb.c a odevzdá ho do úložiště.

  2. Vývojář B pracující na větvi přesune Bla.c do Elb.c a odevzdá ho do úložiště.

Sloučení změn kmene vývojáře A do pracovní kopie větve vývojáře B vyústí v konflikt stromu:

  • Elb.c je označen normálním (bez úprav) stavem.

  • Alb.c je označen jako přidaný s historií.

  • Bla.c je označen jako chybějící a má konfliktu stromu.

To resolve this conflict, Developer B has to find out to what filename the conflicted file Foo.c was renamed/moved in the repository. This can be done by using the log dialog for the merge source.

Pak vývojář B musí rozhodnout, jaké nové jméno souboru Bla.c si ponechat - to od vývojáře A nebo to jeho.

Poté, co vývojář B ručně konflikt vyřešil, konfliktu stromu musí být označen jako vyřešený pomocí tlačítka v dialogovém okně editoru konfliktu.

Ostatní konflikty stromu

Existují i další případy, které jsou označeny jako konflikt stromu konflikty jen proto, že konflikt zahrnuje spíše adresář než soubor. Například, pokud přidáte adresář se stejným názvem, jak do kmene, tak do větve a pak se je pokusíte sloučit dostanete konflikt stromu. Pokud chcete zachovat adresář z cíle sloučení, označit konflikt jako vyřešený. Pokud chcete použít ten ze zdroje sloučení, pak je třeba nejdříve SVN smazat ten v cíli a sloučení znovu spustit. Pokud budete potřebovat udělat něco složitějšího, pak to budete muset řešit ručně.

Získávání informací o stavu

Při práci ve Vaší pracovní kopie si často musíte pamatovat, které soubory jste změnili/přidali/ odstranili nebo přejmenovali, či dokonce, které soubory byly změněny a odevzdány ostatními.

Překryv Ikon

Obrázek 4.12. Průzkumník ukazující překryv ikon

Průzkumník ukazující překryv ikon


Nyní, když jste získali pracovní kopii z úložiště Subversion můžete vidět, jak se v Průzkumníku Windows souborům změnily ikony. To je jeden z důvodů, proč je TortoiseSVN tak populární. TortoiseSVN přidává tzv. překryvné ikony ke každé ikoně souboru, která překrývá původní ikonu. V závislosti na Subversion stav souboru je každá překryvná ikona jiná.

Čerstvě získaná pracovní kopie má jako překryv zelené zaškrtnutí. To znamená, že Subversion stav je normální.

Jakmile začnete upravovat soubor, stav se změní na změněno a překryvná ikona se pak změní na červený vykřičník. Tímto způsobem můžete snadno zjistit, které soubory byly změněny od poslední aktualizace Vaší pracovní kopie a musí být odevzdány.

Pokud dojde během aktualizace ke konfliktu, pak se ikona změní na žlutý vykřičník.

Pokud jste nastavili v souboru vlastnost svn:needs-lock, Subversion soubor zpřístupní pouze pro čtení, dokud tento soubor nezamknete. Takové soubory mají tento překryv oznamující, že nejdříve musíte soubor uzamknout, než ho můžete začít upravovat.

Pokud nad souborem držíte zámek a Subversion stav je normální, toto překrytí ikony Vám připomene, že byste měli zámek uvolnit, pokud ho nepoužíváte, aby ostatní mohli odevzdat své změny do souboru.

Tato ikona ukazuje, že některé soubory nebo adresáře v aktuálním adresáři byly naplánovány ke smazání z kontroly verzí, nebo soubor pod kontrolou verzí v adresáři chybí.

Znaménko plus Vám říká, že soubor nebo adresář byly naplánovány k přidání do kontroly verzí.

Znamínko mínus Vám napovídá, že soubor nebo adresář je ignorován pro účely kontroly verzí. Tento překryv je volitelný.

Tato ikona reprezentuje soubory a adresáře, které nejsou pod kontrolou verzí, ale nebyly ignorovány. Tento překryv je volitelný.

Ve skutečnosti, možná zjistíte, že ne všechny tyto ikony jsou ve Vašem systému používány. Je to proto, že počet překrytí povoleným systémem Windows je velmi omezený a pokud také používáte starou verzi TortoiseCVS, pak není dostatek volných míst pro překryvy. TortoiseSVN se snaží být Dobrým Občanem (TM) a omezuje své používání překryvů, aby i jiné aplikace dostali šanci.

Teď, když existuje více klientů Tortoise (TortoiseCVS, TortoiseHg, ...) se limit ikon stává opravdovým problémem. Aby se toto obešlo, projekt TortoiseSVN představil společně sdílenou sadu ikon, načtenou jako DLL, která může být používána Všemi klienty Tortoise. Zeptejte se Vašeho poskytovatele klienta, jestli toto již bylo zavedeno :-)

Pro popis toho, kterému stavu Subversion překryvy ikon odpovídají a další technické podrobnosti si přečtěte „Překryv Ikon“.

Podrobný Stav

Obrázek 4.13. Stránka vlastností v Průzkumníku, karta Subversion

Stránka vlastností v Průzkumníku, karta Subversion


Někdy budete chtít podrobnější informace o souboru/adresáři, než jen překryvem ikon. Můžete získat všechny informace, které Subversion nabízí v dialogovém okně vlastnosti v Průzkumníku. Stačí vybrat soubor nebo adresář a vyberte v kontextovém menu možnost Windows MenuVlastnosti (poznámka: toto je normální menu položky vlastnosti, který Průzkumník nabízí a ne ten v podmenu TortoiseSVN!). V dialogovém okně Vlastnosti přidal TortoiseSVN novou stránku vlastností pro soubory/adresáře pod kontrolou Subversion. Zde vidíte všechny důležité informace o vybraném souboru/adresáři.

Místní a Vzdálený Stav

Obrázek 4.14. Zjistit změny

Zjistit změny


Je často velmi užitečné vědět, které soubory jste změnili, a také soubory byly změněny od ostatních. Zde je užitečný příkaz TortoiseSVNZjistit změny. Toto dialogové okno Vám ukáže každý soubor, který se jakýmkoli způsobem v pracovní kopii změnil, jakož i všechny soubory bez verze, které můžete mít.

Pokud kliknete na Zkontrolovat Úložiště můžete se také podívat na změny v úložišti. Tímto způsobem si můžete před aktualizací zkontrolovat, jestli existuje možnost konfliktu. Můžete také aktualizovat vybrané soubory z úložiště bez aktualizace celého adresáře. Ve výchozím nastavení tlačítko Zkontrolovat Úložiště pouze přinese vzdálený stav s hloubka získání pracovní kopie. Pokud chcete zobrazit všechny soubory a adresáře v úložišti a to i těch, které jste nezískali, pak budete muset držet klávesu Shift, když klikáte na tlačítko kontrolovat Úložiště.

Dialogové okno používá barevné označení pro zvýraznění stavu.

Modrá

Lokálně změněné položky.

if unchanged files are inside a directory that's been moved, the status will show a + sign in the status column, and it will be colored in blue as well.

Fialová

Přidané položky. Položky, které byly přidány s historii mají znamínko + ve sloupci Stavu obsahu a popisek Vám ukáže, odkud byla položka zkopírována.

Tmavě červená

Smazané nebo chybějící položky.

Zelená

Položky upravené lokálně a v úložišti. Změny budou v aktualizaci sloučeny. Můžou vyvolat při aktualizaci konflikt.

Jasně červená

Položky upravené lokálně a smazány v úložišti, nebo v úložišti změněné a lokálně smazány. Tyto vyvolají konflikt při aktualizaci.

Černá

Položky nezměněné a bez verze.

Toto je výchozí barevné schéma, ale můžete si ho přizpůsobit pomocí dialogového okna nastavení. Přečtěte si „Nastavení Barev TortoiseSVN“ pro více informací.

Ikony překryvu jsou také použity k naznačení jiných stavů. Snímek obrazovky níže zobrazuje všechny možné překryvy, které jsou podle potřeby zobrazeny.

Překryvy jsou zobrazeny pro následující stavy:

  • Hloubka získání prázdný, znamená pouze samotnou položku.

  • Hloubka získání podřazené soubory, znamená pouze samotnou položku a všechny podřazené soubory bez podřazených adresářů.

  • Hloubka získání bezprostřední prvky, znamená pouze samotnou položku a všechny podřazené soubory a adresáře, ale bez podřazených z podřazených adresářů.

  • Vnořené položky, tj. pracovní kopie uvnitř pracovní kopie.

  • Externí položky, tj. všechny položky přidané pomocí vlastnosti svn:externals.

  • Položky, které jsou po odevzdání obnoveny. Viz „Odevzdat pouze části souborů“ pro podrobnosti.

  • Položky, které mají změnu vlastností, ale pouze ve vlastnosti svn:mergeinfo. Pokud je změněna jiná vlastnost, překryv nebude použit.

Položky, které byly překlopeny do jiné cesty úložiště, jsou rovněž uvedeny pomocí značky (s). Mohli jste něco překlopit při práci na větvi a zapomněli jste překlopit zpět do kmene. Toto je Váš varovný signál! Kontextové menu Vám umožňuje přepnout zpátky na normální cestu.

Z kontextového menu v dialogovém okně můžete zobrazit porovnání změn. Zkontrolujte lokální změny, které jste Vy provedli s použitím Kontextové menuPorovnat s originálem. Zkontrolujte změny, které v úložišti udělali jiní pomocí Kontextové menuZobrazit Rozdíly jako Sjednocený rozdíl.

Můžete také vrátit změny v jednotlivých souborech. Pokud jste omylem smazali soubor, zobrazí se jako Chybějící a můžete použít Vrátit pro jeho obnovení.

Soubory ignorované a bez verze mohou být přesunuty odsud do koše s pomocí Kontextové menuSmazat . Pokud chcete smazat soubory trvale (přeskočit koš) držte klávesu Shift, při klikání na Smazat.

Pokud chcete prozkoumat soubor podrobně, můžete jej odtud přetáhnout do jiné aplikace, třeba textového editoru nebo IDE, nebo můžete uložit kopii tím, že ho jednoduše přetáhnete do adresáře v průzkumníku.

Sloupce jsou přizpůsobitelné. Pokud kliknete pravým tlačítkem myši na libovolné záhlaví sloupce, zobrazí se kontextové menu umožňující vybrat, které sloupce se mají zobrazit. Můžete také změnit šířku sloupce pomocí tažení rukojeti, která se objeví při pohybu myši nad hranici sloupce. Tyto úpravy jsou zachovány, takže stejné záhlaví uvidíte příště.

Pokud pracujete na několika nesouvisejících úkolech najednou, můžete seskupit soubory do seznamu změn. Přečtěte si „Seznam Změn“ pro více informací.

Ve spodní části dialogového okna si můžete prohlédnout přehled rozsahu revizí úložiště používaných v pracovní kopii. Jedná se o odevzdané revize, ne o aktualizované revize; představují řadu revizí, kde byly tyto soubory naposledy odevzdány, nikoliv revize, kde byly aktualizovány. Všimněte si, že zobrazený rozsah revizí se vztahuje pouze na zobrazené položky, nikoli na celou pracovní kopii. Pokud chcete vidět tuto informaci pro celou pracovní kopii, musíte zaškrtnout políčko Zobrazit nezměněné soubory.

Tip

Pokud chcete mít přehledný pohled ve Vaší pracovní kopii, tj. zobrazení všech souborů a adresářů na všech úrovních hierarchie adresáře, pak dialogové okno Zkontrolovat změny je nejjednodušší způsob, jak toho dosáhnout. Stačí zaškrtnout Zobrazit nezměněné soubory k zobrazení všech souborů v pracovní kopii.

Oprava Přejmenovaných Externích

Někdy jsou soubory mimo Subversion přejmenovány a pak se objeví v seznamu souborů jako chybějící a soubor bez verze. Aby nedošlo ke ztrátě historie je třeba Subversion o připojení oznámit. Stačí jen vybrat starý (chybějící) a nový (bez verze) název (chybí) a použit Kontextové menuOpravit přesun pro spárování těchto souborů jako přejmenování.

Oprava Vnější Kopie

Pokud jste udělali kopii souboru, ale zapomněli jste pro to použít příkaz Subversion, můžete opravit kopii, tak že nový soubor neztratí svoji historii. Stačí jen vybrat jak starý název (normální nebo upravený) a nový název (bez verze) a použit Kontextové menuOpravit kopii pro spárování obou souborů jako kopie.

Zobrazení rozdílů

Často se chcete podívat dovnitř souborů, podíval se na to, co jste změnili. Tuto operaci lze provést výběrem souboru, který byl změněn a vybrat Porovnat z kontextového menu TortoiseSVN. Spustí se externí prohlížeč pro porovnání, který pak porovná aktuální soubor s původní kopií (Původní revize), který byl uložen po posledním získání nebo aktualizaci.

Tip

I když nejste v pracovní kopii nebo pokud se Vám více verzí souboru okolo povaluje, stále můžete zobrazit porovnání:

Vyberte dva soubory, které chcete v průzkumníkovy porovnat (např. pomocí Ctrl a myši) a zvolte Porovnat z kontextového menu TortoiseSVN. Soubor, na který bylo kliknuto naposled (ten se zaměřením, tj. tečkovaným obdélníkem), bude považován za ten pozdější.

Seznam Změn

V ideálním světě, vždycky pracujete pouze na jedné věci najednou a Vaše pracovní kopie obsahuje pouze jednu sadu logických změn. OK, zpátky do reality. Často se stává, že musíte pracovat na několika nesouvisejících úkolech najednou a když se podíváte do dialogového okna odevzdání, všechny změny jsou zamotané dohromady. Funkce Seznam Změn Vám pomůže seskupit soubory dohromady, takže je lépe vidět, co děláte. Samozřejmě to může fungovat pouze v případě, že se změny nepřekrývají. Pokud mají dva odlišné úkoly vliv na stejný soubor, neexistuje žádný způsob, jak změny oddělit.

Seznam změn můžete vidět na několika místech, ale nejdůležitější je v dialogovém okně odevzdání a Zjistit změny. Začněme v dialogovém okně Zjistit změny poté, co jste pracovali na několika funkcích a mnoho souborech. Když poprvé otevřete dialogové okno, všechny změněné soubory jsou uvedeny společně. Představte si, že teď chcete uspořádat věci a seskupit tyto soubory podle funkce.

Vyberte jeden nebo více souborů a použijte Kontextové menuPřesunout do seznamu změn k přidání položky do seznamu změn. Zpočátku nebude žádný vytvořen, takže při zvolení této volby vytvoříte nový seznam změn. Dejte mu jméno, které popisuje, na co ho používáte a klepněte na tlačítko OK. Dialogové okno se nyní změní na zobrazení skupiny položek.

Jakmile jste vytvořili seznam změn, můžete do něho přetáhnout položky, ať už z jiného seznamu změn, nebo z Průzkumníka Windows. Přetažení z Průzkumníka může být užitečné, protože vám umožní přidat položky do seznamu změn před jejich úpravami. Dalo by se to provádět i z dialogového okna Zjistit změny, ale jen zobrazením všech nezměněných souborů.

Obrázek 4.15. Dialogové okno odevzdání se Seznamem Změn

Dialogové okno odevzdání se Seznamem Změn


V dialogovém oknu odevzdání můžete vidět ty stejné soubory, seskupené podle seznamu změn. Kromě toho, že dává bezprostřední vizuální indikaci seskupení, můžete také použít záhlaví skupin pro výběr, které soubory chcete odevzdat.

TortoiseSVN rezervuje jeden jméno seznamu změn pro svoji vlastní potřebu a to ignore-on-commit. Používá se pro označení souborů v adresářích, které téměř nikdy nechcete odevzdat i když mají lokální změny. Tato funkce je popsána v „Vyjmout položky ze seznamu odevzdání“.

Když odevzdáte soubory patřící do seznamu změn, pak byste normálně očekávali, že členství v seznamu změn již není potřeba. Takže ve výchozím nastavení jsou soubory odstraněny ze seznamu změn automaticky po odevzdání. Pokud chcete zachovat soubor v jeho seznamu změn, použijte políčko Ponechat seznamy změn v dolní části dialogového okna odevzdání.

Tip

Seznam změn je čistě funkce místního klienta. Vytváření a odstraňován seznamů změn nebude mít vliv na úložiště, ani na pracovní kopii někoho jiného. Jsou jenom pohodlný způsob, jak organizovat soubory.

Varování

Nezapomeňte, že pokud používáte seznamy změn, externí již nebudou zobrazeny v jejich vlastních skupinách. Jakmile používáte seznamy změn, budou podle nich seřazeny soubory i složky, ne podle externích.

Shelving

More often than wanted, it's necessary to stop what you were working on and work on something else. For example a serious problem needs immediate dealing with and you have to stop working on the new feature. If possible, you should commit the changes you have done so far and then start working on the urgent issue, but often those changes would break the build or are just not ready for committing yet.

So if you can't commit your local changes yet, you have to put them aside while you're working on the urgent issue. The shelving feature helps you do exactly that: you can store your local changes on a shelve, get your working copy in a clean state again and work on the issue. After you're finished with the urgent issue and you've committed those changes, you can unshelve your shelved work and continue working on your previous task again.

Two new commands are implemented for this. One for shelving and one for unshelving.

To shelve your local changes, select your working copy and use Context MenuShelve The following dialog allows you to select the files you want to shelve and give a name under which you want to store them.

Obrázek 4.16. Shelve dialog

Shelve dialog


If you select an existing shelf, then a new version is created for that shelf. If you provide a new name, a new shelf is created for the selected files.

If you click the Shelve button, the shelf is created and your working copy files are reset to a clean state. If you click the Checkpoint button, the shelf is created but your local modifications are kept.

To unshelve your changes, use Context MenuUnshelve to get the unshelve dialog. This dialog shows you a list of all shelved items. Select the shelved item you want and the version to apply back to your working copy and click Apply.

Obrázek 4.17. Unshelve dialog

Unshelve dialog


Tip

Shelves are purely a local client feature. Creating and removing Shelves will not affect the repository, nor anyone else's working copy.

Experimental

The shelving feature is still marked as experimental.

That means that while shelving works as advertised, it is still in a stage where it's heavily improved and worked on. That also means that there's no guarantee that the shelves you create are upwards compatible and future versions might not be able to use them. And of course the UI might change as well in future versions to accommodate new features and behaviors.

Dialogové Okno Záznamu Revizí

Pro každou změnu, kterou uděláte a odevzdáte, byste měli poskytnout záznam této změny. Tímto způsobem můžete později zjistit, jaké změny jste udělali a proč a máte podrobný záznam svého vývojového procesu.

Dialogové okno Záznamu Revizí načte pro Vás všechny ty zprávy záznamů a zobrazí je Vám. Okno je rozděleno do 3 panelů.

  • Horní panel zobrazuje seznam revizí, kde změny v souboru/adresáři byly odevzdány. Tento přehled obsahuje datum a čas, osobu, která odevzdala revizi a začátek zprávy záznamu.

    Modré řádky naznačují, že něco bylo zkopírováno do této vývojové linie (možná z větve).

  • Prostřední panel zobrazuje úplnou zprávu záznamu pro vybranou revizi.

  • Dolní panel zobrazuje seznam všech souborů a adresářů, které byly v rámci vybrané revize změněny.

Ale dělá mnohem víc než to - poskytuje příkazy kontextového menu, které můžete použít k získání ještě více informací o historii projektu.

Vyvolání Dialogového Okna Záznamu Revizí

Obrázek 4.18. Dialogové Okno Záznamu Revizí

Dialogové Okno Záznamu Revizí


Existuje několik míst, z nichž můžete zobrazit dialogové okno Záznamů:

  • Z kontextového menu TortoiseSVN

  • Ze stránky vlastností

  • Z dialogového okna Průběhu po dokončení aktualizace. Pak dialogové okno Záznamů zobrazuje pouze ty revize, které byly změněny od Vaší poslední aktualizace

  • V Průzkumníku úložiště

Pokud úložiště není k dispozici, uvidíte dialogové okno Chcete jít offline?, je popsáno v „Offline režim“.

Činnosti Záznamu Revizí

Horní panelu má sloupec Činnosti, který obsahuje ikony, které shrnují, co bylo učiněno v této revizi. Existují čtyři různé ikony, z nichž každá je uvedena v jejím vlastním sloupci.

Pokud revize změnila soubor nebo adresář, ikona změněno je zobrazena v prvním sloupci.

Pokud revizi přidala soubor nebo adresář, ikona přidáno je zobrazena ve druhém sloupci.

Pokud revize vymazala nějaký soubor nebo adresář, ikona smazáno je zobrazena ve třetím sloupci.

Pokud revize nahradila soubor nebo adresář, ikona nahrazeno je zobrazena ve čtvrtém sloupci.

Pokud revize přesunula nebo přejmenovala soubor či adresář, ikona přesunuto je zobrazena ve čtvrtém sloupci.

Pokud revize nahradila soubor nebo adresář jejich přesunutím/přejmenováním, ikona nahrazeno přesunem je zobrazena ve čtvrtém sloupci.

Pokud revize sloučila soubor či adresář, ikona sloučeno je zobrazena ve čtvrtém sloupci.

Pokud revize zpětně sloučila soubor či adresář, ikona zpětně sloučeno je zobrazena ve čtvrtém sloupci.

Získání dodatečných informací

Obrázek 4.19. Horní Panel Dialogového okna Záznamu revizí s Kontextovým menu

Horní Panel Dialogového okna Záznamu revizí s Kontextovým menu


Horní panel v dialogovém oknu Záznamů má kontextové menu, které umožňuje přístup k mnohem více informacím. Některé z těchto položek nabídky se zobrazí pouze tehdy, pokud je záznam zobrazen pro soubor a některé, jen když je záznam zobrazen pro adresář.

Porovnat s pracovní kopií

Porovnat vybranou revizi s Vaši pracovní kopií. Výchozí nástroj pro porovnávání rozdílů je TortoiseMerge, který je dodáván s TortoiseSVN. Pokud je dialogové okno Záznamů pro adresář, zobrazí Vám seznam změněných souborů a umožní Vám zkontrolovat změny každého souboru jednotlivě.

Porovnejte a obviňte s pracovním originálem

Obviňte vybranou revizi a soubor ve Vašem pracovním originále a porovnejte hlášení o obvinění pomocí vizuálního nástroje rozdílů. Přečtěte si „Obvinit Rozdíly“ pro další podrobnosti. (Pouze pro soubory)

Zobrazit změny jako sjednocený rozdíl

Zobrazit změny provedené ve vybrané revizi jako sjednocený rozdíl (formát GNU záplaty). Ukazuje pouze rozdíly v několika řádcích kontextu. Je těžší číst než vizuální porovnání souborů, ale zobrazí všechny změny souborů dohromady v jednolitém formátu.

Pokud podržíte klávesu Shift při kliknutí na položku menu, jako první se objeví dialogové okno, kde můžete nastavit možnosti pro sjednocený rozdíl. Tyto možnosti zahrnují i možnost ignorovat změny na konci řádků a mezery.

Porovnat s předchozí revizí

Porovnat vybranou verzí s předchozí revizí. Funguje to podobným způsobem jako porovnání Vaší pracovní kopie. U složek tato možnost nejdříve zobrazí dialogové okno změněné soubory, umožňující vybrat soubory k porovnání.

Porovnat a obvinit s předchozí revizí

Zobrazit dialogové okno změněné soubory umožňující vybrat soubory. Obviňte vybranou revzi a předchozí revizi a porovnejte výsledky s použitím vizuální nástroje porovnání. (Pouze pro adresáře)

Uložit revize do...

Uložit vybranou revizi do souboru, takže máte starší verzi tohoto souboru. (Pouze pro soubory)

Otevřít / Otevřít v...

Otevřít zvolený souboru a to buď ve výchozím prohlížeči pro tento typ souboru, nebo s programem, který vyberete. (Pouze pro soubory)

Obvinit...

Obvinit soubor na vybranou verzí. (Pouze pro soubory)

Procházet úložiště

Otevřete Průzkumníka úložiště, pro náhled vybraného souboru nebo adresáře v úložišti tak, jak byl ve vybrané revizi.

Vytvořit větev/značku z revize

Vytvořit větev nebo značku z vybrané revize. To je užitečné např., pokud jste zapomněli vytvořit značku a již jste odevzdali nějaké změny, které se neměli dostat do onoho vydání.

Aktualizovat položku na revizi

Aktualizujte Vaši pracovní kopii na vybranou revizi. Užitečné, pokud chcete, aby Vaše pracovní kopii odrážela stav v minulosti, nebo v případě, že došlo k dalšímu odevzdání do úložiště a Vy chcete aktualizovat pracovní kopii postupně. Je nejlepší aktualizovat celý adresář ve Vaší pracovní kopii, ne jen jeden soubor, jinak Vaše pracovní kopie mohla být v nekonzistentním stavu.

Pokud chcete vrátit zpět předchozí změny trvale, použijte raději Vrátit se k této revizi.

Vrátit se k této revizi

Vrátit se k dřívější revizi. Pokud jste provedli několik změn a pak se rozhodnete, že raději se chcete vrátit tak, jak věci byly v revizi N, toto je příkaz, který potřebujete. Změny jsou vráceny zpět ve Vaší pracovní kopii, takže tato operace nemá vliv na úložiště, dokud neodevzdáte změny. Nezapomeňte, že toto vrátí zpět všechny změny provedené po vybranou revizi, nahradí tak soubor/adresář starší verzi.

Pokud Vaše pracovní kopie je v nezměněném stavu, po provedení této činnosti se Vaše pracovní kopie bude zobrazovat jako upravená. Pokud již máte místní změny, tento příkaz sloučí zpětné změny do pracovní kopie.

Co se děje uvnitř, je, že Subversion provádí zpětné sloučení všech změn provedených po vybranou revizi, rušící účinek předchozích odevzdání.

Pokud se po provedení této akce rozhodnete, že chcete vzít zpět zrušení a dostat Vaši pracovní kopii zpět na předchozí neupravený stav, měli byste použít TortoiseSVNVrátit v Průzkumníku Windows, což zruší místní úpravy provedené tímto obráceným sloučením.

Pokud chcete jednoduše zjistit, jak soubor nebo adresář vypadal v dřívější revizi, použijte Aktualizovat na revizi nebo místo toho Uložit revizi jako....

Vrátit změny z této revize

Vrátit zpět změny tak jak byly ve vybrané revizi provedeny. Tyto změny jsou vráceny zpět ve Vaší pracovní kopii, takže tato operace nemá vůbec vliv na úložiště! Nezapomeňte, že toto vrátí zpět změny provedené pouze v této revizi; nenahradí Vaši pracovní kopii celým souborem se starší revizí. To je velmi užitečné pro vrácení dřívější změny, když jiné nesouvisející změny už bylo od té doby provedeny.

Pokud Vaše pracovní kopie je v nezměněném stavu, po provedení této činnosti se Vaše pracovní kopie bude zobrazovat jako upravená. Pokud již máte místní změny, tento příkaz sloučí zpětné změny do pracovní kopie.

Co se děje uvnitř, je, že Subversion provádí zpětné sloučení konkrétní revize, vrací její změny od předchozího odevzdání.

Můžete vzít zpět vrácení jak je popsáno výše v Vrátit se k této revizi.

Sloučit revize do...

Sloučit vybranou revizi(e) do jiné pracovní kopie. Dialogové okno pro výběr adresáře umožňuje zvolit pracovní kopii ke sloučení, ale poté už není žádné dialogové okno pro potvrzení, ani příležitost sloučení vyzkoušet. Je doporučeno slučovat do nezměněné pracovní kopie, abyste mohli vrátit změny, pokud to nevyjde! To je užitečná vlastnost, pokud chcete sloučit vybrané revize z jedné větve do druhé.

Získání...

Provést nové získání vybraného adresáře ve vybrané revizi. Toto otevře dialogové okno k potvrzení URL a revize a výběr umístění pro získání.

Exportovat...

Exportovat vybraný soubor/adresář na vybranou revizi. Toto otevře dialogové okno k potvrzení URL a revize a výběr umístění pro export.

Upravit autora / záznam zprávy

Upravit záznam zpráv, nebo autora připojeného k předchozímu odevzdání. Přečtěte si „Změna Zpráv Záznamu a Autora“ abyste zjistili, jak to funguje.

Zobrazit vlastnosti revizí

Prohlížet a upravovat jakékoli vlastnosti revizí, nejenom záznam zprávy a autora. Viz „Změna Zpráv Záznamu a Autora“.

Zkopírovat do schránky

Kopírovat podrobnosti záznamu o vybraných revizích do schránky. Toto zkopíruje číslo revize, autora, datum, záznam zprávy a seznam změněných položek pro každou revizi.

Prohledávat záznamy zpráv...

Hledat záznam zprávy zadaným textem. Toto prohledá záznam zpráv, které jste zadali a také souhrn činností vytvořených Subversion (uvedeno v dolní části panelu). Vyhledávání není citlivé na velikost písmen.

Vytvořit přezkoumání v nástroji spolupráce na kódu...

Tato nabídka je zobrazena pouze když je nainstalován nástroj spolupráce na kódu SmartBear. Při prvním zavolání je zobrazeno dialogové okno, které požádá uživatele o zadání přihlašovacích údajů do nástroje i do úložiště. Jakmile jsou nastavení uložena, dialogové okno se při zavolání již nebude zobrazovat, pokud při zvolení položky nabídky uživatel nepodrží Ctrl. Nastavení a zvolené revize jsou použity k zavolání grafického rozhraní klienta nástroje, který vytvoří nové přezkoumání pomocí zvolených revizí.

Obrázek 4.20. Dialogové okno nastavení spolupráce na kódu

Dialogové okno nastavení spolupráce na kódu


Obrázek 4.21. Horní panel Kontextového Menu pro 2 vybrané Revize

Horní panel Kontextového Menu pro 2 vybrané Revize


Zvolíte-li dvě revize najednou (s použitím běžného Ctrl-modifikátor), kontextové menu se změní a dá Vám méně možností:

Porovnat revize

Porovnejte dvě vybrané revize pomocí nástroje pro porovnání rozdílů. Výchozím takovýto nástrojem je TortoiseMerge, který je dodáván spolu s TortoiseSVN.

Pokud zvolíte tuto možnost pro adresář, další dialogové okno zobrazí seznam změněných souborů a nabídne Vám další možnosti porovnání. Přečtěte si více o dialogovém okně Porovnání Revizí v „Porovnávání adresářů“.

Obvinit revize

Obvinit dvě revize a porovnat hlášení o obvinění pomocí nástroje pro porovnání rozdílů. Přečtěte si „Obvinit Rozdíly“ pro další podrobnosti.

Zobrazit rozdíly jako sjednocený rozdíl

Zobrazit rozdíly mezi dvěma vybranými revizemi jako soubor sjednoceného rozdílu. Toto funguje pro soubory i adresáře.

Zkopírovat do schránky

Zkopírovat zprávy záznamu do schránky, jak je popsáno výše.

Prohledávat záznamy zpráv...

Vyhledat zprávy záznamu jak je popsáno výše.

Vyberete-li dva nebo více revizí (s použitím běžného Ctrl nebo Shift modifikátorů), kontextové menu zahrne položku Vrátit všechny změny, které byly provedeny ve vybraných revizích. To je nejjednodušší způsob, jak vrátit zpět skupinu revizí na jednou.

Můžete také zvolit sloučení vybraných revizí do jiné pracovní kopie, jak je popsáno výše.

Pokud všechny vybrané revize mají téhož autora, můžete upravit autora všech těchto revizí na jednou.

Obrázek 4.22. Dolní panel dialogového okna Záznamů s Kontextovým Menu

Dolní panel dialogového okna Záznamů s Kontextovým Menu


Dolní panel v dialogovém oknu Záznamů má také kontextové menu, které Vám umožňuje

Zobrazit změny

Zobrazit změny provedené ve vybrané revizi pro vybraný soubor.

Obvinit změny

Obvinit vybranou revizi a předchozí revizi ve vybraném soubor a porovnat hlášení o obvinění pomocí nástroje pro zobrazení. Přečtěte si „Obvinit Rozdíly“ pro další podrobnosti.

Zobrazit jako sjednocený rozdíl

Zobrazit soubor změn ve formátu sjednoceného rozdílu. Toto kontextové menu je k dispozici pouze pro soubory zobrazené jako změněné.

Otevřít / Otevřít v...

Otevře zvolený soubor a to buď ve výchozím prohlížeči pro tento typ souboru, nebo s programem, který vyberete.

Obvinit...

Otevře Dialogové okno Obvinění, což vám umožní obvinit až po vybranou revizi.

Vrátit změny z této revize

Vrátit změny vybraného souboru v té revizi.

Zobrazit vlastnosti

Zobrazit Subversion vlastnosti vybrané položky.

Zobrazit záznam

Zobrazit záznam revize pro jeden vybraný soubor.

Získat záznamy o sloučení

Zobrazit záznam revize pro jeden vybraný soubor, včetně sloučených změn. Více se dozvíte na „Funkce Sledování Sloučení“.

Uložit revize do...

Uloží vybranou revizi do souboru, takže máte starší verzi tohoto souboru.

Exportovat...

Exportovat vybrané položky v této revizi do adresáře, zachovávajíc hierarchii souborů.

Při zvolení více souborů v dolním panelu se kontextové menu změnií na následující:

Obrázek 4.23. Dolní panel dialogového okna Záznamů s Kontextovým Menu při zvolení více souborů.

Dolní panel dialogového okna Záznamů s Kontextovým Menu při zvolení více souborů.


Uložit revize do...

Uloží vybranou revizi do souboru, takže máte starší verzi tohoto souboru.

Zobrazit více změn....

Zobrazit změny provedené ve zvolených revizích pro vybrané soubory. Nezapomeňte, že tato funkce je volána vícekrát, což může zobrazit více kopií vašeho zvoleného nástroje pro porovnání, nebo bude v nástroji přidána další karta porovnání. Pokud jste zvolili více než 15 souborů, budete vyzvání k potvrzení této činnosti.

Otevřít mnoho místních...

Toto otevře místní pracovní kopii souborů, odpovídající vašim vybraným souborům, pomocí aplikace která je přidělena k příponě souboru. [Chování je stejné jako při dvojkliku na pracovní soubor(y) v Průzkumníku Windows]. V závislosti na způsobu přidružení přípony souboru k aplikaci a schopnostech této aplikace, může tato operace dlouho trvat. V nejhorším případě Windows spustí nové instance aplikace za každý soubor, který byl vybrán.

Pokud podržíte Ctrl při volání tohoto příkazu, budou soubory vždy načteny ve Visual Studio. To funguje pouze při splnění následujících podmínek: Visual Studio musí běžet pod stejným uživatelem a mít stejnou úroveň integrity procesu [Spuštěn jako správce či nikoliv] jako TortoiseProc.exe. Je doporučeno mít ve Visual Studio otevřen projekt obsahující změněné soubory, i když to není nezbytně nutné. Načteny budou pouze soubory existující na disku a mající přípony [.cpp, .h, .cs, .rc, .resx, .xaml, .js, .html, .htm, .asp, .aspx, .php, .css a .xml]. Ve Visual Studio může být najednou načteno 100 souborů, jenž budou otevřeny jako nové karty v současně otevřené instanci Visual Studio. Výhodou přezkoumání změn kódu ve Visual Studio spočívá v tom, že můžete použít zabudovanou navigaci kódem, hledání odkazů, analýza statického kódu a další nástroje, jenž jsou dostupné ve Visual Studio.

Exportovat...

Exportovat vybraný soubor/adresář na vybranou revizi. Toto otevře dialogové okno k potvrzení URL a revize a výběr umístění pro export.

Tip

Můžete si všimnout, že někdy budeme odkazovat na změny a jindy na rozdíly. V čem je to jiné?

Subversion používá čísla revizí pro sdělení 2 různých věcí. Revize normálně představuje stav úložiště v okamžiku, ale také může být používáno k reprezentaci souboru změn, který revizi vytvořil, např. Provedeno v r1234 To znamená, že změny odevzdané v r1234 zavádějí funkci X. Aby bylo jasnější, co máme na mysli, používáme dva různé pojmy.

Zvolíte-li dvě revize N a M, kontextového menu Vám nabídne zobrazení Rozdílu mezi těmito dvěma revizemi. V jazyce Subversion to je diff -r M:N.

Pokud vyberete jednu revize N kontextové menu, Vám nabídne zobrazení změn provedených v této revizi. V jazyce Subversion to je diff -r N-1:N nebo diff -c N.

Spodní panel zobrazuje soubory změněné ve všech vybraných revizích, takže kontextové menu Vám vždy nabídne ukázat změny.

Zobrazení více zpráv záznamu

Dialogové okno Záznamů ne vždy zobrazí všechny změny, je to z několika důvodů:

  • Ve Velkém úložišti může existovat stovky nebo tisíce změn a všechny je získat může trvat delší dobu. Běžně Vás budou zajímat pouze nedávné změny. Ve výchozím nastavení je počet zpráv záznamů omezen na 100, ale můžete tuto hodnotu změnit v TortoiseSVNNastavení („Dialogové Okno Nastavení TortoiseSVN 1“),

  • Když je políčko Zastavit na kopírování/přejmenování zaškrtnuto, Zobrazit záznamy se zastaví na místě, kde vybraný soubor nebo adresář byl zkopírován z jiného místa v rámci úložiště. To může být užitečné, když prohlížíte větve (nebo značky), protože se zastaví u kořene té větve a poskytuje rychlou indikaci změn provedených pouze v té větvi.

    Za normálních okolností budete chtít nechat tuto možnost odškrtnutou. TortoiseSVN si pamatuje stav tohoto políčka, takže bude Vaše preference respektovat.

    Je-li dialogové okno Zobrazit záznamy spuštěno z dialogového okna Sloučení, je políčko vždy ve výchozím nastavení zaškrtnuto. To proto, že sloučení se nejčastěji dívá na změny ve větvích a jít za kořen větve nemá v této situaci smysl.

    Všimněte si, že Subversion v současné době zavádí přejmenování jako pár kopírování/smazání, takže přejmenování souboru nebo adresáře také způsobí, že displej záznamů se zastaví, pokud je tato volba zaškrtnuta.

Pokud chcete vidět více zpráv záznamů, klepněte na tlačítko Dalších 100 pro získání dalších 100 zpráv záznamů. Toto můžete opakovat, kolikrát chcete.

Vedle tohoto tlačítka je tlačítko s mnoha funkcemi, které si pamatuje poslední možnost, kterou jste v něm použili. Klikněte na šipku pro zobrazení dalších nabízených možností.

Použijte Zobrazit Rozsah... pokud chcete zobrazit konkrétní rozsah revizí. Dialogové okno Vás pak vyzve k zadání začátku a konce revize.

Použijte Zobrazit všechny, pokud chcete vidět všechny zprávy záznamu z revize HEAD zpátky k revizi 1.

Chcete-li obnovit poslední revizi v případě, že byly i jiné odevzdání, zatímco bylo dialogové okno Záznamu otevřené, stiskněte klávesu F5.

Chcete-li aktualizovat úschovu záznamů, stiskněte klávesy Ctrl-F5.

Aktuální Revize Pracovní Kopie

Vzhledem k tomu, že Dialogové okno Záznamů zobrazuje záznamy z HEAD, ne z aktuální revize pracovní kopie, často se stává, že v záznamu jsou zprávy vypovídající o obsahu, který dosud nebyl aktualizován ve Vaší pracovní kopii. Pro jasnější představu je zpráva odevzdání, která odpovídá revizi ve Vaši pracovní kopii, zobrazena tučně.

Když zobrazíte záznam adresáře, revize, která je zvýrazněná je nejvyšší revizi kdekoliv v tomto adresáři, která vyžaduje procházení pracovní kopie. Procházení se provádí v rámci samostatného vlákna, aby nedošlo k prodlení zobrazení záznamu, ale v důsledku zvýraznění adresáře se nemusí objevit ihned.

Funkce Sledování Sloučení

Subversion 1.5 a novější uchovává záznamy o sloučení pomocí vlastností. To nám umožňuje získat podrobnější historii sloučených změn. Například, pokud jste vyvinuli novou funkci ve větvi a pak sloučili tuto větev zpět do kmene, tak se vývoj funkce objeví v záznamu kmene jako jediné odevzdání pro sloučení i když tam mohlo být 1000 odevzdání v průběhu vývoje větve.

Obrázek 4.24. Dialogové Okno Záznamu Zobrazující Sledování Sloučení Revizí

Dialogové Okno Záznamu Zobrazující Sledování Sloučení Revizí

Pokud chcete vidět detaily, které revize byly sloučeny jako součást tohoto odevzdání, použijte políčko Zahrnout sloučené revize. To znovu stáhne zprávy záznamu, ale také proloží zprávy záznamů z revize, které byly sloučeny. Sloučené revize jsou zobrazeny v šedé barvě, protože představují změny provedené v jiné části stromu.

Samozřejmě, slučování není nikdy jednoduché! Během vývoje funkce na větvi, budou pravděpodobně i občasná sloučení zpět do kmene, aby větve byly v synchronizaci s hlavní linií kódu. Takže historii sloučení větve bude také zahrnovat další vrstvu historie sloučení. Tyto různé vrstvy jsou uvedeny v dialogovém okně záznamu pomocí úrovní odsazení.

Změna Zpráv Záznamu a Autora

Vlastnosti revize jsou zcela odlišné od Subversion vlastností každé položky. vlastrev jsou popisné položky, které jsou spojeny s jedním konkrétním číslem revize v úložišti, jako třeba zpráva záznamu, datum odevzdání a jméno vývojáře (autor).

Někdy můžete chtít změnit zprávu záznamu, kterou jste jednou zadali, možná proto, že je v ní pravopisná chyba, nebo chcete zprávu zlepšit nebo z jiných důvodů změnit. Nebo chcete změnit autora odevzdání, protože jste zapomněli nastavit ověřování nebo...

Subversion Vám umožňuje měnit vlastnosti revizí kdykoliv chcete. Ale protože takové změny nelze vrátit zpět (tyto změny nemají verzi), je tato funkce ve výchozím nastavení zakázána. Pro povolení, musíte nastavit hák pre-revprop-change. Více informací je v kapitole týkající se Hákových skriptů v knize Subversion, kde se nacházejí podrobnosti o tom, jak toto provést. Přečtěte si „Hákové skripty na straně serveru“ pro některé další poznámky o zavedení háků na počítači s Windows.

Jakmile jste nastavili váš server s požadovanými háky, můžete změnit autora a zprávu záznamu (nebo jakoukoli jinou vlastrev) jakékoli revize, pomocí kontextového menu v horním panelu dialogového okna Záznamu. Můžete také upravit zprávu záznamu pomocí kontextového menu ve středním panelu.

Varování

Vzhledem k tomu, že vlastnosti revizí Subversion nemají verzi, změny těchto vlastností (např. vlastnost svn:log zprávy odevzdání) navždy přepíše předchozí hodnotu této vlastnosti.

Důležité

Vzhledem k tomu, že TortoiseSVN si udržuje všechny informace ze záznamu, úpravy prováděné v autorovi a zprávě záznamu se zobrazí pouze ve Vaší instalaci. Ostatní uživatelé používající TortoiseSVN stále budou vidět uchované (staré) autory a zprávy záznamu, dokud neaktualizují úschovu záznamu. Prohlédněte si „Obnovení zobrazení“

Filtrování Zpráv Záznamu

Pokud chcete omezit zprávy záznamu na ty, o které máte zájem, tak spíše než procházet seznam stovek zpráv, můžete použít kontroly filtru v horní části dialogového okna záznamů. Kontrola počátečního a konečného data umožňuje omezit výstup na známé časové období. Pole vyhledávání umožňuje zobrazit pouze ty zprávy, které obsahují konkrétní frázi.

Klikněte na ikonu hledání a vyberte, které informace chcete vyhledávat a který režim regulárních výrazů chcete. Za normálních okolností budete potřebovat pouze jednoduché hledání podřetězce, ale pokud potřebujete více flexibilní vyhledávací termíny, můžete použít regulární výrazy. Pokud podržíte ukazatelem myši nad polem, popisek Vám dá rady, jak používat regulární výrazy funkce, nebo funkce podřetězce. Filtr pracuje tak, že zkontroluje, zda Váš řetězec filtru odpovídá položkám záznamu a pak pouze tyto záznamy, které se shodují s řetězcem filtru jsou zobrazeny.

Prosté hledání podřetězců funguje podobně jako vyhledávač. Hledané řetězce jsou oddělené mezerami a všechny řetězce se musí shodovat. Můžete použít - před slovem, aby se určitý podřetězec nevyhledával (obrácená shoda se slovem), nebo použijte ! na začátku výrazu k obrácení shody celého výrazu. Můžete také použít + před slovem k určení podřetězce, který by měl být zahrnut, i když byl předtím vyjmut pomocí -. Nezapomeňte, že pořadí zahrnutí/vyjmutí je zde důležité. Můžete použít uvozovky pro hledání řetězce s mezerami, a pokud chcete hledat uvozovky, můžete použít dvě uvozovky dohromady jako sebe maskující sekvence. Nezapomeňte, že obrácené lomítko se nepoužívá jako maskující znak a nemá žádný zvláštní význam v prostém hledání podřetězců. Příklady Vám to objasní:

Jana Honza -Eva

vyhledá řetězce obsahující Jana i Honza ale ne Eva

Jana -Honza +Eva

vyhledá řetězce obsahující Janu ale ne Honzu, nebo řetězce obsahující Evu.

-Případ +ZvláštníPřípad

vyhledá řetězce, které neobsahují Velikost, ale stále zahrne řetězce obsahující ZvláštníPřípad.

!Jana Honza

vyhledá řetězce, které neobsahují Jana a Honza

!-Jana -Honza

pamatujete si na De Morganův teorém? NOT(NOT Jana AND NOT Honza) se zkrátí na (Jana OR Honza).

"Jana a Honza"

hledá doslovný výraz Jana a Honza

""

hledá dvě uvozovky kdekoliv v textu

\n
"Jana řekla Honzovi ""ahoj"""

hledá doslovný výraz Jana řekla Honzovi "ahoj".

Popis použití regulárního výrazu v hledání je nad rámec tohoto manuálu, ale můžete najít na internetu dokumentace a návod na http://www.regularnivyrazy.info/.

Upozorňujeme, že tyto filtry působí pouze na již stáhnuté zprávy. Nemají žádný vliv na stahování zpráv z úložiště.

Můžete také filtrovat názvy cest ve spodním panelu pomocí políčka Zobrazit pouze dotčené cesty. Dotčené cesty jsou ty, které obsahují cestu sloužící k zobrazení záznamu. Načtete-li záznam pro adresář, znamená to všechno v tom adresáři nebo pod ním. Pro soubor to znamená jen právě ten jeden soubor. Normálně seznamu cest zobrazí jakékoliv jiné cesty, které jsou dotčené stejným odevzdáním, ale v šedé barvě. Pokud je políčko zaškrtnuto, tyto cesty jsou ukryty.

Někdy Vaše pracovní postupy budou vyžadovat, aby zprávy záznamů měly určitý formát, což znamená, že text popisující změny, není vidět ve zkráceném shrnutí uvedený v horním panelu. Vlastnost tsvn:logsummary může být použita k extrakci části zprávy záznamu k zobrazení v horním panelu. Přečtěte si „TortoiseSVN Vlastnosti projektu“ pro více informací, jak použít tuto vlastnost.

Žádné formátování záznamu z Průzkumníka úložiště

Vzhledem k tomu, že formátování závisí na přístupu k vlastnostem Subversion, výsledky uvidíte pouze při použití získané pracovní kopie. Vzdálené získávání vlastnosti je pomalá operace, takže tuto funkci v akci neuvidíte v Průzkumníku úložiště.

Statistické informace

Tlačítkem Statistika vyvoláte okno zobrazující některé zajímavé informace o revizích zobrazených v dialogovém okně Záznamu. Ukazuje, kolik autorů pracovalo, kolik odevzdání udělali, pokrok v týdnu a ještě mnohem více. Nyní můžete na první pohled vidět, kdo pracoval nejtvrději a kdo se flákal ;-)

Stránka Statistik

Tato stránka Vám dá všechna čísla, na která můžete pomyslet, zejména období a počet pokrytých revizí a některé min/max/průměrné hodnoty.

Stránka Odevzdání podle Autora

Obrázek 4.25. Sloupcový graf Odevzdání-podle-Autora

Sloupcový graf Odevzdání-podle-Autora


Tento graf ukazuje, kteří autoři byli v projektu aktivní jako jednoduchý sloupcový graf, skládaný sloupcový graf nebo koláčový graf.

Obrázek 4.26. Koláčový graf Odevzdání-podle-Autora

Koláčový graf Odevzdání-podle-Autora


Pokud existuje několik hlavních autorů a mnoho menších přispěvatelů, množství malých segmentů může způsobit, že graf je obtížnější číst. Posuvník v dolní části umožňuje nastavit prahové hodnoty (jako procento z celkových odevzdání), pod níž je jakákoli aktivita seskupena do kategorie Ostatní.

Stránka odevzdání podle data

Obrázek 4.27. Graf odevzdání podle data

Graf odevzdání podle data


Tato stránka Vám dává grafické znázornění činností projektu, pokud jde o počet odevzdání a autorů. To dává určitou představu o tom, kdy se na projektu pracuje a kdo v které době pracoval.

Když je několik autorů, budete mít v grafu mnoho řádků. Zde jsou k dispozici dva pohledy: normální, kde každá aktivita autora je vzhledem k základní linii, a skládaný, kde každá aktivita autora je vzhledem k řádku pod ním. Druhá z možností zabraňuje překřížení linky, což může udělat graf čitelnějším, ale je méně snadné vidět výkon jednoho autora.

Ve výchozím nastavení je analýza citlivá na velikost písmen, takže uživatelé Josefnovák a JosefNovák jsou považovány za různé autory. Nicméně, v mnoha případech uživatelská jména nejsou na velikost písmen citlivá a někdy jsou zadávány nedůsledně, takže možná budete chtít, aby PetrMilý a petrmilý byli považováni za stejnou osobu. Zaškrtněte políčko Rozlišovat velikost písmen autorů, ke kontrole, jak je toto řešeno.

Nezapomeňte, že statistiky se týkají stejného období jako dialogové okno Záznamu. Pokud okno zobrazuje pouze jednu revizi pak Vám statistiky moc nepoví.

Offline režim

Obrázek 4.28. Dialogové okno Jít Offline

Dialogové okno Jít Offline


Pokud je server nedostupný a Vy máte zapnuto uchování záznamů, můžete použít dialogové okno záznamů a graf revizí v režimu offline. Využívá se dat z úschovy, což Vám umožní pokračovat v práci, i když informace nemusí aktuální, nebo dokonce úplná.

Zde máte tři možnosti:

Pro teď offline

Dokončit aktuální operaci v režimu offline, ale zkusit úložiště znovu v okamžiku, kdy je požadován záznam dat.

Trvale offline

Zůstat v režimu offline, dokud není o kontrolu úložiště výslovně požádáno. Viz „Obnovení zobrazení“.

Zrušit

Pokud nechcete pokračovat v operaci s možností zastaralých dat, stačí ji zrušit.

Políčko Nastavit jako výchozí zabraňuje tomuto dialogovému oknu se znovu objevit a vždy vybere tu možnost, kterou Vy zvolíte jako další. Můžete stále měnit (nebo odebrat) výchozí nastavení po zaškrtnutí v TortoiseSVNNastavení.

Obnovení zobrazení

Pokud chcete opět zkontrolovat server pro novější zprávy záznamů, můžete jednoduše aktualizovat zobrazení pomocí F5. Pokud používáte úschovu záznamu (standardně zapnuto), tuto zkontroluje úložiště pro novější zprávy a načte pouze nové. Pokud je úschova záznamů v režimu offline, tímto se také pokusí vrátit zpět do režimu online.

Pokud používáte úschovu záznamů a myslíte si, že obsah zprávy, nebo autor se mohli změnit, můžete použít Shift-F5 nebo Ctrl-F5 pro znovu načtení zobrazených zpráv ze serveru a aktualizovat úschovu záznamů. Nezapomeňte, že toto se týká pouze právě zobrazených zpráv a nenaruší celou úschovu pro toto úložiště.

Zobrazit Rozdíly

Jeden z nejčastějších požadavků ve vývoji projektu je vidět, co se změnilo. Možná se budete chtít podívat na rozdíly mezi dvěma revizemi stejného souboru, nebo rozdíly mezi dvouma samostatnými soubory. TortoiseSVN nabízí vestavěný nástroj s názvem TortoiseMerge k prohlížení rozdílů textových souborů. K prohlížení rozdílů obrázků, TortoiseSVN má také nástroj s názvem TortoiseIDiff. Samozřejmě, že můžete používat svůj vlastní oblíbený program pro porovnání, pokud se Vám líbí.

Rozdíly souboru

Místní změny

Pokud chcete vidět, jaké změny jste Vy provedli ve Vaší pracovní kopii, stačí použít kontextové menu průzkumníka a zvolte TortoiseSVNPorovnat.

Porovnat s jinou větví/značkou

Pokud chcete vidět, co se změnilo v kmeni (pokud pracujete ve větvi), nebo v konkrétní větvi (pokud pracujete v kmeni), můžete použít kontextového menu Průzkumníka. Podržte klávesu Shift, při klepnutí pravým tlačítkem myši na soubor. Pak vyberte TortoiseSVNPorovnat s URL. V následujícím dialogovém okně zadejte adresu URL v úložišti, se kterou chcete místní soubor porovnat.

Můžete také použít průzkumníka úložiště a vybrat dva stromy k porovnání, třeba dvě značky, nebo větev/značku a kmen. Kontextové menu Vám je umožňuje porovnat s použitím Porovnat revize. Přečtěte si více v „Porovnávání adresářů“.

Rozdíl od předchozí revize

Pokud chcete vidět rozdíl mezi konkrétní revizí a Vaší pracovní kopie, použijte dialogové okno Záznamu Revizí, vyberte revizi, kterou chcete porovnat, pak z kontextového menu zvolte Porovnat s pracovní kopií.

Pokud chcete vidět rozdíl mezi poslední odevzdanou revizí a Vaší pracovní kopií, za předpokladu, že pracovní kopie nebyla změněna, stačí kliknout pravým tlačítkem myši na soubor. Pak vyberte TortoiseSVNPorovnat s předchozí verzí. Tímto provedete porovnání mezi revizí před posledním datem odevzdání (který byl zaznamenán ve Vaší pracovní kopii) a pracovním originálem. Zde můžete vidět poslední změny v tomto souboru, které ho přivedly do stavu, který vidíte ve Vaší pracovní kopii. Nikdy nezobrazí změny novější než ty ve Vaší pracovní kopii.

Rozdíl mezi dvěma předchozími revizemi

Pokud chcete vidět rozdíly mezi dvěma revizemi, které jsou již odevzdané, použijte dialogové okno Záznam Revizí a vyberte dvě revize, které chcete porovnat (za použití obvyklých Ctrl-Modifikátor). Pak vyberte z kontextového menu Porovnat revize.

Pokud jste toto provedli ze záznamu revize pro adresář, zobrazí se dialogové okno Porovnat Revize, zobrazující seznam změněných souborů v tomto adresáři. Přečtěte si více na „Porovnávání adresářů“.

Všechny změny provedené v odevzdání

Pokud chcete vidět změny provedené ve všech souborech v určité revizi zobrazené najednou, můžete použít výstup sjednoceného rozdílu (záplata formátu GNU). Ukazuje pouze rozdíly s několika řádky kontextu. Je těžší číst než vizuální porovnání souborů, ale zobrazí všechny změny dohromady. V dialogovém okně Záznam Revizí vyberte revizi, kterou chcete a zvolte Zobrazit Rozdíly jako Jednotnou změnu v kontextovém menu.

Rozdíl mezi soubory

Pokud chcete vidět rozdíly mezi dvěma různými soubory, můžete to udělat přímo v Průzkumníku výběrem obou souborů (pomocí obvyklých Ctrl-Modifikátor). Pak z kontextové nabídky Průzkumníka zvolte TortoiseSVNPorovnat.

Pokud soubory pro porovnání se nenacházejí ve stejné složce, použijte příkaz TortoiseSVNPorovnat později pro označení prvního souboru pro porovnání, pak přejděte k druhému souboru a použijte TortoiseSVNPorovnat s "cesta/k/označenému/souboru". Pro odstranění označení souboru použijte znovu příkaz TortoiseSVNPorovnat později, ale nyní spolu s kliknutím podržte klávesu Ctrl.

Rozdíl mezi souborem/adresářem pracovní kopie a URL

Pokud chcete vidět rozdíly mezi souborem ve Vaší pracovní kopii a souborem v jakémkoli Subversion úložišti, můžete to provést přímo v Průzkumníkovi vybráním souboru a přidržením klávesy Shift při kliknutí pravým tlačítkem myši pro získání kontextového menu. Vybrerte TortoiseSVNPorovnat s URL. Toto můžete udělat i pro adresář pracovní kopii. TortoiseMerge zobrazí tyto rozdíly stejným způsobem, jako zobrazuje soubor záplaty - seznam změněných souborů které si můžete prohlédnout jeden po druhém.

Rozdíl v informacích o obvinění

Pokud chcete vidět nejenom rozdíly ale také autory, revize a data, kdy byly změny provedeny, můžete spojit hlášení o porovnání a obvinění v rámci dialogového okna záznamu revizí. Přečtěte si „Obvinit Rozdíly“ pro další podrobnosti.

Rozdíl mezi adresáři

Vestavěné nástroje dodávané s TortoiseSVN nepodporují porovnávání rozdílů mezi hierarchií adresářů. Ale pokud máte externí nástroj, který podporuje tuto funkci, můžete ho místo něj použít. V „Externí Nástroje Porovnání/Sloučení“ Vám řekneme o některé nástroje, které jsme používali.

Pokud máte nastaven porovnávací nástroj třetí osoby, můžete použít Shift při výběru příkazu Porovnat pro použití jiného nástroje. Přečtěte si „Nastavení Externího Programu“ k zjištění ke konfiguraci dalších nástrojů porovnání.

Možnosti konců řádků a mezer

Někdy v životě projektu byste mohli změnit konce řádků z CRLF na LF, nebo můžete změnit odsazení sekce. Bohužel to bude znamenat velký počet změněných řádků, i když nedojde k žádné změně ve významu tohoto kódu. Možnosti zde Vám pomůžou zvládnout tyto změny, pokud jde o srovnání a použití rozdílů. Tato nastavení jsou v dialogových oknech Sloučit a Obvinit, stejně jako v nastavení TortoiseMerge.

Ignorovat konce řádků vyřadí změny, které jsou pouze z důvodu rozdílu stylu v konci řádků.

Porovnat mezery zahrnuje všechny změny v odsazení a mezer za sebou jako přidané/odstraněné řádky.

Ignorovat změny mezer vyřadí změny, které jsou pouze z důvodu změny množství nebo druhu mezer, např. změna odsazení nebo změna tabulátorů na mezery. Přidání mezery tam, kde předtím nebyla nebo úplné odstranění mezery se stále zobrazí jako změna.

Ignorovat všechny mezery vyřadí všechny změny způsobené mezerami.

Samozřejmě, že jakýkoli řádek se změněným obsah je vždy zahrnut v porovnání.

Porovnávání adresářů

Obrázek 4.29. Dialogové okno Porovnání Revizí

Dialogové okno Porovnání Revizí


Když vyberete dva stromy v průzkumníku úložiště, nebo pokud zvolíte dvě revize adresáře v dialogovém okně záznamů můžete Kontextové menu Porovnat revize.

Toto dialogové okno zobrazí seznam všech souborů, které se změnily, a umožňuje Vám je individuálně porovnat nebo obvinit pomocí kontextového menu.

Můžete exportovat Změny Stromu, což je užitečné, pokud potřebujete poslat někomu jinému Vaši strukturu stromu projektu, obsahující pouze soubory, které se změnily. Tato operace funguje pouze ve vybraných souborech, takže musíte zájmové soubory vybrat - obvykle to znamená, že všechny - a pak Kontextové menuExportovat výběr do.... Budete vyzváni k zadání umístění pro uložení změn stromu.

Můžete také exportovat Seznam změněných souborů do textového souboru pomocí Kontextové menuUložit seznam vybraných souborů do....

Pokud chcete exportovat seznam souborů a činnosti (změněno, přidáno, smazáno), toto můžete také udělat pomocí Kontextové menuVýběr kopírovat do schránky.

Tlačítko v horní části Vám umožní změnit směr srovnání. Můžete ukázat změnám, že se musí dostat z A do B, nebo chcete-li, z B do A.

Tlačítek s čísly revizí lze použít pro změnu na jiný rozsah revize. Když změníte rozsah, seznam položek, které se liší mezi dvěma revizemi, bude automaticky aktualizován.

Pokud je seznam souborů velmi dlouhý, můžete použít vyhledávací pole k snížení seznamu souborů obsahujících určitý text. Nezapomeňte, že se používá jednoduché textové vyhledávání, takže pokud chcete omezit seznam na zdrojové souborů C, měli byste zadat .c raději než *.c.

Porovnávání snímků pomocí TortoiseIDiff

Je k dispozici mnoho nástrojů k porovnání textových souborů, včetně našeho TortoiseMerge, ale my se často ocitáme v pozici, kdy chceme vidět, jak se také obrázkový soubor změnil. To je důvod, proč jsme vytvořili TortoiseIDiff.

Obrázek 4.30. Prohlížeč porovnání obrázku

Prohlížeč porovnání obrázku


TortoiseSVN Porovnat některý z běžných formátů obrázkového souboru spustí TortoiseIDiff zobrazující grafické rozdíly. Ve výchozím nastavení jsou obrázky zobrazeny vedle sebe, ale můžete použít menu Zobrazení nebo panelu nástrojů a místo toho přejít na zobrazení pod sebou nebo pokud chcete, můžete obrázky překrýt a předstírat, že používáte lightbox.

Samozřejmě můžete také přibližovat a oddalovat a posouvat obraz. Můžete také posunout obraz jednoduše táhnutím. Pokud zvolíte volbu Spojit obrázky dohromady, pak ovládání posunutí (posuvníky, kolečko myši) jsou na obou obrazcích propojeny.

Okno informací o obrázku zobrazuje detaily o obrázkovém souboru, jako je velikost v pixelech, rozlišení a barevná hloubka. Pokud Vám tento rámeček překáží, použijte ZobrazitInformace o obrázku pro jeho skrýtí. Stejné informace můžete získat v popisku, pokud podržíte myš nad záhlavím názvu obrázku.

Když jsou překryty obrázky, je relativní intenzita obrazů (částečná průhlednost) kontrolovaná posuvníky na levé straně. Můžete kliknout na libovolné místo v posuvník pro nastavení průhlednosti přímo, nebo můžete táhnutím posuvníku změnit průhlednost interaktivně. Ctrl+Shift-Kolečko k změnění průhlednosti.

Tlačítko nad posuvníkem přepíná mezi 0% a 100% průhledností, a pokud dvakrát kliknete na tlačítko, průhlednost se automaticky bude přepínat každou sekundu, dokud na tlačítko znovu nekliknete. To může být užitečné, když hledáte více malých změn.

Někdy chcete vidět rozdíly spíše než průhlednost. Možná máte dvě revize obrazovkových souborů vytištěné obvodové desky a chcete vidět, které spoje se změnily. Pokud zakážete prolnutí částečné průhlednosti, rozdíl bude zobrazena jako XOR barevných hodnot pixelu. Nezměněné oblasti budou čistě bílé a změny budou vybarvené.

Porovnávání Dokumentů Office

Když chcete porovnat netextové dokumenty, normálně musíte použít software sloužící k vytvoření dokumentu protože rozumí formátu souboru. Pro běžně používané sady Microsoft Office a Open Office skutečně existuje nějaká podpora pro zobrazování rozdílů a TortoiseSVN obsahuje skripty k jejich vyvolání se správným nastavením při porovnání souborů se známými příponami souborů. Můžete zkontrolovat, které přípony souborů jsou podporovány a přidat vlastní tím, že půjdete do TortoiseSVNguimenu>Nastavenguimenuitem>menuchoice> a kliknutPokroguibutton> v sekci Externguilabel> sekci.

Problémy s Office 2010

Pokud jste nainstalovali verzi Klikněte pro Spuštěníemphasis> Office 2010 a pokusSouquote> Zd

Externí Nástroje Porovnání/Sloučení

Pokud nástroje, které Vám poskytujeme, nedělají to, co potřebujete, zkuste některý z mnoha open-source nebo komerčních programů, které jsou k dispozici. Každý má své oblíbence a tento seznam není v žádném případě úplný, ale tady je několik, které byste mohli brát v úvahu:

WinMerge

WinMerge is a great open-source diff tool which can also handle directories.

Perforce Merge

Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce.

KDiff3

KDiff3 je bezplatný nástroj pro porovnání, který pracuje i s adresáři. Můžete si jej stáhnout zde.

Sloučení/Rozdíl SourceGear

SourceGear Vault is a commercial RCS, but you can download the diff/merge tool for free. Get more information from SourceGear.

ExamDiff

ExamDiff Standard je freeware. Je možné pracovat se soubory, ale i s adresáři. ExamDiff Pro je shareware a přidává řadu lahůdek včetně porovnání adresářů a editační funkce. V obou příchutích, verze 3.2 a vyšší zvládne unicode. Můžete si je stáhnout z PrestoSoft.

Beyond Compare

Similar to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from Scooter Software.

Araxis Merge

Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis.

Přečtěte si „Nastavení Externího Programu“ pro Informace o tom, jak nastavit TortoiseSVN k používání těchto nástrojů.

Přidání nových souborů a adresářů

Obrázek 4.31. Kontextové menu průzkumníka pro soubory bez verze

Kontextové menu průzkumníka pro soubory bez verze


Pokud jste vytvořili nové soubory a/nebo adresáře během Vašeho vývojového procesu, budete je muset také přidat do správy zdroje. Vyberte soubor(y) a/nebo adresáře a zvolte TortoiseSVNPřidat.

Po přidání souborů a adresářů do správy zdroje se soubor zobrazí překrytím ikony přidáno, což znamená, že musíte nejprve odevzdat Vaši pracovní kopii, aby tyto soubory a adresáře byli k dispozici ostatním vývojářům. Přidání souboru/adresáře nemá vliv na úložiště!

Mnoho přidání

Můžete také použít příkaz Přidat na adresář, který má již verzi. V takovém případě dialogové okno Přidat zobrazí všechny soubory bez verze uvnitř adresáře s verzí. To Vám pomůže, pokud máte mnoho nových souborů a je třeba přidat všechny najednou.

Chcete-li přidat soubory mimo Vaši pracovní kopii, můžete použít obslužnou rutinu táhni a pusť:

  1. vyberte soubory, které chcete přidat

  2. přetáhněte je pravým tlačítkem myši do nového umístění uvnitř pracovní kopie

  3. pusťte pravé tlačítko myši

  4. zvolte Kontextové menu SVN Přidat soubory do této pracovní kopie. Soubory pak budou zkopírovány do pracovní kopie a přidány do správy verzí.

Můžete také přidat soubory uvnitř pracovní kopie jednoduše tažením levého tlačítka myši do dialogového okna odevzdání.

Přidáte-li soubor nebo adresář omylem, můžete přidání vzít zpět před odevzdáním použitím TortoiseSVNVrátit Přidání....

Kopírování/Přesun/Přejmenování Souborů a Adresářů

Často se stává, že již máte soubory, které potřebujete v jiném projektu v úložišti a vy je prostě chcete zkopírovat. Jednoduše by se mohli zkopírovat a přidat, jak je popsáno výše, ale to by Vám nedalo žádnou historii. A pokud následně opravíte chybu v původních souborech, můžete sloučit opravu automaticky pouze, pokud je nová kopie podobná originálu v Subversion.

Nejjednodušší způsob, jak kopírovat soubory a adresáře v rámci pracovní kopie je použít menu táhnutí pravým tlačítkem. Když táhnete pravým tlačítkem soubor nebo adresář z jedné pracovní kopie do druhé, nebo dokonce ve stejném adresáři, po uvolnění tlačítka myši se zobrazí kontextové menu.

Obrázek 4.32. Menu táhnutí pravým tlačítkem pro adresář pod správou verzí

Menu táhnutí pravým tlačítkem pro adresář pod správou verzí


Nyní můžete zkopírovat stávající obsah s verzí na nové místo i ho přejmenovat najednou.

Můžete také kopírovat nebo přesouvat soubory v adresářích do pracovní kopie, nebo mezi dvěma pracovními kopiemi, pomocí známé metody vyjmout a vložit. Použijte standardní Windows Kopírovat nebo Vyjmout ke zkopírování jedné nebo více položek s verzí do schránky. Pokud schránka obsahuje takové položek s verzí, můžete pak použít TortoiseSVNVložit (Poznámka: ne standardní Windows Vložit) ke zkopírování nebo přesunu položek do nového umístění v pracovní kopii.

Můžete kopírovat soubory a adresáře z Vaší pracovní kopie na jiné místo v úložišti pomocí TortoiseSVNVětev/Značka. Viz „Vytvoření Větve nebo Značky“ pro více informací.

Můžete si najít starší verzi souboru nebo adresáře v dialogovém okně Záznamu a zkopírovat jej do nového umístění v úložišti přímo z dialogového okna Záznamu pomocí Kontextové menuVytvořit větev/značku z revize. Pro více informací si přečtěte „Získání dodatečných informací“.

Můžete také použít průzkumníka úložiště k nalezení obsahu, který chcete a zkopírovat jej do Vaší pracovní kopie přímo z úložiště, nebo kopírovat mezi dvěma místy v rámci úložiště. V „Průzkumník Úložiště“ se dozvíte více.

Nelze kopírovat mezi úložišťmi

Zatímco kopírovat nebo přesouvat soubory a adresáře v rámci úložiště můžete, s pomoci TortoiseSVN nemůžete kopírovat nebo přesouvat z jednoho úložiště na jiné při zachování historie. Ani v případě, že úložiště jsou na stejném serveru. Jediné, co můžete udělat, je zkopírovat obsah v jeho současném stavu a přidat ho jako nový obsah do druhého úložiště.

Pokud si nejste jisti, zda dvě adresy URL na stejném serveru odkazují na stejné nebo různé úložiště, použijte průzkumníka úložiště a otevřete jednu URL, abyste zjistili, kde je kořen úložiště. Pokud vidíte obě místa v jednom okně průzkumníka úložiště, pak jsou ve stejném úložišti.

Ignorování Souborů a Adresářů

Obrázek 4.33. Kontextové menu průzkumníka pro soubory bez verze

Kontextové menu průzkumníka pro soubory bez verze


Ve většině projektů budete mít soubory a adresáře, které by neměly být zahrnuty do správy verzí. To můžou být soubory vytvořené kompilátorem, *.obj, *.lst, či výstupní adresář pro uložení spustitelných souborů. Kdykoliv odevzdáte změny, TortoiseSVN zobrazuje Vaše soubory bez verze, které naplní seznam souborů v dialogovém okně odevzdání. Samozřejmě můžete vypnout tento displej, ale pak můžete zapomenout přidat nový zdrojový soubor.

Nejlepší způsob, jak se těmto problémům vyhnout, je přidat nepůvodní soubory do seznamu ignorovaných v projektu. Tak se nikdy neobjeví v dialogovém okně, ale skutečný zdrojový soubor bez verze bude stále označen.

Pokud kliknete pravým tlačítkem myši na jeden soubor bez verze a vyberete příkaz TortoiseSVNPřidat do seznamu k ignorování z kontextového menu, bude zobrazeno podmenu, umožňující Vám vybrat právě tento soubor, nebo všechny soubory stejného typu. Obě podmenu také mají možnost (rekurzivně). Pokud vyberete více souborů, není žádné dílčí menu a můžete přidat jen zvolené soubory nebo adresáře.

Pokud zvolíte (rekurzivní) verzi kontextového menu pro ignorování, nebude ignorována pouze zvolená složka, ale také její podsložky. Toto ale vyžaduje SVN klienty s verzí 1.8 nebo vyšší.

Pokud chcete odebrat jednu nebo více položek ze seznamu ignorovaných, klikněte pravým tlačítkem myši na tyto položky a vyberte možnost TortoiseSVNOdstranit ze seznamu ignorování Můžete také vstoupit do vlastností svn:ignore adresáře přímo. To Vám umožní zadat obecnější vzorce pomocí globálního listu, který je popsán v následující části. Přečtěte si „Nastavení projektu“ pro více informací o nastavení vlastností přímo. Uvědomte si prosím, že každá předloha ignorování musí být uvedena na samostatném řádku. Oddělení mezerou nefunguje.

Globální seznam ignorovaných

Dalším způsobem, jak ignorovat soubory, je přidat je do globálního seznamu ignorování . Velký rozdíl je, že globální seznam ignorování je vlastnost klienta. To se vztahuje na všechny projekty Subversion, ale pouze na počítači klienta. Obecně je lepší použít vlastnost svn:ignore, kde je možné, protože může být aplikována na konkrétní oblasti projektu a funguje pro každého, kdo získá projekt. Přečtěte si „Obecná nastavení“ pro více informací.

Ignorování položek s verzí

Soubory s verzí a adresáře nikdy nemůžou být ignorovány - to je rys Subversion. Pokud přidáte verzi souboru omylem, přečtěte si „Ignorovat soubory, které už mají verzi“ pro postup, jak mu verzi odstranit.

Shoda vzorů v seznamech k Ignorování

Vzory ignorování v Subversion využívají globbing souborů, technika, původně používaná v Unixu, určující soubory pomocí metaznaků jako zástupné znaky. Následující znaky mají speciální význam:

*

Jakýkoliv řetězec znaků, včetně prázdného řetězec (žádný znak).

?

Jeden libovolný znak.

[...]

Shoda s některým ze znaků uzavřených v hranatých závorkách. Pokud je v závorce pár znaků oddělen - znamená libovolný znak shodující se abecedně mezi těmito dvěma znaky. Například [AGm-p] odpovídá všem A, G, m, n, o nebo p.

Shoda vzorů je citlivá na velikost písmen, což může způsobit problémy v systému Windows. Můžete vynutit necitlivost těžším způsobem tak, že tvrdě spárujete znaky, např. k ignorování *.tmp bez ohledu na velikost, můžete použít jako vzor *.[Tt][Mm][Pp].

Pokud chcete oficiální definici globbingu, najdete ji v IEEE specifikaci pro příkazový jazyk rozhraní Zápis shody vzorů.

Žádné Cesty v Globálním Seznam k Ignorování

Do Vašeho vzoru byste neměli zahrnovat informace o cestě. Shoda vzoru je určena k použití na prosté názvy souborů a adresářů. Pokud chcete ignorovat všechny adresáře CVS, stačí přidat CVS do seznamu k ignorování. Není nutné specifikovat CVS */CVS jako v předchozích verzích. Pokud chcete ignorovat všechny adresáře tmp, které se nacházejí v adresáři prog, ale ne v adresáři doc měli byste místo toho použít vlastnost svn:ignore. Neexistuje žádný spolehlivý způsob, jak tohoto dosáhnout pomocí globálních vzorů k ignorování.

Mazání, Přesunutí a Přejmenování

Subversion umožňuje přejmenování a přesun souborů a adresářů. Takže v menu TortoiseSVN existují volby pro smazání a přejmenování.

Obrázek 4.34. Kontextové menu průzkumníka pro soubory s verzí

Kontextové menu průzkumníka pro soubory s verzí


Smazání souborů a adresářů

Použijte TortoiseSVNSmazat k odstranění souborů nebo adresářů z Subversion.

Pokud zvolíte TortoiseSVNOdstranit je soubor či adresář okamžitě odstraněn z Vaší pracovní kopie, také je označen v úložišti k odstranění při příštím odevzdání. Nadřazený adresář položky ukazuje překryv smazáno. Dokud změnu neodevzdáte, můžete soubor získat zpět pomocí TortoiseSVNVrátit použitím na nadřazený adresáři.

Pokud chcete vymazat položku z úložiště, ale ponechat si ji místně jako soubor/adresář bez verze, použijte Rozšířené Kontextové menuSmazat (ponechat místní). Musíte držet klávesu Shift, při klikání pravým tlačítkem myši na položku v panelu se seznamem v průzkumníku (pravý panelu), aby toto rozšířené kontextové menu bylo vidět.

Pokud je položka smazána přes průzkumníka místo pomocí kontextového menu TortoiseSVN, dialogové okno odevzdání tyto položky zobrazí a umožňuje je také odstranit ze správy verzí před odevzdáním. Nicméně pokud aktualizujete Vaši pracovní kopii, Subversion si všimne chybějící položky a nahradí ji nejnovější verzi z úložiště. Pokud potřebujete odstranit soubor spravovaný verzí, vždy použijte TortoiseSVNSmazat, aby Subversion nemusel hádat, co opravdu chcete udělat.

Získání smazaného souboru nebo adresáře zpět

Pokud jste smazali soubor nebo adresář a již jste odevzdali operace odstranění do úložiště, pak normální TortoiseSVNVrátit už ho vrátit zpátky nedovede. Ale soubor nebo adresář vůbec není ztracen. Pokud víte, v které revizi soubor nebo adresář byl odstraněn (pokud nevíte, použijte dialogové okno Záznamu), otevřete průzkumníka úložiště a přejděte na tuto revizi. Pak vyberte odstraněný soubor nebo adresář, klikněte na něj pravým tlačítkem myši a zvolte Kontextové menuKopírovat do... s jako cíl této operace vyberte cestu k Vaší pracovní kopii.

Přesouvání souborů a adresářů

Pokud chcete udělat jednoduché přejmenování souboru nebo adresáře na místě, použijte Kontextové menu Přejmenovat..., zadejte nový název položky a je hotovo.

Pokud chcete přesouvat soubory uvnitř Vaší pracovní kopie, možná do jiného podadresáře použijte obslužnou rutinu táhni a pusť:

  1. vyberte soubory nebo adresáře, které chcete přesunout

  2. přetáhněte je pravým tlačítkem myši do nového umístění uvnitř pracovní kopie

  3. pusťte pravé tlačítko myši

  4. v místní nabídce vyberte Kontextové menu SVN Přesunout soubory s verzí sem

Odevzdat nadřazený adresář

Vzhledem k tomu, že přejmenování a přesunování se provádí jako smazání následováno přidáním, musíte odevzdat nadřazený adresář přejmenovaného/přesunutého souboru tak, aby smazaná část přejmenování/přesunutí se objeví v dialogovém okně odevzdání. Pokud neodevzdáte odstraněnou část přejmenovat/přesunutí, zůstane v úložišti, a když Vaši spolupracovníci budou aktualizovat starý soubor nebude odstraněn. tedy budou mít obě kopie, starou i novou.

Musíte odevzdat přejmenovaný adresář před změnou některých souborů uvnitř adresáře, jinak Vaše pracovní kopie může být velmi neuspořádaná.

Dalším způsobem, jak přesunout nebo zkopírovat soubory je použit Windows příkazy kopírovat/vyjmout. Vyberte soubory, které chcete zkopírovat, klepněte na ně pravým tlačítkem a zvolte Kontextové menuKopírovat z kontextového menu průzkumníka. Pak přejděte do cílového adresáře, klikněte pravým tlačítkem myši a zvolte TortoiseSVNVložit. Pro přesunutí souborů, zvolte Kontextové menuVyjmout místo Kontextové menuKopírovat.

Můžete také použít průzkumníka úložiště pro přesun předmětů po okolí. Přečtěte si „Průzkumník Úložiště“ a dozvíte se více.

SVN Nepřesouvat externí

Neměli byste používat TortoiseSVN příkazy Přesunout nebo Přejmenovat na adresář, který byl vytvořen pomocí svn:externals. Tato akce by způsobila, že vnější položky jsou smazány z jejich nadřazeného úložiště. Tím pravděpodobně rozčílíte mnoho dalších lidí. Pokud potřebujete přesunout externí adresář, měli byste použít obyčejný přesun v rozhraní a poté nastavit vlastnost svn:externals v nadřazených adresářích zdroje a určení.

Řešení konfliktů v názvech souborů

Pokud úložiště již obsahuje dva soubory se stejným názvem, lišící se pouze velikostí písmen, (např. Test.txt a test.txt), nebudete moci aktualizovat nebo získat nadřazený adresář s Windows klientem. Zatímco Subversion podporuje názvy souborů s různou velikostí písmen, systém Windows ne.

Někdy se tak stane, že dva lidé odevzdají, z oddělených pracovních kopií, soubory, které náhodou mají stejný název, ale jinou velikost písmen. Také se může stát, že soubory jsou odevzdány ze systému se souborovým systémem, rozlišující velikost písmen, jako je Linux.

V tomto případě budete muset rozhodnout, který z nich v úložišti chcete zachovat a který smazat (nebo přejmenovat).

Zabránit souborům mít stejný název

There is a server hook script available at: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ that will prevent checkins which result in case conflicts.

Oprava Přejmenování Souborů

Někdy Vaše přátelské IDE přejmenuje pro Vás soubory jako součást cvičení refaktorování a samozřejmě nic Subversion neřekne. Pokusíte-li se odevzdat změny, Subversion uvidí staré jméno souboru jako chybějící a ten nový jako soubor bez verze. Stačilo by jen zaškrtnout nový název souboru, aby byl přidán, ale pak byste ztratili sledování historie, protože Subversion neví, že soubory spolu souvisejí.

Lepší způsob je oznámit Subversion, že tato změna je vlastně přejmenování. To můžete udělat v rámci dialogových oken Odevzdání a Zjistit změny. Stačí jen vybrat starý název (chybějící) i nové jméno (bez verze) a použit Kontextové menuOpravit přesun pro spárování souborů jako přejmenování.

Smazání souborů bez verze

Obvykle nastavíte Váš seznam k ignorování tak, že všechny vytvořené soubory jsou v Subversion ignorovány. Ale co když chcete vymazat všechny ignorované položky, protože chcete provést čisté sestavení? Obvykle byste toto nastavili v makefile, ale pokud makefile ladíte, nebo měníte sestavovací systém, je užitečné mít způsob jak zamést podlahu.

TortoiseSVN poskytuje právě takovou možnost použitím Rozšířená Kontextové menuSmazat položky bez verze.... Musíte držet Shift při kliknutí pravým tlačítkem na adresář v panel seznamu průzkumníka (pravý panel), aby bylo rozšířené kontextové menu vidět. Toto zobrazí dialogové okno, které vypíše všechny soubory bez verze kdekoli v pracovní kopii. Pak si můžete označit nebo odznačit položky, které mají být smazány.

Při mazání těchto položek je použít koš, takže pokud zde uděláte chybu a smažete soubor, který měl mít verzi, můžete ho stále obnovit.

Vrátit změny zpět

Pokud chcete zrušit všechny změny provedené v souboru od poslední aktualizace, je nutné vybrat soubor, klikněte pravým tlačítkem myši pro zobrazení kontextového menu a vyberte příkaz TortoiseSVNVrátit. Objeví se dialogové okno zobrazující soubory, které jste změnili a může být vráceny. Vyberte ty, které chcete vrátit a klikněte na OK.

Obrázek 4.35. Dialogové okno Vrátit

Dialogové okno Vrátit


Pokud chcete také vyčistit všechny nastavené seznamy změn, zaškrtněte políčko na konci dialogového okna.

Pokud chcete zrušit smazání nebo přejmenování, musíte použít Vrátit na nadřazenou složku, protože odstraněná položka neexistuje, abyste na ní mohli kliknout pravým tlačítkem myši.

Pokud chcete přidání položky vrátit zpět, v kontextovém menu se toto zobrazí jako TortoiseSVNVrátit zpět přidání.... Toto je také vrácení, ale jméno bylo změněno, aby to bylo více zřejmé.

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.

Vzhledem k tomu, že vrácení se někdy používá na vyčištění pracovní kopie, je zde navíc tlačítko, které umožňuje odstranit také položky bez verze. Po klepnutí na toto tlačítko se zobrazí další dialogové okno s výpisem všech položek bez verze, které pak můžete vybrat ke smazání.

Vrácení Změn, které byly odevzdány, zpět

Vrátit Vráti zpět pouze místní změny. Nevrací zpět změny, které již byly odevzdány. Pokud chcete vrátit zpět všechny změny, které byly odevzdány v určité revizi, prohlédněte si „Dialogové Okno Záznamu Revizí“ pro další informace.

Vrácení je pomalé

Když vracíte změny můžete zjistit, že operace trvá mnohem déle, než očekáváte. Důvodem je, že upravená verze souboru je poslána do koše, takže můžete znovu změny načíst, pokud jste je omylem vrátili. Pokud ale je Váš Koš plný, systému Windows trvá dlouho najít místo pro uložení souboru. Řešení je jednoduché: buď vysypat koš, nebo odškrtnout políčko Při vracení zpět použít odpadkový koš v nastavení TortoiseSVN.

Vyčistit

Pokud příkaz Subversion nemůže být úspěšně dokončen, třeba kvůli problémům serveru, může Vaše pracovní kopie zůstat v rozporuplném stavu. V takovém případě je třeba použít na adresář TortoiseSVNVyčistit. Je dobrý nápad toto provádět na nejvyšší úrovni v pracovní kopii.

Obrázek 4.36. Dialogové okno Vyčištění

Dialogové okno Vyčištění


V dialogovém okně vyčištění existují i další užitečné možnosti, abyste pracovní kopii dostali do vyčištěného stavu.

Vyčistit stav pracovní kopie

Jak je uvedeno výše, tato možnost se snaží dostat pracovní kopii v rozporu do práceschopného a použitelného stavu. Toto nemá žádný vliv na data, která máte, ale pouze na vnitřní stavy databáze pracovní kopie. Toto je ve skutečnosti příkaz Vyčistit, který znáte ze starších klientů TortoiseSVN nebo jiných klientů SVN.

Rozbít zámky zápisu

Při zaškrtnutí jsou všechny zámky pro zápis odstraněny z databáze pracovní kopie. Ve většině situací je toto nutné pro správně fungování vyčištění.

Tuto možnost odškrtněte pouze pokud ve stejnou dobu tuto pracovní kopii využívají ostatní uživatelé/klienti. Ale pokud vyčištění selže, musíte tuto volbu zaškrtnout.

Spravit časová razítka

Adjusts the recorded time stamps of all files, speeding up future status checks. This can speed up all dialogs that show working copy file lists, for example the Commit dialog.

Vyčistit původní kopie

Odstraní nepoužité původní kopie a zkomprimuje všechny zbývající původní kopie souborů pracovní kopie.

Obnovit překryvy rozhraní

Někdy překryvy rozhraní, zejména na stromovém zobrazení vlevo v průzkumníkovy, neukazuje aktuální stav, nebo úschova stavu nerozeznala změny. V této situaci můžete použít tento příkaz, abyste vynutili aktualizaci.

Zahrnout externí

Pokud je toto zaškrtnuto, pak jsou všechny činnosti také provedeny pro všechny soubory a adresáře zahrnuté ve vlastnosti svn:externals.

Smazat soubory a adresáře bez verze, Smazat ignorované soubory a adresáře

Jedná se o rychlý a snadný způsob, jak odstranit všechny vytvořené soubory ve Vaší pracovní kopii. Všechny soubory a adresáře, které nemají verzi jsou přesunuty do koše.

Poznámka: to samé můžete také udělat z dialogového okna TortoiseSVNVrátit. Tam také můžete získat seznam všech souborů a adresářů bez verze, abyste je mohli vybrat k odstranění.

Vrátit všechny změny rekurzivně

Tento příkaz vrátí všechny Vaše místní změny, které jste ještě neodevzdali.

Poznámka: je lepší místo toho použít příkaz TortoiseSVNVrátit, protože tam můžete nejprve vidět a vybrat soubory, které chcete vrátit.

Nastavení projektu

Subversion Vlastnosti

Obrázek 4.37. Stránka Subversion vlastností

Stránka Subversion vlastností


Můžete si přečíst a nastavit Subversion vlastnosti z dialogového okna vlastností v systému Windows, ale také z TortoiseSVNvlastnosti a v seznamech stavu TortoiseSVN, z Kontextové menuvlastnosti.

Můžete přidat vlastní vlastnosti, nebo nějaké vlastnosti se speciálním významem pro Subversion. Tyto začínají s svn:. svn:externals je taková vlastnost; podívejte se, jak ovládat externí v „Externí položky“.

svn:keywords

Subversion podporuje expanzi klíčových slov podobně jako CVS, které lze použít pro vložení informací o souboru a revizi v rámci samotného souboru. Klíčová slova, která jsou v současné době podporována:

$Date$

Datum posledního známého odevzdání. To je založeno na informacích získaných při aktualizaci Vaší pracovní kopie. Nekontroluje nejnovější změny v úložišti.

$Revision$

Revize posledního známého odevzdání.

$Author$

Autor, který provedl poslední známé odevzdání.

$HeadURL$

Úplná adresa URL tohoto souboru v úložišti.

$Id$

Zhuštěná kombinace předchozích čtyř klíčových slov.

Chcete-li zjistit, jak můžete tato klíčová slova využít, podívejte se na sekci svn:keywords v knize Subversion, která obsahuje kompletní popis těchto klíčových slov, jak je povolit a používat.

Pro více informací o vlastnostech v Subversion se podívejte na Zvláštní vlastnosti.

Přidání a Úprava vlastností

Obrázek 4.38. Přidání vlastností

Přidání vlastností


Chcete-li přidat novou vlastnost, klikněte nejdříve na Nový... Vyberte požadovaný název vlastnosti z nabídky a potom vyplňte požadované informace ve zvláštním dialogovém okně vlastností. Tyto specifická dialogová okna vlastností jsou popsány podrobněji v „Editoři vlastností“.

Chcete-li přidat vlastnost, která nemá svoje vlastní dialogové okno, zvolte Pokročilé z menu Nový.... Pak buď vybrat stávající vlastnosti v poli se seznamem nebo zadejte vlastní název vlastnosti.

Pokud chcete použít vlastnost na mnoho položek najednou, vyberte v průzkumníku soubory/adresáře, pak zvolte Kontextové menuvlastnosti.

Pokud chcete použít vlastnost na každý soubor a adresář v hierarchii pod aktuálním adresářem, zaškrtněte políčko Rekurzivní.

Pokud chcete upravit existující vlastnost, vyberte ji ze seznamu existujících vlastností, pak klikněte na Upravit ....

Pokud chcete odstranit existující vlastnost, vyberte ji ze seznamu existujících vlastností, pak klikněte na Odstranit.

Vlastnost svn:externals může být použita ke stáhnutí jiných projektů ze stejného úložiště, nebo úplně jiného úložiště. Pro více informací si přečtěte „Externí položky“.

Upravit vlastnosti v revizi HEAD

Protože vlastnosti mají verzi, nemůžete upravit vlastnosti předchozích revizí. Pokud se podíváte na vlastnosti z dialogového okna Záznamů, nebo z revize, která není HEAD v průzkumníku úložiště, uvidíte seznam vlastností a hodnot, ale žádné nástroje k úpravě.

Export a Import Vlastností

Často se ocitnete, že uplatňujete mnohokrát stejnou sadu vlastností, například bugtraq:logregex. Pro zjednodušení procesu kopírování vlastností z jednoho projektu do druhého, můžete použít funkci Export/Import.

Ze souboru nebo adresáře, kde jsou již nastavené vlastnosti, použijte TortoiseSVNvlastnosti, zvolte vlastnosti, které chcete exportovat a klikněte na Exportovat.... Budete vyzváni k zadání názvu souboru, kde budou názvy vlastností a hodnoty uloženy.

Z adresáře(ů), kde si přejete uplatnit tyto vlastnosti, použijte TortoiseSVNvlastnosti a klikněte na Importovat.... Budete vyzváni k zadání názvu souboru pro import, takže přejděte na místo, kde jste předtím uložili exportovaný soubor a vyberte ho. Vlastnosti budou nerekurzivně přidány do adresáře.

Pokud chcete přidat vlastnosti do stromu rekurzivně, postupujte podle výše uvedených kroků, pak v dialogovém okně vlastností, vyberte postupně vlastnosti, klikněte na Upravit... , zaškrtněte políčko Aplikovat vlastnost rekurzivně a klikněte na OK.

Formát importovaného souboru je binární a vlastnictvím TortoiseSVN. Jeho jediným účelem je přenos vlastností pomocí Importu a Exportu, takže není nutné tyto soubory upravovat.

Binarní vlastnosti

TortoiseSVN zvládne binární hodnoty vlastností použitím souborů. Chcete-li číst binární hodnoty vlastnosti, zvolte Uložit... do souboru. Chcete-li nastavit binární hodnotu, použijte hex editor nebo jiný vhodný nástroj k vytvoření souboru s obsahem, který požadujete, pak Načíst... tento soubor.

Přestože binární vlastnosti nejsou často používány, v některých aplikacích mohou být užitečné. Například pokud ukládáte velké grafické soubory, nebo je-li aplikace pro načtení souboru je obrovská, možná budete chtít uložit miniaturu jako vlastnost, takže můžete rychle získat náhled.

Automatické nastavení vlastnosti

Můžete nastavit Subversion a TortoiseSVN, aby nastavovali vlastnosti souborů a adresářů automaticky, když jsou přidány do úložiště. Existují dva způsoby, jak toho dosáhnout.

Můžete upravit konfigurační soubor Subversion, abyste tuto funkci u vašeho klienta povolili. Stránka Obecné dialogového okna nastavení TortoiseSVN má tlačítko upravit, které Vás tam vezme přímo. Konfigurační soubor je jednoduchý textový soubor, který řídí některé funkce Subersion. Musíte změnit dvě věci: za prvé v části nazvané miscellany vložte řádek enable-auto-props = yes. Za druhé je třeba upravit část níže, abyste určili, které vlastnosti chcete přidat a na které typy souborů. Tato metoda je standardní funkcí Subversion a funguje v jakémkoliv klientovi Subversion. Nicméně musí být určeny v každém klientovi individuálně - neexistuje žádný způsob, jak tato nastavení přenést z úložiště.

Alternativní metodou je nastavit vlastnost tsvn:autoprops v adresáři, jak je popsáno v další části. Tato metoda funguje pouze pro klienty TortoiseSVN, ale je možno šířit je na všechny pracovní kopie při aktualizaci.

Ve verzi Subversion 1.8 a vyšší můžete také nastavit vlastnost svn:auto-props na kořenovou složku. Hodnotu vlastnosti automaticky dědí všechny podřazené položky.

Ať si zvolíte jakoukoli metodu, měli byste si uvědomit, že auto-vlastnosti se vztahují pouze na soubory, v době jejich přidání do pracovní kopie. Auto-vlastnosti nikdy nezmění vlastnosti souborů, které již mají verzi.

Pokud si chcete být naprosto jisti, že nové soubory mají nastaveny správné vlastnosti, měli byste nastavit v úložišti hák před-odevzdáním, který odmítne odevzdání, které nemá požadované vlastnosti nastaveny.

Vlastnosti odevzdání

Vlastnosti Subversion mají verzi. Po změně nebo přidání vlastnosti, musíte Vaše změny odevzdat.

Konflikty vlastností

Pokud existuje konflikt při odevzdání změn, protože jiný uživatel změnil stejnou vlastnost, Subversion vytvoří soubor .prej. Odstraňte tento soubor poté, co jste konflikt vyřešili.

TortoiseSVN Vlastnosti projektu

TortoiseSVN má několik vlastních speciálních vlastností, začínají tsvn:.

  • tsvn:logminsize stanovuje minimální délku zprávy záznamu pro odevzdání. Zadáte-li kratší zprávu, než zde uvedenou, odevzdání je zablokováno. Tato funkce je velmi užitečná, aby Vám připomínala zadat řádnou popisnou zprávu pro každé odevzdání. Pokud tato vlastnost není nastavena, nebo je hodnota nula, prázdné zprávy záznamu jsou povoleny.

    tsvn:lockmsgminsize stanovuje minimální délku zprávy zamknutí. Zadáte-li kratší zpráva zde uvedenou, je zámek zablokován. Tato funkce je velmi užitečná, aby Vám připomněla zadat řádnou popisnou zprávu pro každý zámek, který dostanete. Pokud tato vlastnost není nastavena, nebo je hodnota nula, prázdné zprávy zámknutí jsou povoleny.

  • tsvn:logwidthmarker Používá se pro projekty, které vyžadují, aby zprávy záznamu byly formátovány nějakou maximální šířkou (typicky 80 znaků) před zalomením řádku. Nastavením této vlastnosti na nenulovou hodnotu provede 2 věci v dialogovém okně záznamů: umístí značku pro označení maximální šířky a zakáže zalamování řádků na displeji, takže můžete vidět, zda je text, který jste zadali, příliš dlouhý. Poznámka: tato funkce bude správně fungovat pouze, když máte vybrané písmo s pevnou šířkou vybraných pro zprávy záznamu.

  • tsvn:logtemplate Používá se pro projekty, které mají pravidla o formátování zpráv protokolu. Vlastnost má mnohořádkový textový řetězec, který bude vložen do zprávy odevzdání při spuštění odevzdání. Poté ji můžete upravit tak, aby zahrnovala požadované informace. Poznámka: Pokud také používáte tsvn:logminsize, nezapomeňte nastavit délku delší než šablona nebo ztratíte ochranný mechanismus.

    Existují také specifické akce pro činnosti, které můžete použít místo tsvn:logtemplate. Specifické šablony činností se používají pokud jsou nastaveny, ale tsvn:logtemplate bude použita, pokud žádná specifická šablona činnosti není nastavena.

    Specifické šablony činností jsou:

    • tsvn:logtemplatecommit se používá pro všechny odevzdání z pracovní kopie.

    • tsvn:logtemplatebranch se používá při vytváření větve/značky, nebo při kopírování souborů nebo adresářů přímo v průzkumníku úložiště.

    • tsvn:logtemplateimport se používá pro import.

    • tsvn:logtemplatedelete se používá při mazání položek přímo v průzkumníku úložiště.

    • tsvn:logtemplatemove se používá při přejmenování nebo přesunutí položek v průzkumníku úložiště.

    • tsvn:logtemplatemkdir se používá při vytváření adresářů v průzkumníku úložiště.

    • tsvn:logtemplatepropset se používá při změnění vlastností v průzkumníku úložiště.

    • tsvn:logtemplatelock se používá při získávání zámku.

  • Subversion umožňuje nastavit autovlastnosti, které budou použity na nově přidané nebo importované soubory, na základě přípony souboru. Závisí, jestli má každý klient nastaveny vhodné autovlastnosti v jejich konfiguračním souboru Subversion. tsvn:autoprops lze nastavit pro adresáře a ty pak budou sloučeny s místními autovlastnostmi uživatele při importu nebo přidávání souborů. Formát je stejný jako pro Subversion autovlastnosti, např. *.sh = svn:eol-style=native;svn:executable. stanoví dvě vlastnosti na soubory s příponou .sh.

    Dojde-li ke konfliktu mezi místními autovlastnostmi a tsvn:autoprops, nastavení projektu má přednost, protože jsou pro tento projekt specifické.

    Počínaje Subversion 1.8 byste měli místo vlastnosti tsvn:autoprops začít používat svn:auto-props, protože plní stejnou funkci, ale není vázaná na TortoiseSVN a funguje ve všech klientech svn.

  • V dialogovém okně Odevzdání máte možnost vložit seznam změněných souborů, včetně stavu každého souboru (přidaný, změněný atd.). tsvn:logfilelistenglish definuje, zda je stav souboru vložen v angličtině nebo v lokalizovaném jazyce. Pokud vlastnost není nastavena, je výchozí hodnota pravda.

  • TortoiseSVN can use a spell checker. On Windows 10, the spell checker of the OS is used. On earlier Windows versions, it can use spell checker modules which are also used by OpenOffice and Mozilla. If you have those installed this property will determine which spell checker to use, i.e. in which language the log messages for your project should be written. tsvn:projectlanguage sets the language module the spell checking engine should use when you enter a log message. You can find the values for your language on this page: MSDN: Language Identifiers.

    Tuto hodnotu můžete zadat v desítkové, nebo v šestnáctkové soustavě, pokud má předponu 0x. Například angličtina (US) může být zapsána buď jako 0x0409 nebo 1033.

  • Vlastnost tsvn:logsummary se používá pro získání zprávy protokolu, která je pak uvedena v dialogovém okně záznamů jako souhrn zpráv záznamů.

    Hodnoty vlastnosti tsvn:logsummary musí být nastavena na jeden řádek řetězce regulárního výrazu, který obsahuje jednu skupinu regulárního výrazu. Cokoliv se shoduje s touto skupinou, bude použito jako shrnutí.

    Příklad: \[Souhrn\]:\s+(.*) zachytí všechno, co je po [Souhrn] ve zprávách záznamů a použít je jako souhrn.

  • Vlastnost tsvn:logrevregex definuje regulární výraz, porovnávající zmínky o revizích ve zprávách záznamů. Toto je použito v dialogovém okně záznamů, kde se tyto zmínky změní na odkazy, které po kliknutí buď přejedou na tuto revizi (v případě, že revize je již uvedeno v dialogovém okně záznamů, nebo pokud je k dispozici z úschovy záznamů), nebo otevřít nové dialogové okno záznamů zobrazující tuto revizi.

    Regulární výraz musí odpovídat celé zmínce, ne jen číslu revize. Číslo revize je extrahováno ze shodujícího se řetězce zmínky automaticky.

    Pokud tato vlastnost není nastavena, je použit výchozí regulární výraz k propojení zmínek o revizích.

  • Existuje několik vlastností pro nastavení hákových skriptů na straně klienta. Každá vlastnost je pro jeden určitý typ hákového skriptu.

    Dostupné vlastnosti/hákové skripty jsou

    • tsvn:startcommithook
    • tsvn:precommithook
    • tsvn:postcommithook
    • tsvn:startupdatehook
    • tsvn:preupdatehook
    • tsvn:postupdatehook
    • tsvn:prelockhook
    • tsvn:postlockhook

    Parametry jsou stejné jako kdybyste nastavovali hákové skripty v dialogovém okně nastavení. Pro více informací se podívejte na „Hákové Skripty na Straně Klienta“.

    Protože ne každý uživatel má svoji pracovní kopii získánu ve stejném umístění a se stejným názvem, můžete nastavit skript/nástroj pro spuštění, který je umístěn ve Vaší pracovní kopii určením URL v úložišti místo použití %REPOROOT jako součást URL kořene úložiště. Například, pokud Váš hákový skript je ve Vaší pracovní kopii umístěn ve contrib/hook-scripts/client-side/checkyear.js, pak byste cestu ke skriptu určili jako %REPOROOT%/trunk/contrib/hook-scripts/client-side/checkyear.js. Takto nemusíte upravovat vlastnosti skriptu i když bude Vaše úložiště přesunuto na jiný server.

    Místo %REPOROOT% můžete také zadat %REPOROOT+%. + je použito ke vložení jakéhokoliv množství potřebných cest ke složkám, kde nalézt skript. To se hodí, když chcete zadat svůj skript a stále ho používat, i když vytvoříte větev a url pracovní kopie je tím pádem jiná. Použitím příkladu výše můžete zadat cestu ke skriptu jako %REPOROOT+%/contrib/hook-scripts/client-side/checkyear.js.

    Následující snímek obrazovky zobrazuje jak je nastaven skript pro TortoiseSVN kontrolující současná léta autorského práva v hlavičkách zdrojového souboru.

    Obrázek 4.39. Dialogové okno vlastností pro hákové skripty

    Dialogové okno vlastností pro hákové skripty


  • Když chcete přidat nové vlastnosti, můžete je buď vybrat ze seznamu v rámečku, nebo můžete zadat jakékoli jméno vlastnosti, které se Vám líbí. Pokud Váš projekt používá nějaké vlastní vlastnosti a chcete, aby se tyto vlastnosti objevili v seznamu v rámečku (aby se předešlo překlepům, když zadáváte název vlastnosti), můžete vytvořit seznam Vašich vlastních vlastností pomocí tsvn:userfileproperties a tsvn:userdirproperties. Použijte tyto vlastnosti na adresář. Když pak upravujete vlastnost každé podřazené položky, budou Vaše uživatelské vlastnosti uvedeny v seznamu přednastavených názvů vlastností.

    Můžete také určit, zdali bude použit vlastní dialogové okno při přidávání/úpravě Vaší vlastnosti. TortoiseSVN nabízí čtyři různá okna, v závislosti na typu Vaší vlastnosti.

    bool

    Pokud Vaše vlastnost může míst pouze dva stavy např.: pravda a nepravda, pak můžete nastavit Vaši vlastnost jako typ bool.

    Obrázek 4.40. Dialogové okno vlastností uživatelských booleanských typů

    Dialogové okno vlastností uživatelských booleanských typů


    Určete Vaši vlastnost takto:

    propertyname=bool;textštítku(HODNOTAANO;HODNOTENE;textpolíčka)

    textštítku je text, zobrazený v dialogovém okně nad zaškrtávacím políčkem, kde můžete vysvětlit smysl a použití této vlastnosti. Ostatní parametry by nemělo být třeba vysvětlovat.

    state

    Pokud Vaše vlastnist představuje jeden z možných stavů, např.: ano, ne, možná, pak můžete nastavit Vaší vlastnost jako state

    Obrázek 4.41. Dialogové okno vlastností uživatelských stavových typů

    Dialogové okno vlastností uživatelských stavových typů
    Dialogové okno vlastností uživatelských stavových typů
    Dialogové okno vlastností uživatelských stavových typů


    takto:

    propertyname=state;texštítku(VÝCHHOD;HOD1;TEXT1;HOD2;TEXT2;HOD3;TEXT3;...)

    Parametry jsou stejné jako pro vlastnost bool a VÝCHHOD je výcohzí hodnota, která bude použita, když vlastnost, nebo hodnota, kterou vlastnost má, ještě není nastavena.

    Pro až tři různé hodnoty, dialogové okno zobrazuje až tři přepínací tlačítka. Pokud je nastaveno více hodnot, používá rozbalovací seznam, odkud uživatel může zvolit požadovaný stav.

    singleline

    Pro vlastnosti, které se skládají z jednoho řádku textu, použijte typ vlastnosti singleline:

    Obrázek 4.42. Dialogové okno vlastností uživatelských jednořádkových typů

    Dialogové okno vlastností uživatelských jednořádkových typů


    propertyname=singleline;textštítku(regex)

    regex určuje regulární výraz, který je použit k ověření (shodě) textu zadaného uživatelem. Pokud se text neshoduje s výrazem neshoduje, pak je uživateli zobrazena chyba a vlastnost není nastavena.

    multiline

    Pro vlastnosti, které se skládají z mnoha řádků textu, použijte typ vlastnosti multiline:

    Obrázek 4.43. Dialogové okno vlastností uživatelských víceřádkových typů

    Dialogové okno vlastností uživatelských víceřádkových typů


    propertyname=multiline;ltextštítku(regex)

    regex určuje regulární výraz, který je použit k ověření (shodě) textu zadaného uživatelem. Nezapomeňte zadat znak nového řádku (\n) v řetězci

    Snímky obrazovky výše byly vytvořeny pomocí následujících tsvn:userdirproperties:

    moje:vlastbool=bool;Toto je vlastnost typu bool. Buď ji zaškrtněte, nebo odškrtněte.(true;false;Moje vlastnost bool)
    moje:vlaststav1=state;Toto je stavová vlastnost. Vyberte jeden ze dvou stavů.(true;true;Hodnota pravda;false;Hodnota nepravda)
    moje:vlaststav2=state;Toto je stavová vlastnost. Vyberte jeden ze tří stavů.(maybe;true;Odpověď je správně;false;Odpověď je špatně;maybe;Nezodpovězeno)
    moje:vlaststav3=state;Určete den pro nastavení této vlastnosti.(1;1;Pondělí;2;Úterý;3;Středa;4;Čtvrtek;5;Pátek;6;Sobota;7;Neděle)
    moje;jednořádkovávlast=singleline;Zadejte krátký komentář(.*)
    moje:mnohořádkovávlast=multiline;Zde můžete ze scránky vložit celou kapitolu(.*)
           

TortoiseSVN je možné integrovat s některými nástroji pro sledování chyb. Využívá se vlastností projektu, které začínají bugtraq:. Přečtěte si „Integrace se Systémy pro Sledování Chyb/Problémů“ pro další informace.

Také jej můžete integrovat s některými on-line průzkumníky úložiště, pomocí vlastností projektu, které začínají webviewer:. Přečtěte si „Integrace s Internetovými Prohlížeči úložiště“ pro další informace.

Nastavit vlastností projektu na adresáře

Tyto speciální vlastnosti projektu musí být nastaveny na adresář, aby systém mohl fungovat. Při použití příkazu TortoiseSVN, který používá tyto vlastnosti, jsou vlastnosti načteny z adresáře, na který jste klikli. Pokud tyto vlastnosti nejsou nalezeny, bude TortoiseSVN hledat výše skrz adresářový strom, aby je našel, dokud nepřijde do adresáře bez verze, nebo až nalezne kořen strom (např. C:\). Pokud si jste jisti, že každý uživatel získává pouze z např. kmen/ a ne nějaký podadresář, pak stačí nastavit vlastnosti na kmen/. Pokud si jisti být nemůžete, měli byste nastavit vlastnosti rekurzivně na každý podadresář. Nastavíte-li stejné vlastnosti, ale použijete různé hodnoty v různých hloubkách v hierarchii Vašeho projektu pak dostanete různé výsledky v závislosti na tom, kde ve struktuře adresářů kliknete.

Pouze na vlastnosti projektu tj. tsvn:, bugtraq: a webviewer: můžete použít políčko Rekurzivní při nastavení vlastnost pro všechny podadresáře v hierarchii, aniž by byly nastaveny na všechny soubory.

Když přidáte nový podadresář do pracovní kopie pomocí TortoiseSVN, budou veškeré vlastnosti projektu, obsažené v nadřazeném adresáři, také automaticky přidány do nového podřazeného adresáře.

Omezení při Používání Průzkumníka úložiště

Získávání vlastnosti na dálku je pomalá operace, takže některé z výše popsaných funkcí v průzkumníku úložiště nebudou fungovat tak, jako v pracovní kopii.

  • Přidáte-li vlastnost pomocí průzkumníka úložiště, pouze standardní vlastnosti svn: jsou nabízeny v přednastaveném seznamu. Jakákoliv jiná jména vlastností musí být zadána ručně.

  • Vlastnosti nelze nastavit nebo vymazat rekurzivně pomocí průzkumníka úložiště.

  • Když je přidán podřazený adresář pomocí průzkumníka úložiště, vlastností projektu nebudou šířeny automaticky.

  • tsvn:autoprops nenastaví vlastností souborů, které jsou přidány pomocí průzkumníka úložiště.

Výstraha

Ačkoli vlastnosti projektu TortoiseSVN jsou velmi užitečné, fungují jen v TortoiseSVN a některé budou fungovat pouze v jeho novějších verzích. Pokud lidé pracující na projektu využívají různých klientů Subversion, případně mají starou verzi TortoiseSVN, možná byste mohli chtít použít háky úložiště pro prosazení zásad projektu. Vlastností projektu mohou pouze pomoci zásady zavést, nemohou je vymáhat.

Editoři vlastností

Některé vlastnosti musí použít určité hodnoty, nebo být formátovány určitým způsobem, aby mohly být použity pro automatizaci. Chcete-li pomoci mít správné formátování, TortoiseSVN představuje dialogová okna pro úpravu některých určitých vlastnosti, která ukazují možné hodnoty nebo rozbít vlastnost na její jednotlivé složky.

Externí obsah

Obrázek 4.44. Stránka vlastnosti svn:externals

Stránka vlastnosti svn:externals


Vlastnost svn:externals může být použita ke stáhnutí jiných projektů ze stejného, nebo úplně jiného úložiště, jak je popsáno v „Externí položky“.

Musíte zadat název podadresáře, do kterého bude vnější adresář získán, a Subversion URL externí položky. Externí můžete získat při revizi HEAD, takže když se vnější položky v archivu změní, vaše pracovní kopie při aktualizaci obdrží tyto změny. Nicméně pokud chcete, aby externí odkazovala na určitý stabilní bod, pak můžete zadat konkrétní revizi k použití. V takovém případě můžete také chtít zadat stejnou revizi jako zavěšenou revizi. Pokud externí položka bude někdy v budoucnu přejmenována, pak Subversion nebude moci aktualizovat tuto položku v pracovní kopii. Zadáním udržené revize řeknete Subversion, že má hledat položku, která toto jméno měla v udržené revizi spíše než v HEAD.

Tlačítko Najít revizi HEAD získá revizi HEAD z každé externí URL a zobrazí je ve sloupci vpravo. Poté můžete jednoduše kliknutím pravého tlačítka myši na externí získat příkaz pro zavěšení zvolených externích na jejich explicitní revizi HEAD. V případě, že revize HEAD není zatím známa, kliknutím pravého tlačítka myši budou revize získány.

SVN Klíčová slova

Obrázek 4.45. Stránka vlastnosti svn:keywords

Stránka vlastnosti svn:keywords


Zvolte klíčová slova, která byste chtěli mít v souboru rozšířena.

Styl EOL

Obrázek 4.46. Stránka vlastnosti svn:eol-style

Stránka vlastnosti svn:eol-style


Vyberte styl konce řádku, který chcete používat a TortoiseSVN bude používat správnou hodnotu vlastnosti.

Integrace se Systémem pro Sledování Problémů

Obrázek 4.47. Stránka vlastnosti tsvn:bugtraq

Stránka vlastnosti tsvn:bugtraq


Velikost zprávy záznamu

Obrázek 4.48. Stránka vlastnosti velikost zprávy záznamu

Stránka vlastnosti velikost zprávy záznamu


Tyto 3 vlastnosti kontrolují formátování zprávy záznamu. První 2 blokují OK v dialogových oknech odevzdání nebo zamknutí, dokud zpráva nedosáhne minimální délky. Pozice okraje ukazuje značku v dané šířce sloupce jako vodítko pro projekty, které mají omezení šířky v jejich zprávách záznamu. Nastavením nulové hodnoty tuto vlastnost smaže.

Jazyk Projektu

Obrázek 4.49. Stránka vlastnosti jazyka

Stránka vlastnosti jazyka


Vyberte jazyk, který bude použit při kontrole pravopisu zpráv záznamu v dialogovém okně odevzdání. Políčko seznamu souborů vstoupí v platnost, když kliknete pravým tlačítkem myši v panelu zpráv záznamů a vyberete Vložit seznam souborů. Ve výchozím nastavení bude Subversion stav zobrazen ve vašem jazyce. Když je toto políčko zaškrtnuto stav je vždy uveden v angličtině, pro projekty, které vyžadují pouze anglické zprávy záznamů.

MIME-typ

Obrázek 4.50. Stránka vlastnosti svn:mime-type

Stránka vlastnosti svn:mime-type


svn:needs-lock

Obrázek 4.51. Stránka vlastnosti svn:needs-lock

Stránka vlastnosti svn:needs-lock


Tato vlastnost určuje, zda soubor bude získán pouze pro čtení, jestliže v pracovní kopii nad ním není držen žádný zámek.

svn:executable

Obrázek 4.52. Stránka vlastnosti svn:executable

Stránka vlastnosti svn:executable


Tato vlastnost kontroluje, zda je souboru dán stav spustitelný, když je získán v systému Unix/Linux. Nemá žádný vliv na získání v systému Windows.

Sloučení šablon zpráv záznamu

Kdykoliv jsou revize sloučeny do pracovní kopie, TortoiseSVN vytvoří zprávu záznamu ze všech sloučených revizí. Ty jsou pak dostupné v dialogovém okně odevzdání stisknutím tlačítka Nedávné zprávy.

Tuto vytvořenou zprávu si můžete přizpůsobit následujícími vlastnostmi:

Obrázek 4.53. Šablony zpráv sloučení v dialogovém okně vlastností

Šablony zpráv sloučení v dialogovém okně vlastností


tsvn:mergelogtemplatetitle, tsvn:mergelogtemplatereversetitle

Tato vlastnost určuje první část vytvořené zprávy záznamu. Můžou být použita následující klíčová slova:

{revisions}

Čárkou oddělený seznam sloučených revizí např.: 3, 5, 6, 7

{revisionsr}

Podobné jako {revisions}, ale tady je před každou revizí umístěno r, např.: r3, r5, r6, r7

{revrange}

Čárkou oddělený seznam sloučených revizí seskupených do rozsahů, pokud je možné, např.: 3, 5-7

{mergeurl}

Zdrojová URL sloučení, např. odkud jsou revize slučovány.

Výchozí hodnota pro tento řetězec je Merged revision(s) {revrange} from {mergeurl}: a končí novým řádkem.

tsvn:mergelogtemplatemsg

Tato vlastnost určuje jak by měl vypadat text pro každou revizi. Můžou být použita následující klíčová slova.

{msg}

Zpráva záznamu sloučené revize, tak jak byla zadána.

{msgoneline}

Podobné jako {msg}, ale nové řádky jsou nahrazeny mezerou, takže celá zpráv záznamu vypadá, že je na jednom řádku.

{author}

Autor sloučené revize.

{rev}

Vlastní sloučená revize.

{bugids}

ID chyb sloučené revize, pokud nějaké jsou.

tsvn:mergelogtemplatemsgtitlebottom

Tato vlastnost udává umístění řetězce názvu zadaného v tsvn:mergelogtemplatetitle nebo tsvn:mergelogtemplatereversetitle. Pokdu je vlastnost nastavena na yes nebo true, pak je řetězec názvu přidán ke spodní části, místo k vrchní.

Důležité

Toto funguje pouze, když sloučené revize jsou již v úschově záznamu. Pokud jste úschovu zakázali, nebo jste před sloučením záznam nezobrazili, vytvořená zpráva nebude obsahovat žádné informace o sloučených revizích.

Externí položky

Někdy je vhodné sestavit pracovní kopie, která je vyrobena z mnoha různých získání. Například můžete chtít, aby různé soubory nebo podadresáře přicházeli z různých míst v úložišti, nebo možná z úplně jiných úložišť. Pokud chcete, aby každý uživatel měl stejné rozložení, můžete nastavit vlastnost svn:externals pro stáhnutí uvedeného zdroje na místa, kde je ho zapotřebí.

Externí adresáře

Řekněme, že chcete získat pracovní kopii /Projekt1 do D:\dev\Projekt1. Vyberte adresář D:\dev\Projekt1, klikněte na něj pravým tlačítkem myši a vyberte Windows MenuVlastnosti z kontextového menu. Zobrazí se dialogové okno Vlastnosti. Pak přejděte na kartu Subversion. Zde můžete nastavit vlastnosti. Klepněte na tlačítko Vlastnosti.... V dialogovém okně vlastnosti, buď dvojklikem na svn:externals pokud již existuje, nebo klikněte na tlačítko Nový... a z nabídky vyberte externí. Chcete-li přidat novou externí, klikněte na tlačítko Nový... a pak vyplňte požadované informace v zobrazeném dialogovém okně.

Výstraha

URL musí být řádně zamaskované, nebo nebudou fungovat, např. musíte nahradit každou mezeru %20.

Pokud chcete, aby místní cesta obsahovala mezery nebo jiné speciální znaky, můžete ji uzavřít do uvozovek, nebo použít \ (Zpětné lomítko) jako unixový styl maskování v rozhraní před každým speciálním znakem. Samozřejmě to také znamená, že musíte použít / (Lomítko) jako oddělovač cesty. Všimněte si, že toto chování je nové v Subversion 1.6 a nebude u starších klientů fungovat.

Použít jednoznačná čísla revizí

Měli byste vážně uvažovat o používání jednoznačných čísel revizí pro všechny vaše externí definice, jak je popsáno výše. Pokud tak učiníte, znamená to, že můžete rozhodnout, kdy a který snímek externích informací přesně stáhnout. Kromě hlediska zdravého rozumu kdy nebudete překvapeni změnami v úložištích třetí strany, nad kterými nemusíte mít žádnou kontrolu, používání jednoznačných čísel revizí také znamená, že jak vaše pracovní kopie postupuje zpět na předchozí revizi, vaše externí nastavení se také vrátí do stavu v té předchozí revizi, což znamená, že externí pracovní kopie budou aktualizovány tak, aby odpovídaly způsobu, jak ony vypadaly, když vaše úložiště bylo v předchozí revizi. U softwarových projektů, toto může být rozdíl mezi úspěšným a neúspěšným sestavením staršího snímku vaší komplexní sady kódu.

Dialogové okno úprav pro vlastnosti svn:externals Vám umožňují vybrat externí a automaticky je nastavit na danou revizi HEAD.

Pokud je externí projekt ve stejném úložišti, všechny změny, které v něm provedete, budou při odevzdání hlavního projektu zahrnuty.

Pokud je externí projekt v jiném úložišti, všechny změny v něm provedené budou při odevzdání hlavního projektu zobrazeny či vyznačeny, ale tyto vnější změny musíte odevzdat samostatně.

Pokud používáte absolutní adresu URL pro nastavení svn:externals a musíte Vaši pracovní kopii přemístit (tj. pokud se adresa URL úložiště změní), pak se Vaše externí nezmění a možná nebudou fungovat.

Aby se předešlo takovým problémům, klient Subversion verze 1.5 a vyšší podporuje relativní externí adresy URL. Jsou podporovány čtyři způsoby určení relativní adresy URL. V následujících příkladech, předpokládáme, že máme dvě úložiště: jedno na http://priklad.cz/svn/uloz-1 a další na http://priklad.cz/svn/uloz-2. Získání máme z http://priklad.cz/svn/uloz-1/projekt/kmen ukládáme do C:\Pracovní a vlastnost svn:externals je nastavena na kmen.

Vzhledem k nadřazenému adresáři

Tyto adresy URL vždy začínat řetězcem ../ např.:

../../Nastroje/bla  spolecne/bla-nastroj

Toto vyjme http://priklad.cz/svn/uloz-1/nastroje/foo do C:\Práce\spolecne\bla-nastroj.

Nezapomeňte, že URL je relativní k URL adresáře s vlastností svn:externals, ne do adresáře, kde vnější je zapsáno na disk.

Vzhledem ke kořeni úložiště

Tyto adresy URL vždy začínat řetězcem ^/ např.:

^/nastroje/bla  spolecne/bla-nastroj

Toto vyjme http://priklad.cz/svn/uloz-1/nastroje/bla do C:\Práce\spolecne\bla-nastroj.

Můžete snadno odkazovat na jiná úložiště se stejnou SVNParentPath (Společný adresář obsahující několik úložišť). Například:

^/../Uloz-2/kladiva/dráp  spolecne/drap-kladivo

Toto vyjme http://priklad.cz/svn/uloz-2/kladiva/drap do C:\Práce\spolecne\ drap-kladivo.

Vzhledem ke schématu

URL začínající řetězcem // zkopírují pouze schématickou část URL. To je užitečné, když musí být přístup na stejné jméno hostitele přes různá schémata v závislosti na umístění v síti, např. klienti v intranetu používají http:// zatímco externí klienti používají svn+ssh://. Například:

//Priklad.cz/svn/uloz-1/nástroje/bla  spolecne/bla-nastroj

Toto vyjme http://priklad.cz/svn/uloz-1/nastroje/bla nebo svn+ssh://priklad.cz/svn/uloz-1/nastroje/bla podle toho, jaký způsob byl použit pro získání C:\Pracovní.

Vzhledem k jménu hostitele serveru

URL začínající řetězcem / kopíruje schéma a hostitelskou část URL, například:

/svn/uloz-1/nastroje/bla  spolecne/bla-nastroj

Toto vyjme http://priklad.cz/svn/uloz-1/nastroje/bla do C:\Práce\spolecne\bla-nastroj. Ale pokud získáte Vaši pracovní kopii z jiného serveru na svn+ssh://dalsi.mirror.cz/svn/uloz-1/projekt1/kmen pak externí odkaz vyjme svn+ssh://dalsi.mirror.cz/svn/uloz-1/nastroje/bla.

V případě potřeby můžete v URL zadat zavěšenou a operativní revizi. Abyste se dozvěděli více o zavěšených a operativních revizích, prohlédněte si prosím odpovídající kapitolu v knize Subversion.

Důležité

Pokud zadáte cílovou složku pro externí jako podsložku stějně jako v příkladu výše, ujistěte se, že všechny složky mezi nimi mají také verzi. Takže případě příkladů výše, by složka common měla také mít verzi!

I přesto že v cestě k externí existuje složka bez verze, budou ve většině situací fungovat správně. Nicméně existují operace, které nebudou fungovat, jak očekáváte. A překryvné ikony stavu v Průzkumníku nebudou zobrazovat správný stav.

Pokud potřebujete více informací o tom, jak TortoiseSVN s vlastnostmi zachází, přečtěte si „Nastavení projektu“.

Chcete-li zjistit o různých metodách přístupu společných podprojektů, přečtěte si „Zahrnout společný podprojekt“.

Externí soubory

Od Subversion verze 1.6, můžete přidat jeden soubor jako externí do Vaší pracovní kopie pomocí stejné syntaxe jako pro adresář. Nicméně, existují určitá omezení.

  • Cesta k externímu souboru musí být přímo podřazená složce, kde jste nastavili vlastnost svn:externals.

  • URL pro externí soubor musí být ve stejném úložišti jako URL, do které bude externí soubor vložen, mezi-uložištní externí soubory nejsou podporovány.

Externí soubor se chová stejně jako jakýkoliv jiný souboru s verzí v mnoha ohledech, ale nemůže být přesunut nebo smazán pomocí běžných příkazů; místo toho musí být upravena vlastnost svn:externals.

Vytváření externích pomocí přetáhnutí

Pokud již máte pracovní kopii souborů nebo složek, které chcete použít jako externí v jiné pracovní kopii, můžete je jednoduše přidat pomocí přetáhnutí v Průzkumníku Windows.

Jednoduše přetáhněte pravým tlačítkem myši soubor nebo složku z jedné pracovní kopii tam, kde je chcete použít jako externí. Při uvolnění tlačítka myši se zobrazí kontextová nabídka: SVN Přidat zde jako externí, pokud na tuto položku nabídky kliknete, automaticky se přidá vlastnost svn:externals. Jediné, co po tomto úkonu musíte provést, je odevzdat změny vlastností a aktualizovat pro správné zahrnutí těchto externích do vaší pracovní kopie.

Větvení/Značkování

Jednou z funkcí systémů pro správu verzí je schopnost izolovat změny na samostatnou linku vývoje. Tato linka je známá jako větev. Větve jsou často používány k vyzkoušení nových funkcí, aniž byste rušili hlavní vývojovou linii chybami kompilátora a chybami programu. Jakmile je nová funkce dostatečně stabilní, pak vývojová větev je sloučena zpět do hlavní větve (kmen).

Dalším rysem systémů pro správu verzí je možnost označit konkrétní revizi (např. vydanou verzi), takže můžete kdykoliv obnovit některé sestavení či prostředí. Tento proces je znám jako značkování.

Subversion nemá žádné speciální příkazy pro větvení a značkování, místo toho používá takzvané laciné kopie. Laciné kopie jsou podobné pevným odkazům v Unixu, což znamená, že namísto toho, aby tvořili kompletní kopii v úložišti, je vytvořen interní odkaz, odkazující na konkrétní strom/revize. Výsledkem je, že větve a značky jsou velmi rychle vytvořeny a v úložišti nezabírají téměř žádný prostor navíc.

Vytvoření Větve nebo Značky

Pokud jste importovali projekt s doporučenou adresářovou strukturou, vytvoření verze větve nebo značky je velmi jednoduché:

Obrázek 4.54. Dialogové okno Větev/Značka

Dialogové okno Větev/Značka


Vyberte adresář ve Vaší pracovní kopie, který chcete zkopírovat na větev nebo značku, pak vyberte příkaz TortoiseSVNVětev/značka.

Výchozí cílová adresa URL pro novou větev bude zdrojová URL, na nichž je založena vaše pracovní kopie. Budete muset tuto URL upravit na novou cestu vaší větve/značky. Takže místo

    http://svn.collab.net/uloz/JmenoProjektu/kmen

můžete nyní používat něco jako

    http://svn.collab.net/uloz/JmenoProjektu/znacky/Vydani_1.10

Pokud si nemůžete vzpomenout na pojmenování, které jste použili naposledy, klikněte na tlačítko vpravo pro otevření průzkumníka úložiště, takže můžete zobrazit existující strukturu úložiště.

Mezilehlé složky

Když zadáte cílovou URL, všechny složky až po poslední musí pžedtím existovat, nebo obdržíte chybovou zprávu. V příkladu výše musí URL http://svn.collab.net/repos/ProjectName/tags/ existovat, aby byla značka Release_1.10 vytvořena.

Pokud ale chcete vytvořit větev/značku pro URL, která má mezilehlé složky, které zatím nejsou vytvořeny, můžete zaškrtnout možnost Vytvořit mezilehlé složky v dolním okraji dialogového okna. Pokud je tato možnost povolena, všechny mezilehlé složky jsou automaticky vytvořeny.

Nezapomeňte, že tato volba je standardně vypnuta, aby se předešlo překlepům. Například, pokud byste zadali cílovou URL jako http://svn.collab.net/repos/ProjectName/Tags/Release_1.10 místo http://svn.collab.net/repos/ProjectName/tags/Release_1.10, bez této možnosti byste obdrželi chybu, ale s touto možností by složka Tags byla automaticky vytvořena a pak byste měli složky Tags a tags.

Nyní musíte vybrat zdroj kopie. Zde máte tři možnosti:

revize HEAD v úložišti

Nová větev je kopírována přímo v úložišti z revize HEAD. Z vaší pracovní kopie nemusí být převedeny žádné údaje a větev je vytvořena velmi rychle.

Jednoznačná revize v úložišti

Nová větev je kopírována přímo v úložišti, ale můžete si vybrat starší revizi. To je užitečné, pokud jste zapomněli udělat značku, když jste minulý týden vydali svůj projekt. Pokud si nemůžete vzpomenout na číslo revize, klikněte na tlačítko vpravo pro zobrazení záznamu revizi a odtamtud zvolte číslo revize. Opět žádná data nejsou přenášena z Vaší pracovní kopie a větev je vytvořena velmi rychle.

Pracovní kopie

Nová větev je identickou kopii Vaší místní pracovní kopie. Pokud jste aktualizovali některé soubory na starší revizi ve Vaší pracovní kopii, nebo pokud jste provedli místní změny, to je přesně to, co do kopie jde. Přirozeně tento druh složitého značení může zahrnovat přenos dat z Vaší pracovní kopie zpět do úložiště, pokud tam už nejsou.

Pokud chcete, aby Vaše pracovní kopie byla automaticky překlopena na nově vytvořenou větev, zaškrtněte políčko Překlopit pracovní kopie do jiné větve/značky. Ale pokud to uděláte, nejprve se ujistěte, že Vaše pracovní kopie neobsahuje změny. Pokud ano, budou tyto změny sloučeny do větve pracovní kopie při překlopení.

Pokud má Vaše pracovní kopie zahrnuty další projekty pomocí vlastnosti svn:external, budou tyto externí uvedeny vespod dialogového okna větev/značka. Pro každý externí se zobrazí cílová cesta a URL zdroje.

Pokud se chcete ujistit, že nová značka je vždy v soudržném stavu, zkontrolujte všechny externí, jestli jejich revize jsou upevněné. Pokud nezkontrolujete externí a tyto odkazují na HEAD revizi, která by se mohla v budoucnu změnit, získávání nové značky získá tuto externí HEAD revizi a Vaše značka už se nemusí kompilovat. Takže je vždycky dobrý nápad při vytváření značky nastavit externí na jednoznačnou revizi.

Externí jsou automaticky připnuty buď na jejich současnou revizi HEAD nebo na základní revizi pracovní kopie, v závislosti na zdroji větve/značky:

Tabulka 4.1. Připnutá revize

Kopírování zdrojePřipnutá revize
revize HEAD v úložištiRevize HEAD externího úložiště
Určitá revize v úložištiRevize HEAD externího úložiště
Pracovní kopieZákladní revize pracovní kopie externí


externí v externích

Pokud projekt přidaný jako externí, má své vlastní externí, pak tyto nebudou označkovány! Pouze externí, jenž jsou přímo podřazené, mohou být označkovány.

Stiskněte OK pro odevzdání nové kopie do úložiště. Nezapomeňte přidat zprávu záznamu. Všimněte si, že kopie je vytvořena uvnitř úložiště.

Nezapomeňte, že pokud jste se rozhodly překlopit Vaši pracovní kopii do nově vytvořené větve, vytvoření větve nebo značky neovlivní Vaši pracovní kopii. I když vytvoříte větev z pracovní kopie, jsou tyto změny odevzdány do nové větve a ne do kmene, takže Vaše pracovní kopie může být stále označena jako změněná s ohledem na kmen.

Jiné způsoby, jak vytvořit větev nebo značku

Můžete také vytvořit větev nebo značku, bez nutnosti pracovní kopie. Chcete-li to tak, otevřete průzkumníka úložiště. Zde můžete přetáhnout adresáře do nového umístění. Musíte při přetahování držet klávesu Ctrl k vytvoření kopie, jinak je adresář přesunut, nikoli zkopírován.

Můžete také adresář přetáhnout pravým tlačítkem myši. Po uvolnění tlačítka myši si můžete vybrat z kontextového menu, zda chcete složku přesunout nebo zkopírovat. Samozřejmě pro založení větve nebo značky, musíte zkopírovat adresář, ne ho přesunout.

Existuje ještě jiný způsob z dialogového okna záznamu. Můžete zobrazit dialogové okno záznamu např. kmene, výběr revize (buď revizi HEAD na samém vrcholu, nebo starší verze), kliknout pravým tlačítkem myši a zvolit vytvořit větev/značku z revize...

Získat nebo Překlopit...

... Toť je (ani ne) ta otázka. Zatímco získaní stáhne vše od požadované větve v úložišti do Vašeho pracovního adresáře, TortoiseSVNPřeklopit... pouze převede změněná data do Vaší pracovní kopie. Dobré pro zatížení sítě, dobré pro Vaši trpělivost. :-)

Abyste mohli pracovat s čerstvě vytvořenou větví nebo značkou máte několik způsobů, jak toho dosáhnout. Můžete:

  • TortoiseSVNZískat pro čerstvé získání do prázdné složky. Můžete získat do jakékoliv místa na místním disku a můžete vytvořit tolik pracovní kopie z úložiště, jak se Vám líbí.

  • Překlopit aktuální pracovní kopii na nově vytvořenou kopii v úložišti. Opět vyberte adresář nejvyšší úrovně Vašeho projektu a použijte TortoiseSVNPřeklopit ... z kontextového menu.

    V dalším dialogovém okně zadejte adresu URL větve, kterou jste právě vytvořili. Vyberte přepínač Revize Head a klikněte na OK. Vaše pracovní kopie bude překlopena do nové větve/značky.

    Překlopení funguje podobně jako Aktualizace v tom, že nikdy nezahodí Vaše místní změny. Když Překlopíte, veškeré změny, které jste provedli ve Vaší pracovní kopii, které dosud nebyly odevzdány budou sloučeny. Pokud toto nechcete, pak musíte buď odevzdat změny před překlopením, nebo se vrátit Vaší pracovní kopii do již odevzdané revize (typicky HEAD).

  • Pokud chcete pracovat na kmeni a větvi, ale nechcete to na úkor nového získání, můžete použit Průzkumníka Windows pro vytvoření kopie získaní Vašeho kmene v jiném adresáři, pak TortoiseSVNPřeklopit... tuto kopii do Vaši nové větve.

Obrázek 4.55. Dialogové okno Překlopení

Dialogové okno Překlopení


Ačkoli Subversion sám nečiní žádný rozdíl mezi značkami a větvemi, způsob, jakým se obvykle používají se trochu liší.

  • Značky se obvykle používají k vytvoření statického záběru projektu v určité fázi. Jako takové nejsou běžně ve vývoji používány - k tomu jsou určeny větve, což je důvod, proč vůbec doporučujeme /kmen /větve /značky strukturu úložiště. Práce na revizích značek není dobrý nápad, ale protože místní soubory nejsou chráněny proti zápisu nic Vám nebrání udělat toto omylem. Nicméně pokud se pokusíte odevzdat cestě do úložiště, která obsahuje /značky/, bude Vás TortoiseSVN varovat.

  • Je možné, že je třeba provést další změny ve vydání, které jste již označkovali. Správný způsob, jak toto zvládnout je nejdříve vytvořit novou větev ze značky a větev odevzdat. Proveďte Vaše Změny této větve a pak vytvořte novou značku z této nové větve, např. Verze_1.0.1.

  • Pokud změníte pracovní kopii vytvořenou z větve a odevzdáte ji, pak všechny změny jdou do nové větve a ne do kmene. Pouze změny jsou uloženy. Zbytek zůstává lacinou kopií.

Sloučení

Tam, kde jsou větve používány k udržení samostatných linií vývoje, v určité fázi budete chtít provedené změny sloučit v jedné větvi zpět do kmene, nebo naopak.

Je důležité pochopit, jak větvení a slučování v Subversion funguje předtím, než ho začnete používat, protože to může být docela složité. Je výrazně doporučeno si přečíst kapitolu Větvení a slučování v knize Subversion, která dává úplný popis a mnoho příkladů toho, jak se používají.

Další bod pro zapamatování je, že sloučení se vždy odehrává v pracovní kopii. Pokud chcete sloučit změny do větve, musíte získat pracovní kopii této větve a spustit Průvodce sloučením z této pracovní kopie pomocí TortoiseSVNSloučit....

Obecně je dobrý nápad provést sloučení do nezměněné pracovní kopie. Pokud jste již provedli další změny ve Vaši pracovní kopii, nejdříve je odevzdejte. Jestliže slučovací nevyjde tak, jak jste očekávali, můžete změny vrátit a příkaz Vrátit zahodí všechny změny včetně těch odevzdaných před sloučením.

Existují tři běžné případy použití slučování, které jsou provedeny mírně odlišnými způsoby, jak je popsáno níže. Na první straně Vás průvodce sloučením vyzve k výběru metody, kterou potřebujete.

Sloučit řadu revizí

Tato metoda se vztahuje na případ, když máte jednu nebo více revizí ve větvi (nebo v kmeni) a chcete tyto změny přenést na jinou větev.

Co žádáte Subversion, aby udělal, je toto: Vypočítat nezbytné změny, jak se dostat [Z] revize 1 větve A [DO] revize 7 větve A a tyto změny provést v mé pracovní kopii (kmene nebo větve B).

Pokud rozsah revizí necháte prázdný, Subversion použije funkce sledování sloučení pro výpočet správného rozsahu revizí k použití. Toto je označováno jako znovuzačlenění či automatické sloučení.

Sloučení dvou různých stromů

Toto je obecnější případ znovu začleňovací metody. Co žádáte od Subversion, aby udělal, je: Vypočítat změny nezbytné pro získání [Z] revize head kmene [DO] head revize větve a uplatnit tyto změny na moji pracovní kopii (kmene). Výsledkem je, že kmen nyní vypadá přesně jako větev.

Pokud váš server/úložiště nepodporuje sledování sloučení pak toto je to jediný způsob, jak sloučit větve zpátky do kmene. Dalším případem použití je, když používáte dodavatelské větve a je třeba sloučit změny v důsledku nového vývoje dodavatele do kmenového kódu. Pro více informací si přečtěte kapitolu Dodavatelské větve v knize Subversion.

Sloučení Rozsahu Revizí

Obrázek 4.56. Průvodce Sloučením - Vyberte Rozsah Revizí

Průvodce Sloučením - Vyberte Rozsah Revizí


V poli Od: zadejte úplnou adresu URL adresáře větve nebo značky obsahující změny, které chcete přenést do Vaší pracovní kopie. Můžete také klepnout na ... pro procházení úložiště a vyhledání požadované větve. Pokud jste předtím slučovali z této větve, pak stačí použít rozbalovací seznam, který zobrazuje historii dříve použitých adres URL.

Pokud slučujete z přejmenované nebo smazané větve, pak budete muset přejít na revizi, kdy větev stále existovala. V takovém případě musíte také zadat tuto revizi jako zavěšenou v rozsahu revizí, které jsou slučovány (viz níže), jinak sloučení selže, když nemůže najít cestu v HEAD.

V poli Rozsah revizí ke sloučení zadejte seznam revizí, které chcete sloučit. To může být jedna revize, seznam konkrétních revizí oddělených čárkami nebo rozsah revizí oddělených pomlčkou, nebo jakákoliv jíná kombinace těchto možností.

Pokud potřebujete zadat zavěšenou revizi pro sloučení, přidejte ji na konci revizí, např. 5-7,10@3. Ve výše uvedeném příkladu by revize 5,6,7 a 10 byly sloučeny a 3 by byla zavěšená revize.

Důležité

Existuje významný rozdíl ve způsobu, jakým je zadáván rozsah revizí v TortoiseSVN v porovnání s příkazovým řádkem klienta. Nejjednodušší způsob, jak si toto představit, je uvažovat o plotu se sloupky a plotovými výplněmi.

S příkazovým řádkem klienta zadáte změny ke sloučení pomocí dvou sloupků plotu revizí, které stanoví body před a po.

S TortoiseSVN zadáváte seznam změn ke sloučení pomocí plotových výplní. Důvod pro to je jasný, když použijete dialogové okno záznamu k určení revizí ke sloučení, kde každá revize se objeví jako seznam změn.

Pokud slučujete revize v kusech, musíte podle metody uvedené v knize Subversion sloučit 100-200 teď a 200-300 příště. S TortoiseSVN byste slučovali 100-200 teď a 201-300 příště.

Tento rozdíl způsobil hodně nevraživosti v e-mailových konferencích. Jsme si vědomi, že existuje rozdíl v příkazovém řádku klienta, ale věříme, že pro většinu uživatelů GUI je snazší pochopit způsob, který jsme zavedli.

Nejjednodušší způsobem, jak zvolit rozsah revizí, který potřebujete, je kliknout na Zobrazit záznamy, protože toto zobrazí seznam nedávných změn s jejich komentáři záznamů. Pokud chcete sloučit změny z jedné revize, stačí tuto revizi vybrat. Pokud chcete sloučit změny z několika revizí, pak vyberte rozsah (za použití obvyklých Shift-Modifikátor). Klikněte na OK a seznam čísel revizí ke sloučení je vyplněn za Vás.

Pokud chcete sloučit změny zpět z Vaší pracovní kopie, vrátit změny, které jste již odevzdali, vyberte revize k vrácení a ujistěte se, že políčko Reverzní sloučení je zaškrtnuto.

Pokud jste již sloučili některé změny z této větve, doufejme, že jste si poznamenali poslední sloučenou revizi ve zprávách záznamu, když jste odevzdali změny. V takovém případě můžete použít Zobrazit záznam pracovní kopie pro vyhledání této zprávy záznamu. Pamatujte si, že o revizích uvažujeme jako o sadě změn. Měli byste použít další revizi po bodu posledního sloučení jako výchozí bod pro toto sloučení. Například, pokud jste posledně sloučil revize 37 až 39, pak počátečním bodem pro toto sloučení by měla být revize 40.

Pokud používáte Subversion funkce sledování sloučení, nemusíte si pamatovat, která revize je již sloučená - Subversion to bude zaznamenávat za Vás. Ponecháte-li rozsahu revizí prázdný, všechny revize, které dosud nebyly sloučeny budou zahrnuty. Přečtěte si „Sledování Sloučení“ a dozvíte se více.

Když je použito sledování sloučení, bude dialogové okno záznamu zobrazovat dříve sloučené revize a revize předcházející společnému bodu předchůdce, t.j. před zkopírováním větve, tak jak je vystínováno. Zaškrtávací políčko Skrýt neslučitelné revize umožňuje úplně odfiltrovat tyto revize tak, že vidíte pouze revize, které můžou být sloučeny.

Pokud ostatní můžou odevzdávat změny, pak buďte opatrní při používání revize HEAD. Nemusí odkazovat na revizi, kterou myslíte, pokud někdo jiný provedl odevzdání po Vaší poslední aktualizaci.

Pokud rozsah revizí necháte prázdný, nebo stiskněte políčko všechyn revize, pak Subversion sloučí všechny zatím nesloučené revize. Toto je označováno jako začlenění nebo automatické sloučení.

Existují některé podmínky, které se vztahují na znovu začleňovací sloučení. Za prvé, server musí podporovat sledování sloučení. Pracovní kopie musí mít nekonečnou hloubku (žádné řídké získání) a nesmí mít žádné lokální úpravy, překlopené položky nebo položky, které byly aktualizovány na revizi jinou než HEAD. Všechny změny provedené v kmeni v průběhu vývoje větve musí být sloučeny do větve (nebo označeny jako sloučené). Rozsah revizí sloučení bude vypočten automaticky.

Klepněte na tlačítko Další a přejděte na „Nastavení Sloučení“.

Sloučení Dvou Různých Stromů

Obrázek 4.57. Průvodce Sloučením - Sloučení Stromu

Průvodce Sloučením - Sloučení Stromu


Pokud používáte tuto metodu ke sloučení větve funkcí zpět do kmene, budete muset spustit průvodce sloučením z pracovní kopie kmene.

V poli Od: zadejte úplnou adresu URL adresáře kmene. To může znít špatně, ale nezapomeňte, že kmen je počáteční bod, ke kterému chcete přidat změny větve. Můžete také kliknout na ... k procházení úložiště.

V poli Do: zadejte úplnou adresu URL adresáře větve funkcí.

V obou polích Od Revize a Na Revizi, zadejte číslo poslední revize, při které byly dva stromy synchronizovány. Pokud si jste jisti, že nikdo jiný neodevzdává, můžete použít revizi HEAD v obou případech. Pokud existuje možnost, že někdo jiný mohl odevzdat od synchronizace, použijte konkrétní číslo revize, aby se zabránilo ztrátě novějších odevzdání.

Můžete také použít Zobrazit záznamy pro vybrání revize.

Nastavení Sloučení

Tato stránka průvodce umožňuje zadat rozšířené možnosti před zahájením procesu sloučení. Většinou stačí použít výchozí nastavení.

Můžete určit hloubku použitou pro sloučení, tj. jak hluboko do Vaší pracovní kopie by sloučení mělo jít. Použité pojmy hloubky jsou popsány v „Hloubka Získání“. Výchozí hloubka je Pracovní kopie, která využívá stávající nastavení hloubky a téměř vždy je to, co chcete.

Většinou chcete slučovat s přihlédnutím k historii souboru, takže jsou sloučeny změny týkající se společného předka. Někdy je potřeba sloučit soubory, které jsou možná příbuzné, ale ne ve vašem úložišti. Například můžete mít importovanou verzi 1 a 2 knihovny třetí strany do dvou samostatných adresářů. Ačkoli jsou logicky spojené, Subversion o tom nemá ponětí, protože vidí jen archivy vytvořené archivem tar, které jste importovali. Pokusíte-li se sloučit rozdíly mezi těmito dvěma stromy viděli byste úplně odstranění následované úplným přidáním. Chcete-li, aby Subversion používalo pouze rozdíly v cestě raději než rozdíly v historii, zaškrtněte políčko Ignorovat původ. Přečtěte si více o tomto tématu v knize Subversion, Všímání nebo nevšímání si předků.

Můžete určit, jak jsou řešeny změny mezer a konce řádků. Tyto možnosti jsou popsány v „Možnosti konců řádků a mezer“. Výchozí nastavení je zacházet se všemi rozdíly mezer a konce řádků jako skutečné změny, které mají být sloučeny.

Políčko označené Vnutit sloučení se používá pro zamezení konfliktů stromu, kde příchozí smazání ovlivňuje soubor, který je buď změněn lokálně, nebo vůbec verzi nemá. Pokud je soubor smazán, pak není způsob, jak ho obnovit, což je důvod, proč ve výchozím nastavení není tato volba zaškrtnutá.

Pokud používáte sledování sloučení a chcete označit revizi jako sloučenou, aniž by se skutečně slučovala, zaškrtněte poličko Pouze zaznamenat sloučení. Existují dva možné důvody, proč byste toto chtěli udělat. Je možné, že sloučení je příliš složité pro slučovací algoritmy, takže změny kódu uděláte ručně, pak označíte změny jako sloučené, takže algoritmus sledování sloučení je si toho vědom. Nebo budete chtít zabránit sloučení určité revize. Označit ji jako sloučenou se zabrání výskytu sloučení v klientech podporující sledování sločení.

Nyní je vše nastaveno, jediné, co musíte udělat, je kliknout na tlačítko Sloučit. Pokud chcete zobrazit výsledky před sloučením Testovat Sloučení simuluje tuto operaci, ale vůbec neupraví Vaši pracovní kopii. Ukáže Vám seznam souborů, které budou změněny ve skutečném sloučení, a zaznamená soubory, kde můžou nastat konflikty. Vzhledem k tomu, že sledování sloučení dělá proces sloučení mnohem složitější, neexistuje žádný způsob, jak předem zaručeně zjistit, zda sloučení bude dokončeno bez konfliktů, takže soubory označené jako konfliktní ve zkušebním sloučení můžou být ve skutečnosti sloučeny bez problémů.

Dialogové okno průběhu sloučení ukazuje každou fázi sloučení, s uvedeným rozsahem revizí. To může znamenat o jednu revizi více, než jste čekali. Například, pokud chcete sloučit revize 123, dialogové okno průběhu oznámí Slučuji revize 122 až 123. Je třeba si uvědomit, že sloučení je úzce spjato s porovnáním. Proces sloučení funguje tak, že tvoří seznam rozdílů mezi dvěma body v úložišti a tyto rozdíly vnese do pracovní kopie. Dialogové okno průběhu jen ukazuje počáteční a koncové body pro porovnání.

Zhodnocení výsledků sloučení

Sloučení je nyní dokončeno. Je dobrý nápad podívat se na sloučení a zkontrolovat, jestli dopadlo podle očekávání. Sloučení je obvykle poměrně složité. Konflikty často vznikají v případě, že větev se odchýlila příliš daleko od kmene.

Tip

Kdykoliv jsou revize sloučeny do pracovní kopie, TortoiseSVN vytvoří zprávu záznamu ze všech sloučených revizí. Ty jsou pak dostupné v dialogovém okně odevzdání stisknutím tlačítka Nedávné zprávy.

Pro změnu této vytvořené zprávy nastavte odpovídající vlastnosti projektu ve vaší pracovní kopii. Viz „Sloučení šablon zpráv záznamu“

V klientech a serverech Subversion před verzí 1.5, se žádné informace o slučování neukládaly a sloučené revize musely být sledovány ručně. Pokud jste testovali změny a chcete odevzdat tuto revizi, Vaše zpráva záznamu odevzdání by měla vždy obsahovat čísla revizí, které byly ve sloučení přeneseny. Pokud chcete později použít jiné sloučení budete potřebovat vědět, co jste již sloučili, protože nechcete přenést změnu více než jednou. Více informací o tomto najdete na Nejlepší postupy pro slučování v knize Subversion.

Pokud Váš server a všichni klienti mají Subversion 1.5 nebo vyšší, bude funkce pro sledování sloučení, zaznamenávat sloučené revizí a vyhne se slučování revizí více než jednou. Tím se Váš život stane mnohem jednodušší, protože můžete vždycky jednoduše sloučit celou řadu revizí a víte, že pouze nové revize bude skutečně sloučeny.

Správa větve je důležitá. Pokud chcete, aby tato větev byla aktuální s kmenem, měli byste se ujistit, že slučujete často, aby se větev a kmen neodchýlili příliš daleko od sebe. Samozřejmě, měli byste se stále vyhnout opakovanému slučování změn, jak je vysvětleno výše.

Tip

Pokud jste právě sloučili větev funkcí zpět do kmene, kmen nyní obsahuje všechen nový kód funkce a větev je zbytečná. Nyní, jestli chcete, ji můžete smazat z úložiště.

Důležité

Subversion nesloučí soubor s adresářem a naopak - pouze adresáře do adresářů a soubory do souborů. Pokud kliknete na soubor a otevřete dialogové okno sloučení, pak musíte zadat cestu k souboru v tomto dialogovém okně. Pokud vyberete adresář a spustíte dialogové okno, pak musíte zadat URL adresáře pro sloučení.

Sledování Sloučení

Subversion 1.5 představilo prostředky pro sledování sloučení. Při sloučení změn z jednoho stromu do druhého, čísla sloučených revizí jsou uložena a tyto informace mohou být použity pro několik různých účelů.

  • Můžete se vyhnout nebezpečí sloučení stejné revize dvakrát (problém opakovaného sloučení). Jakmile je revize označena jako sloučená, budoucí sloučení, kde je tato revize v rozsahu bude přeskočena.

  • Při sloučení větve zpět do kmene Vám dialogové okno záznamů může ukázat odevzdaání do větve jako součást záznamu kmene, což dává lepší sledovatelnost změn.

  • Když zobrazíte dialogové okno záznamů v rámci dialogového okna sloučení, jsou již sloučené revize zobrazeny v šedé barvě.

  • Při zobrazování informací o obvinění v souboru, můžete zvolit zobrazení původního autora sloučených revizí, raději než osobu, která sloučení provedla.

  • Můžete označit revize, které se nemají slučovat jejích začleněním do seznamu sloučených revizí, aniž by se sloučení skutečně provedlo.

Informace o sledování sloučení jsou uloženy ve vlastnosti svn:mergeinfo klientem, při provádění sloučení. Když je sloučení odevzdání, server uloží informace v databázi a když budete požadovat sloučení, záznam nebo informace o obvinění, server může reagovat odpovídajícím způsobem. Aby systém správně fungoval musíte zajistit, že server, úložiště a všechny klienty jsou aktualizovány. Starší klienty nebudou ukládat vlastnost svn:mergeinfo a starší servery nebudou poskytovat informace novým klientům.

Zjistěte více o sledování sloučení ze Subversion Dokumentace o sledování sloučení.

Handling Conflicts after Merge

Důležité

The text in the conflict resolver dialogs are provided by the SVN library and might therefore not (yet) be translated as the TortoiseSVN dialogs are. Sorry for that.

Merging does not always go smoothly. Sometimes there is a conflict. TortoiseSVN helps you through this process by showing the merge conflict dialog.

Obrázek 4.58. The Merge Conflict Dialog

The Merge Conflict Dialog


It is likely that some of the changes will have merged smoothly, while other local changes conflict with changes already committed to the repository. All changes which can be merged are merged. The Merge Conflict dialog gives you different ways of handling the lines which are in conflict.

For normal conflicts that happen due to changes in the file content or its properties, the dialog shows buttons which allow you to chose which of the conflicting parts to keep or reject.

Postpone

Don't deal with the conflict now. Let the merge continue and resolve the conflicts after the merge is done.

Accept base

This leaves the file as it was, without neither the changes coming from the merge nor the changes you've made in your working copy.

Accept incoming

This discards all your local changes and uses the file as it arrives from the merge source.

Reject incoming

This discards all the changes from the merge source and leaves the file with your local edits.

Accept incoming for conflicts

This discards your local changes where they conflict with the changes from the merge source. But it leaves all your local changes which don't conflict.

Reject conflicts

This discards changes from the merge source which conflict with your local changes. But it keeps all changes that don't conflict with your local changes.

Mark as resolved

Marks the conflicts as resolved. This button is disabled until you use the button Edit to edit the conflict manually and save those changes back to the file. Once the changes are saved, the button becomes enabled.

Upravit

Starts the merge editor so you can resolve the conflicts manually. Don't forget to save the file so the button Mark as resolved becomes enabled.

If there's a tree conflict, please first see „Konflikty Stromu“ about the various types of tree conflicts and how and why they can happen.

To resolve tree conflicts after a merge, a dialog is shown with various options on how to resolve the conflict:

Obrázek 4.59. The Merge Tree Conflict Dialog

The Merge Tree Conflict Dialog


Since there are various possible tree conflict situations, the dialog will show buttons to resolve those depending on the specific conflict. The button texts and labels explain what the option to resolve the conflict does. If you're not sure, either cancel the dialog or use the Postpone button to resolve the conflict later.

Údržba Větve Funkcí

Při vývoji nové funkce na samostatnou větev je dobrý nápad vymyslet zásadu pro znovuzačlenění, když je funkce hotova. Pokud probíhá i jiná práce v kmeni ve stejnou dobu můžete zjistit, že rozdíly se v průběhu času stanou významnými a zpětné sloučení se stává noční můrou.

Pokud je tato funkce relativně jednoduchá a vývoj nebude trvat dlouho, pak můžete přijmout jednoduchý přístup, což je držet větev úplně oddělenou, dokud není funkce hotova, pak sloučit změny ve větvi zpět do kufru. V průvodci sloučením by toto bylo jednoduché kliknutí na Sloučit rozsah revizí, kde rozsah revizí je rozsah revizí větve.

Pokud tato funkce bude trvat déle a je třeba zohlednit změny v kmeni, pak je třeba, aby větev byla synchronizována. To prostě znamená, že pravidelně slučujete změny kmene do větve, tak, aby větev obsahovala všechny změny kmene plus novou funkci. Proces synchronizace využívá Sloučit rozsah revizí. Když je funkce dokončena pak ji můžete sloučit zpět do kmene buď pomocí Znovu začlenit větev nebo Sloučit dva různé stromy.

Další (rychlou) cestou, jak sloučit všechny změny z kmene do větve funkcí, je použití TortoiseSVNSloučit vše... z rozšířeného kontextového menu (podržte klávesu Shift, při kliknutí pravým tlačítkem na soubor).

Obrázek 4.60. Dialogové okno Sloučit vše...

Dialogové okno Sloučit vše...


Toto dialogové okno je velmi jednoduché. Jediné, co musíte udělat, je nastavit volby pro sloučení, jak je popsáno v „Nastavení Sloučení“. O zbytek se postará TortoiseSVN automaticky pomocí sledování sloučení.

Zamykání

Subversion většinou funguje nejlépe bez zamykání, použitím metody Kopírovat-Změnit-Sloučit popsané v předchozí části „Řešení Kopírovat-Změnit-Sloučit“. Nicméně existuje několik případů, kdy může být nutné zavést nějakou formu zásady zamykání.

  • Používáte neslučitelné soubory, například grafické. Pokud dva lidé změní stejný soubor, sloučení není možné, aniž by jeden z Vás neztratil svoji změnu.

  • Vaše firma vždy v minulosti používala Zamykací systém pro správu revizí a vedení došlo k rozhodnutí, že zamykání je nejlepší.

Nejprve je nutné se ujistit, že Váš Subversion server je aktualizován alespoň na verzi 1.2. Dřívější verze vůbec nepodporují zamykání. Pokud vstupujete přes protokol file://, pak samozřejmě pouze Váš klient musí být aktualizován.

Tři významy Zámku

V této části a skoro všude jinde v této knize popisují slova zámek a uzamčení mechanizmus pro vzájemné vyloučení mezi uživateli aby se předešlo střetu odevzdání. Bohužel existují další dva druhy zámku s kterým se Subversion, a tudíž i tato kniha, někdy musí zabývat.

Druhým je uzamčení pracovní kopie, což Subversion používá vnitřně pro zabránění konfliktů mezi mnoha klienty Subversion pracující na stejné pracovní kopii. Většinou na tyto zámky narazíte, když příkazy jako aktualizovat/odevzdat/... je přerušen kvůli chybě. Tyto zámky lze odstranit spuštěním příkazu vyčištění v pracovní kopii, tak jak je popsáno v „Vyčistit“.

A třetím je uzamčení souborů a složek, když jsou používány jiným procesem, například pokud máte dokument otevřen ve Wordu, tento soubor je uzamčen a TortoiseSVN k němu nemá přístup.

Většinou se těmito ostatními druhy uzamčení nemusíte zabývat, dokud se nestane něco, co by vyžadovalo vaší pozornost. V této knize zámek znamená první druh, pokud není řečeno jinak, či toto vyplývá z obsahu.

Jak Zamykání v Subversion Funguje

Ve výchozím nastavení nic není zamčené a každý, kdo má přístup k odevzdání může kdykoli odevzdat změny jakéhokoliv souboru. Ostatní budou pravidelně aktualizovat své pracovní kopie a změny v úložišti budou sloučeny s místními změnami.

Pokud Zamknete soubor, pak jenom Vy můžete tento soubor odevzdat. Odevzdání všech ostatních uživatelů bude blokováno, dokud Vy neuvolníte zámek. Zamknutý soubor nemůže být žádným způsobem v úložišti změněn, také nemůže být smazán nebo přejmenován nikým jiným, než majitelem zámku.

Důležité

Zámek není určen konkrétnímu uživatele, ale konkrétní uživateli a pracovní kopii. Mít zámek v jedné pracovní kopii také zabraňuje stejnému uživateli odevzdat uzamčený soubor z jiné pracovní kopie.

Jako příklad si představte, že uživatel Pavel má pracovní kopii na svém kancelářském PC. Tam začne pracovat na obrázku a proto získá zámek na tento soubor. Když odchází z kanceláře, ještě s tímto souborem neskončil, a proto zámek neuvolní. Doma má Pavel také pracovní kopii a rozhodne se na projektu pracovat trošku déle. Ale nemůže změnit nebo odevzdat stejný soubor s obrázkem, protože zámek pro tento soubor je umístěn v jeho pracovní kopii v kanceláři.

Nicméně, ostatní uživatelé nemusí vědět, že jste si vzali zámek. Pokud nebudou kontrolovat stav zámku pravidelně, budou poprvé vědět o zámku, když jejich odevzdání selže, což ve většině případů není příliš užitečné. Aby bylo snazší zámky spravovat, je zde nová vlastnost Subversion svn:needs-lock. Když je tato vlastnost nastavena (na jakoukoli hodnotu) na soubor, kdykoli je soubor získán, nebo aktualizován, je místní kopie pouze pro čtení pokud pracovní kopie nedrží zámek pro tento soubor. Toto se chová jako varování, že byste neměli upravovat soubor pokud jste nejdříve nezískali zámek. Soubory, které jsou s verzí a pouze pro čtení, jsou v TortoiseSVN označeny speciálním překryvem, který uvádí, že před úpravou potřebujete získat zámek.

Zámky jsou zaznamenávány v umístění pracovní kopie, stejně jako majitelem. Pokud máte několik pracovních kopií (doma, v práci), pak můžete mít pouze zámek v jedné z těchto pracovních kopií.

Pokud jeden z vašich spolupracovníků získá zámek a pak odjede na dovolenou, aniž by ho uvolnil, co uděláte? Subversion poskytuje prostředky k vyražení zámku. Uvolnění zámku v držení někoho jiného, je označováno jako Rozbití zámku a násilné získání zámku, který již někdo vlastní, je označován jako Ukradnutí zámku. Přirozeně to nejsou věci, které byste měli brát na lehkou váhu, chcete-li zůstat přáteli se svými spolupracovníky.

Zámky jsou zaznamenány v úložišti, a znak zámku je vytvořen ve Vaší místní pracovní kopii. Pokud existuje rozpor, například pokud někdo jiný rozbil zámek, znak místního zámku se stává neplatným. Úložiště je vždy rozhodný odkaz.

Získání zámku

Vyberte soubor(y) v pracovní kopii, pro které chcete získat zámek, pak vyberte příkaz TortoiseSVNUzamknout....

Obrázek 4.61. Dialogové okno Uzamknutí

Dialogové okno Uzamknutí


Zobrazí se dialogové okno, kde můžete zadat komentář, takže ostatní uvidí, proč jste zamkl soubor. Komentář je nepovinný a v současné době používán pouze se svnserve úložišťmi. Jestliže (a pouze jestliže), musíte ukrást zámek někoho jiného, zaškrtněte políčko Ukrást zámek a poté klikněte na OK.

Můžete nastavit vlastnost projektu tsvn:logtemplatelock k poskytnutí šablony zprávy pro uživatele k vyplnění jako zprávu uzamknutí. Viz „Nastavení projektu“ pro návod, jak nastavit vlastnosti.

Pokud vyberete adresář a potom použijete TortoiseSVNUzamknout... dialogové okno uzamknutí se otveře s každým souborem v každém podadresáři vybraným pro zamknutí. Pokud opravdu chcete zamknout celou hierarchie, toto je způsob, jak to udělat, ale mohly byste se stát velmi neoblíbenými u svých spolupracovníků, pokud je do celého projektu nepustíte. Používejte opatrně ...

Uvolnění zámku

Abyste se ujistili, že nezapomenete uvolnit zámek, který už nepotřebujete, jsou uzamčené soubory zobrazeny v dialogovém okně odevzdání a ve výchozím nastavení jsou vybrány. Pokud budete v odevzdání pokračovat, zámky, které držíte na vybraných souborech, jsou odstraněny i když soubory nebyly změněny. Pokud na některém souboru nechcete uvolnit zámek, můžete zrušit jejich zaškrtnutí (pokud nejsou upraveny). Pokud chcete zachovat zámek na souboru, který jste upravili, musíte zaškrtnout políčko Ponechat zámky před odevzdáním změn.

K ručnímu uvolnění zámku, vyberte soubor(y) v pracovní kopii, kterým chcete uvolnit zámek, pak vyberte příkaz TortoiseSVNUvolnit zámek Nic dalšího k zadání není a tak TortoiseSVN zkontaktuje úložiště a zámky uvolní. Můžete také použít tento příkaz na adresář, aby všechny zámky byly rekurzivně uvolněny.

Kontrola stavu zámku

Obrázek 4.62. Dialogové okno Zjistit Změny

Dialogové okno Zjistit Změny


Chcete-li vidět, jaké zámky Vy a ostatní držíte, můžete použít TortoiseSVNZjistit změny.... Místně držené znaky zámků se objeví okamžitě. Chcete-li zkontrolovat zámky držené ostatními (a zjistit, zda některý z Vašich zámků nebyl rozbit nebo ukraden), musíte kliknout na Zkontrolovat Úložiště.

Z kontextového menu tu můžete také získat a uvolnit zámky, stejně jako rozbít nebo ukrást zámky držené ostatními.

Vyhněte se Rozbíjení a Krádeži Zámků

Pokud rozbijete nebo ukradnete zámek někoho jiného, aniž byste jim to řekli, mohli byste potenciálně způsobit ztrátu práce. Pokud pracujete s neslučitelnými typy souborů a ukradnete zámek někoho jiného, jakmile zámek uvolníte, můžou odevzdat své změny a přepsat Vaše. Subversion neztratí data, ale Vy jste ztratili ochranu proti týmové práci, kterou Vám uzamknutí dalo.

Převést Neuzamčené Soubory na Pouze Pro Čtení

Jak bylo uvedeno výše, nejvíce efektivní způsob, jak používat zamykání je nastavit vlastnost svn:needs-lock na soubory. Viz „Nastavení projektu“ pro návod, jak nastavit vlastnosti. Soubory s touto vlastností budou vždy získávány a aktualizovány s nastaveným příznakem pouze pro čtení, pokud Vaše pracovní kopii nedrží zámek.

Pro připomenutí, TortoiseSVN používá speciální překryvy pro sdělení tohoto stavu.

Máte-li provozovat zásadu, kde každý soubor musí být uzamčen, pak můžete shledat snadnějším používat funkci auto-vlastnosti Subversion pro nastavení vlastností automaticky při každém přidání nových souborů. Přečtěte si „Automatické nastavení vlastnosti“ pro další informace.

Hákové Skripty Uzamknutí

Při vytváření nového úložiště se Subversion 1.2 nebo vyšší, jsou v úložišti vytvořeny čtyři šablony háků v adresáři hooks. Tyto skripty jsou volány před a po získání a před a po uvolnění zámku.

Je dobrý nápad instalovat na serveru hákový skript po-zamknutí a po-odemknutí, který pošle e-mail se jménem souboru, který byl uzamčen. S takovým skriptem na místě, můžou být všichni Vaši uživatelé oznámeni pokud někdo uzamkne/odemkne soubor. Můžete najít příklad hákového skriptu hooks/post-lock.tmpl v adresáři úložiště.

Můžete také použít háky k zakázání rozbití nebo kradení zámků, nebo třeba toto omezit na jmenovaného správce. Nebo možná budete chtít poslat e-mail majiteli, když je jeden z jejich zámků rozbit nebo ukraden.

Přečtěte si „Hákové skripty na straně serveru“ pro více informací.

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.

Kdo Změnil Který Řádek?

Někdy je třeba vědět nejen to, které řádky se změnily, ale také kdo přesně změnil určité řádky v souboru. V tu dobu příkaz TortoiseSVNObvinit..., někdy také označován jako Okomentovat, přijde vhod.

Tento příkaz vypíše, pro každý řádek v souboru autora a revizi kdy byl řádek změněn.

Obviňovat ze souborů

Obrázek 4.64. Dialogové okno Okomentování / Obvinění

Dialogové okno Okomentování / Obvinění


Pokud nemáte zájem o změny z předchozích revizí, můžete nastavit revizi, z které by mělo obvinění začít. Nastavte toto na 1, chcete-li vinu za každou revizi.

Ve výchozím nastavení je soubor obvinění zobrazen v aplikaci TortoiseBlame, která zvýrazní různé revize, aby byly čitelnější. Pokud chcete tisknout, nebo upravit soubor obvinění, zvolte Použít textový prohlížeč pro prohlédnutí obvinění.

Můžete určit způsob, jakým jsou změny mezery a konec řádků řešeny. Tyto možnosti jsou popsány v „Možnosti konců řádků a mezer“. Výchozí chování je zacházet se všemi rozdíly v mezerách a koncích řádků jako skutečné změny, ale chcete-li ignorovat změnu odsazení a najít původního autora, můžete si zde vybrat vhodnou volbu.

Můžete také zahrnout informace o sloučení, pokud si přejete, i když získávání ze serveru s touto možností může trvat podstatně déle. Když jsou řádky sloučené z jiného zdroje, informace o vině ukazují revizi, kdy byla změna v původním zdroji provedena a také revizi, kdy byla sloučena do tohoto souboru.

Po stisknutí OK TortoiseSVN začne schraňovat data pro vytvoření souboru obvinění. Jakmile je proces obvinění dokončen výsledek je zapsán do dočasného souboru, který si můžete prohlédnout.

Obrázek 4.65. TortoiseBlame

TortoiseBlame


TortoiseBlame, který je součástí TortoiseSVN, dělá soubor obvinění čitelnější. Když podržíte myš nad řádkem ve sloupci informací o obvinění, všechny řádky se stejnou revizí jsou zobrazeny s tmavším pozadím. Řádky z jiných revizí, které byly změněny od stejného autora, jsou zobrazeny se světlým pozadím. Zbarvení nemusí být tak jasné, pokud máte obrazovku nastavenu na režim zobrazení 256 barev.

Pokud kliknete levým tlačítkem na řádek, jsou všechny řádky se stejnou revizí zvýrazněny a řádky z jiných revizí stejného autora jsou zvýrazněny světlejší barvou. Toto zvýraznění je pevné, což vám umožní pohybovat myší bez ztráty zvýraznění. Klikněte opět na tuto změnu pro vypnutí zvýraznění.

Komentáře revizí (zprávy záznamu) jsou uvedeny v rámečku nápovědy kdykoliv myší najedete nad sloupec informací obvinění. Pokud chcete zkopírovat zprávu záznamu za revizi, použijte kontextové menu, které se objeví, když klepnete pravým tlačítkem na sloupec informací obvinění.

Můžete vyhledávat ve zprávě obvinění pomocí UpravitNajít.... To Vám umožní vyhledat čísla revizí, autorů a obsah souboru. Zprávy záznamů nejsou zahrnuty do hledání - pro jejich vyhledávání byste měli použít Dialogové okno záznamů.

Můžete také přeskočit na konkrétní číslo řádku pomocí UpravitJdi na řádek....

Pokud je myš nad sloupci informací o obvinění, je k dispozici kontextové, které pomáhá s porovnáváním revizí a zkoumání historie, použitím čísla revize řádku pod kurzorem myši jako odkaz. Kontextové menuObvinit předchozí revizi vytvoří zprávu obvinění pro stejný soubor, ale pomocí předchozí revize jako horní hranice. To Vám dává zprávu obvinění pro stav souboru těsně před řádkem, na který se díváte, byl naposledy změněn. Kontextové menuZobrazit změny spustí prohlížeč rozdílu. Ukáže Vám, co se v odkazované revizi změnilo. Kontextové menuZobrazit záznam zobrazí dialogové okno záznamu revize začínající zmíněnou revizi.

Pokud potřebujete lepší vizuální indikátor kde jsou nejstarší a nejnovější změny, zvolte ZobrazitZabarvit stáří řádků. To použije barevný gradient pro zobrazení novějších linky červeně a starší řádky modře. Výchozí zbarvení je poměrně světlé, ale můžete jej změnit pomocí nastavení TortoiseBlame.

Používáte-li Sledování Sloučení a požádali jste o informace o sloučení, při spuštění obvinění, pak jsou sloučené řádky zobrazeny trochu jinak. Kde se řádky změnily v důsledku sloučení z jiné cesty, TortoiseBlame zobrazí revizi a autora poslední změny v původním souboru, spíše než revizi, kde ke sloučení došlo. Tyto řádky jsou označeny zobrazením revize a autora v kurzívě. Revize, kde ke sloučení došlo, je zobrazena odděleně v popisku, když najedete myší nad sloupce informací o vině. Pokud nechcete, aby se sloučené řádky takto zobrazovaly, zrušte zaškrtnutí políčka Zahrnout informace o sloučení, při spuštění obvinění.

Pokud chcete vidět cesty podílející se na sloučení, zvolte ZobrazitSloučit cesty. Toto zobrazí cestu, kde řádek byl naposledy změněn, s výjimkou změny vyplývající ze sloučení.

Revize uvedená v informaci o vině představuje poslední revize, kde byl obsah tohoto řádku změněn. Pokud byl soubor vytvořen zkopírováním jiného souboru, pak dokud řádek nezměníte, bude jeho revize obvinění zobrazovat poslední změny v původním zdrojovém souboru, ne revizi, kde byla kopie provedena. To platí i pro cesty zobrazené v informacích o sloučení. Cesta ukazuje místo úložiště, kde byla poslední změna tohoto řádku provedena.

Do Nastavení TortoiseBlame lze vstoupit pomocí TortoiseSVNNastavení... v kartě TortoiseBlame. Navštivte „Nastavení TortoiseBlame“.

Obvinit Rozdíly

Jedním z omezení zprávy Obvinění je, že pouze ukazuje soubor takový, jaký byl v určité revizi a ukazuje poslední osobu, která změnila každý řádek. Někdy chcete vědět, jaká byla provedena změna, stejně jako kdo ji provedl. Pokud kliknete pravým tlačítkem na řádek v TortoiseBlame, máte položku kontextového menu pro zobrazení změn provedených v této revizi. Ale pokud chcete vidět změny a informace o obvinění zároveň, pak potřebujete kombinaci porovnání a zprávy obvinění.

Dialogové okno záznamu revizí obsahuje několik voleb, které Vám toto umožní provést.

Obvinit Revize

V horním panelu vyberte 2 revize, poté zvolte Kontextové menuObvinit revize. Tím se stáhnou data obvinění za 2 revize, pak použijte prohlížeč rozdílů a porovnejte oba soubory obvinění.

Obvinit Změny

Vyberte jednu revizi v horním panelu, pak vyberte jeden soubor ve spodním panelu a zvolte Kontextové menuObvinit změny. Tím se stáhnou data obvinění pro vybranou a předchozí revizi, pak použijte prohlížeč rozdílů a porovnejte oba soubory obvinění.

Porovnat a Obvinit s Pracovním Originálem

Zobrazte záznam pro jeden soubor a v horním panelu vyberte jednu revizi, pak zvolte Kontextové menuPorovnat a obvinit s pracovním originálem. Tím se stáhnou data vybrané revize a souboru v pracovním originálu, pak použijte prohlížeč rozdílu a porovnejte oba soubory obvinění.

Průzkumník Úložiště

Někdy je třeba pracovat přímo v úložišti, aniž byste měli pracovní kopii. To je úkol pro Průzkumníka úložiště. Stejně jako průzkumník a překryvy ikon Vám umožní zobrazit Vaši pracovní kopii, takže Průzkumník Úložiště Vám umožňuje zobrazit strukturu a stav úložiště.

Obrázek 4.66. Průzkumník Úložiště

Průzkumník Úložiště


S Průzkumníkem úložiště můžete provést příkazy jako kopírovat, přesunout, přejmenovat, ... přímo v úložišti.

Průzkumník úložiště vypadá velmi podobně jako průzkumník Windows, kromě toho, že ukazuje obsah úložiště při konkrétní revizi, nikoli soubory ve Vašem počítači. V levém panelu vidíte adresářovou strukturu a v pravém panelu obsah vybraného adresáře. V horní části Okna Průzkumníka Úložiště, můžete zadat URL úložiště a revize, které chcete procházet.

Složky, které mají vlastnost svn:externals jsou rovněž v průzkumníku úložiště uvedeny. Tyto složky jsou zobrazeny s malou šipku indikující, že nejsou součástí struktury úložiště, pouze odkazy.

Tak jako průzkumník Windows, můžete kliknout na záhlaví sloupce v pravém panelu, pokud chcete nastavit jejich pořadí. A stejně jako v průzkumníkovi Windows je kontextové menu k dispozici v obou panelech.

Kontextové menu souboru Vám umožňuje:

  • Otevře zvolený soubor a to buď ve výchozím prohlížeči pro tento typ souboru, nebo s programem, který vyberete.

  • Upravit vybraný soubor. Toto získá dočasnou pracovní kopii a spustí výchozí editor pro tento typ souboru. Když editor zavřete, pokud změny byly uloženy, pak bude zobrazeno dialogové okno odevzdání, kde můžete zadat komentář a změnu odevzdat.

  • Zobrazit záznam revize pro daný soubor, nebo zobrazit graf všech revizí, abyste mohli vidět, odkud soubor pochází.

  • Obvinit soubor, abyste zjistili, kdo změnil který řádek a kdy.

  • Získat jeden soubor. Tímto se vytvoří řídká pracovní kopie, která obsahuje právě tento jeden soubor.

  • Smazat nebo přejmenovat soubor.

  • Uložit kopii souboru bez verze na Váš pevný disk.

  • Zkopírovat URL zobrazenou v liště adresy do schránky.

  • Vytvořit kopii souboru a to buď do jiné části úložiště, nebo do pracovní kopie s kořenem ve stejném úložišti.

  • Zobrazit/Upravit vlastnosti souboru.

  • Vytvořit zástupce, takže můžete rychle znovu spustit průzkumníka úložiště otevřený přímo v tomto místě.

Kontextové menu pro adresář Vám umožňuje:

  • Zobrazit záznam revize pro tento adresář nebo zobrazit graf všech revizí, takže můžete vidět, odkud adresář pochází.

  • Export adresáře do místní kopie bez verze na Vašem pevném disku.

  • Získání adresáře pro vytvoření místní pracovní kopie na Vašem pevném disku.

  • Vytvořit nový adresář v úložišti.

  • Přidat soubory nebo adresáře bez verze přímo do úložiště. Toto je ve skutečnosti Subversion operace Import.

  • Smazat nebo přejmenovat adresář.

  • Udělejte si kopii adresáře, buď do jiné části úložiště, nebo do pracovní kopie s kořenem ve stejném úložišti. Toto může být také použito k vytvoření větve/značky, aniž byste museli získat pracovní kopii.

  • Zobrazit/Upravit vlastnosti adresáře.

  • Označte adresář pro srovnání. Označený adresář je zobrazen tučně.

  • Porovnejte adresář s dříve označeným a to buď jako sjednocený rozdíl, nebo jako seznam změněných souborů, které pak mohou být vizuálně porovnány s výchozím nástrojem rozdílu. To může být užitečné zejména při porovnání dvou značek, nebo kmene a větve, abyste viděli, co se změnilo.

Zvolíte-li dva adresáře v pravém panelu, můžete zobrazit rozdíly buď jako sjednocený rozdíl, nebo jako seznam souborů, které lze vizuálně porovnat s výchozím nástrojem rozdílů.

Zvolíte-li v pravém podokně více adresářů, můžete získat všechny najednou do společného nadřazeného adresáře.

Pokud zvolíte 2 značky, které jsou zkopírovány ze stejného kořene (většinou /kmen/), můžete použít Kontextové menuZobrazit záznam... pro zobrazení seznamu revizí mezi dvěma body značek.

Externí položky (odkazované pomocí svn:externals jsou také uvedeny v průzkumníku úložiště a dokonce můžete vstoupit do obsahu adresáře. Externí položky jsou označeny červenou šipkou, která je nad nimi.

Můžete použít F5 pro obnovení zobrazení jako normálně. Tím se obnoví vše, co je momentálně zobrazeno. Pokud chcete přednačíst nebo aktualizovat informace pro uzly, které ještě nebyly otevřeny použíjte Ctrl-F5. Poté, k rozšiření libovolného uzlu dojde okamžitě bez zpoždění v síti, zatímco jsou informace načítány.

Průzkumníka úložiště můžete také použít pro táhni a pusť operace. Pokud přetáhnete adresář z průzkumníka Windows do průzkumníka úložiště, bude do úložiště importován. Nezapomeňte, že pokud přetáhnete více položek, budou importovány v samostatných odevzdáních.

Pokud chcete přesunout položku do úložiště, stačí ji přetáhnout levým tlačítkem myši na nové umístění. Pokud raději chcete vytvořit kopii než položkou pohybovat, tak použijte Ctrl-táhnutí levým tlačítkem myši místo toho. Při kopírování kurzor má znamínko plus na něm, stejně jako v Průzkumníkovi Windows.

Pokud chcete kopírovat/přesunout soubor nebo adresář na jiné místo a také dát mu nové jméno najednou, můžete položku táhnout pravým tlačítkem myši nebo Ctrl-táhnout pravým tlačítkem myši místo použití táhnutí levým tlačítkem. V takovém případě je zobrazeno dialogové okno přejmenování, kde můžete zadat nový název souboru nebo adresáře.

Pokaždé, když provedete změny v úložišti pomocí jedné z těchto metod, zobrazí se Vám dialogové okno zadání zprávy záznamu. Pokud jste přetáhli něco omylem, je to také Vaše šance jak činnost zrušit.

Někdy, když se pokusíte otevřít cestu, obdržíte chybovou zprávu namísto detailů položky. K tomu může dojít, pokud jste zadali neplatnou adresu URL, nebo pokud nemáte oprávnění k přístupu, nebo pokud je na serveru nějaký jiný problém. Pokud potřebujete zkopírovat tuto zprávu a zahrnout ji do e-mailu, stačí na ni kliknout pravým tlačítkem myši a zvolit Kontextové menuKopírovat chybovou zprávu do schránky, nebo jednoduše použít Ctrl+C.

Záložky url/úložišť jsou zobrazeny pod současnými složkami úložiště v zobrazení stromu vlevo. Můžete je přidat pravým kliknutím na jakýkoli soubor nebo složku a zvolením Kontextové nabídkyPřidat do záložek. Kliknutím na záložku přejdete na toto úložiště a soubor/složku.

Grafy Revizí

Obrázek 4.67. Graf Revize

Graf Revize


Někdy je třeba vědět, kdy byly větve a značky vzaty z kmene a ideální způsob, jak zobrazit tento druh informací je ve formě grafu nebo stromové struktury. Pak potřebujete TortoiseSVNGraf Revizí...

Tento příkaz analyzuje historii revizí a pokusí se vytvořit strom ukazující body, v nichž byly kopie odebrány a kdy byly větve/značky smazány.

Důležité

Za účelem vytvoření grafu, musí TortoiseSVN načíst všechny zprávy záznamu z kořene úložiště. Netřeba dodávat, že toto může trvat několik minut i s úložištěm o několik tisíc revizí, v závislosti na rychlosti serveru, sítě atd. Pokud se pokusíte o něco takového v projektu Apache, který má v současnosti přes 500.000 revizí mohli byste nějakou dobu čekat.

Dobrou zprávou je, že pokud používáte uchovávání záznamu, musíte toto čekaní protrpět pouze jednou. Poté, jsou data záznamů vedena na místní úrovni. Uchování záznamů se zapíná v nastavení TortoiseSVN.

Uzly Grafu Revizí

Každý uzel grafu revizí reprezentuje revizi v úložišti, kde se něco ve stromu změnilo, na který se díváte. Různé typy uzlů mohou být rozlišeny podle tvaru a barvy. Tvary jsou pevné, ale barvy lze nastavit pomocí TortoiseSVNNastavení

Přidané nebo zkopírované položky

Položky, které byly přidány, nebo vytvořeny kopírováním jiného souboru/adresáře jsou zobrazeny pomocí zaobleného obdélníku. Výchozí barva je zelená. Značky a kmeny jsou považovány za zvláštní případ a je použít jiný odstín v závislosti na TortoiseSVNNastavení.

Smazané položky

Smazané položky, např. větev, která již není zapotřebí, jsou zobrazeny pomocí osmiúhelníku (obdélník s odříznutými rohy). Výchozí barva je červená.

Přejmenované položky

Přejmenované položky jsou také zobrazeny pomocí osmiúhelníku, ale výchozí barva je modrá.

Nejvyšší revize větve

Grafu je obvykle omezen na zobrazení bodů větví, ale často je také užitečné mít možnost vidět příslušné HEAD revize pro každou větev. Pokud zvolíte Zobrazit HEAD revize, bude každý uzel HEAD revize zobrazen jako elipsa. Nezapomeňte, že HEAD tady odkazuje na poslední revizi odevzdanou na této cestě, ne na HEAD revizi úložiště.

Revizi pracovní kopie

Pokud zobrazíte graf revizí z pracovní kopie, můžete se rozhodnout pro zobrazení základní revize v grafu pomocí Zobrazit revize pracovní kopie, která označuje základní uzel s tučným obrysem.

Změněná pracovní kopie

Pokud jste vyvolali graf revizí z pracovní kopie, můžete se rozhodnout pro zobrazení dalších uzlů reprezentující Vaše upravené pracovní kopie pomocí Zobrazit změny pracovní kopie. Ve výchozím nastavení se jedná o eliptický uzel s tučným červeným obrysem.

Normální položka

Všechny ostatní položky jsou zobrazeny pomocí prostého obdélníku.

Nezapomeňte, že ve výchozím nastavení graf zobrazuje pouze body, kde byly položky přidány, kopírovány nebo smazány. Ukázat všechny revize projektu vytvoří velký graf v netriviálních případech. Pokud opravdu chcete vidět všechny revize, kdy byly provedeny změny, existuje pro toto volba v menu Zobrazit a na panelu nástrojů.

Výchozí zobrazení (seskupení vypnuto) umisťuje uzly tak, že jejich svislá poloha je v přísném pořadí revizí, takže budete mít vizuální kritérium pro pořadí, ve kterém byly věci provedeny. Tam, kde jsou dva uzly ve stejném sloupci je pořadí velmi zřejmé. Když jsou dva uzly v sousedních sloupcích posun je mnohem menší, protože není nutné, bránit uzlům v překrývání a v důsledku toho, je pořadí trochu méně nápadné. Takové optimalizace jsou nutné k udržení složitých grafů v přiměřené velikosti. Vezměte prosím na vědomí, že toto uspořádání používá okrajů uzlu na starší straně jako odkaz, tj. spodní okraj uzlu, když je graf zobrazen s nejstarším uzlem vespod. Odkazující okraj je významný, protože tvary uzlů nejsou všechny ve stejné výšce.

Změna zobrazení

Vzhledem k tomu, že graf revizí je často docela složitý, existuje řada funkcí, které lze použít pro přizpůsobení zobrazení tak, jak chcete. Jsou k dispozici v menu Zobrazit menu a na panelu nástrojů.

Seskupit větve

Výchozí chování (seskupování vypnuto) má všechny řady řazeny striktně revizí. Výsledkem je, že dlouho žijící větve s málo odevzdáními zabírají celý sloupec jen pro pár změn a graf je pak velmi široký.

Tento režim seskupí změny podle větví, tak, že neexistuje žádné globální řazení podle revizi: Po sobě jdoucí revize ve větvi budou uvedeny v (často) po sobě jdoucích řádcích. Podvětve jsou ale uspořádány tak, aby pozdější větve byli zobrazeny ve stejném sloupci nad staršími větvemi, aby graf byl štíhlý. Výsledkem je, že daný řádek může obsahovat změny z různých revizí.

Nejstarší nahoře

Normálně graf ukazuje nejstarší revize dole a strom roste nahoru. Použijte-li tuto volbu graf místo toho poroste shora dolů.

Zarovnat stromy nahoru

Pokud je graf rozdělen do několika menších stromů, mohou se buď objevit v přirozeném seřazení podle revize, nebo zarovnány v dolní části okna, v závislosti na tom, zda používáte možnost Seskupit větve. Použijte místo toho tuto volbu pro růst všech stromů ze shora dolů.

Snížit zkřížení linek

Tato možnost je standardně zapnuta a zamezuje zobrazení grafu s velmi matoucími zkříženými čarami. Nicméně může také zobrazit rozložení sloupců v méně logických umístěních, například v diagonální linii, spíše než ve sloupci a graf může vyžadovat větší prostor k vykreslení. Pokud je toto problém, můžete možnost vypnout z menu Zobrazit.

Rozdílné názvy cest

Dlouhé názvy cest můžou zabrat hodně prostoru a způsobit, že rámečky uzlů jsou velmi velké. Pomocí této možnosti zobrazíte pouze změněné části cest, nahradí společnou část tečkami. Např. pokud vytvoříte větev /Větve/1.2.x/dok/html z /kmen/dok/ html větev by mohlá být zobrazena v zhuštěné formě jako /Větve/1.2.x /.. protože v posledních dvou úrovních, dok a html se nezměnila.

Zobrazit všechny revize

Toto provede přesně to, co čekáte, a zobrazí každou revizi, kde se něco (ve stromě, kterého graf zobrazujete). Při dlouhé historii toto může vytvořit opravdu obrovský graf.

Zobrazit HEAD revize

Tím je zajištěno, že poslední revize v každé větvi je vždy v grafu zobrazena.

Přesné zdroje kopie

Když je vytvořena větev/značka, výchozí chování je ukázat větev jako převzatou z posledního uzlu, kde byla provedena změna. Přesněji řečeno toto je nepřesné, protože větve jsou často vyrobeny ze současné vrchní revize spíše než z konkrétní revize. Takže je možné ukázat více správnou (ale méně užitečnou) revizi, která byla použita k vytvoření kopie. Všimněte si, že tato revize může být mladší, než revize HEAD zdrojové větve.

Složit značky

Když projekt má mnoho značek, zobrazovat každou značku jako samostatný uzel v grafu zabírá hodně prostoru a zahaluje zajímavější strukturu vývojové větve. Zároveň budete chtít mít snadný přístup k obsahu značky, abyste mohli porovnávat revize. Tato volba skryje uzly značek a zobrazí na jejich místě popisek pro uzel, z kterého byly zkopírovány. Ikona značky na pravé straně zdrojového uzlu naznačuje, že byly vyrobeny značky. Toto zobrazení velmi zjednodušuje.

Všimněte si, že pokud je použita samotná značka jako zdroj pro kopírování, možná jako nová větev založená na značce, pak tato značka bude zobrazena jako samostatný uzel spíše než složená.

Skrýt smazané cesty

Skryje cesty, které již nesou přítomny v revizi HEAD v úložiště, např. smazané větve.

Pokud jste zvolili volbu Složit značky, pak odstraněná větev, z které byly značky vybrány, bude stále zobrazena, jinak by také zmizely značky. Poslední revize, která byla označena bude zobrazena v barvě použité pro smazané uzly místo zobrazení samostatné revize smazání.

Pokud zvolíte možnost Skrýt značky, pak tyto větve znovu zmizí, protože nejsou potřeba k zobrazení značek.

Skrýt nepoužívané větve

Skryje větve, kde nebyly žádné změny do souboru, nebo podadresáře nebyly odevzdány. To nemusí nutně znamenat, že větev nebyla použita, jen, že nebyly provedeny žádné změny v této její části.

Zobrazit revizi pracovní kopie

Označí revizi v grafu, která odpovídá aktualizaci revize položky, pro kterou byl graf vytvořen. Pokud jste právě aktualizovali, bude to HEAD, ale pokud ostatní odevzdali změny od poslední aktualizace Vaší pracovní kopie může být o několik revizí níže. Uzel je označen tím, že mu tučný obrys.

Zobrazit změny pracovní kopie

Pokud Vaše pracovní kopie obsahuje místní změny, tato možnost je vykreslí jako samostatné eliptické uzly, spojené zpátky k uzlu, kdy Vaše pracovní kopie byla naposledy aktualizována. Výchozí barva obrysu je červená. Možná budete muset aktualizovat graf použitím F5 pro zachycení posledních změn.

Filtr

Někdy graf revizí obsahuje více revizí, než chcete zobrazit. Tato volba otevře dialogové okno, které umožňuje omezit rozsah zobrazovaných revizí a schovat určité cesty podle názvu.

Pokud skryjete konkrétní cestu a tento uzel má podřazené uzly, budou se podřazené zobrazovat jako samostatný strom. Pokud chcete také skrýt všechny podřazené, použijte tlačítko Odstranit celý podstrom(y).

Pruhy stromu

V případě, že graf obsahuje několik stromů, je někdy užitečné střídat barvy na pozadí, aby bylo snadnější stromy rozlišit.

Zobrazit přehled

Zobrazí malý obrázek celého grafu, s aktuálně zobrazeným oknem jako obdélník, který můžete táhnout. To Vám umožní snadnější navigaci v grafu. Nezapomeňte, že pro velmi velké grafy se přehled může stát zbytečný kvůli extrémnímu zmenšení a proto v takových případech nebude zobrazen.

Použití Grafu

Aby byla navigace ve velkém grafu přehlednější, použijte okno přehledu. To ukazuje celý graf v malém okně, s aktuálně zobrazenou části zvýrazněnou. Můžete táhnout zvýrazněnou část ke změně zobrazené oblasti.

Datum revize, autor a komentáře jsou uvedeny v rámečku nápovědy kdykoliv myší najedete nad rámečkem revize.

Zvolíte-li dvě revize (Použijte Ctrl-kliknutí levým tlačítkem myši), můžete použít kontextovou nabídku k zobrazení rozdílů mezi těmito revizemi. Můžete si vybrat k zobrazení rozdíly v bodech vytvoření větví, ale většinou budete chtít ukázat rozdíly v konečných bodech větve, tj. v revizi HEAD.

Můžete zobrazit rozdíly jako sjednocený rozdíl, který zobrazuje veškeré rozdíly v jediném souboru s minimálním kontextem. Pokud jste zvolili Kontextové menuPorovnat Revize bude Vám předložen seznam změněných souborů. Dvakrát klikněte na název souboru pro získání obou revizí souboru a porovnejte je s využitím vizuální nástroje rozdílů.

Pokud kliknete pravým tlačítkem myši na revizi, můžete použít Kontextové menuZobrazit záznam pro zobrazení historie.

Můžete také sloučit změny ve vybraných revizích do jiné pracovní kopie. Dialogové okno výběru adresáře Vám umožňuje zvolit pracovní kopii, do které sloučit, ale poté už se nezobrazí žádné dialogové okno pro potvrzení, ani příležitost sloučení vyzkoušet. Je dobrý nápad sloučit do nezměněné pracovní kopie, takže můžete vrátit změny, pokud to nevyjde! Toto je užitečná funkce, pokud chcete sloučit vybrané revize z jedné větve do druhé.

Naučte se číst Graf Revizí

Noví uživatelé mohou být překvapeni tím, že graf revizí ukazuje něco, co neodpovídá mentálnímu model uživatele. Například, pokud revize mění více kopií nebo větví souboru nebo adresáře, pak bude pro tuto jedinou revizi zobrazeno více uzlů. Je dobrým zvykem začít s možnostmi nalevo na panelu nástrojů a přizpůsobit graf krok-za-krokem, dokud se nepřiblíží k Vašemu mentálnímu model.

Všechny možnosti filtrování se snaží, aby ztratili co nejmíň informací jak je to možné. Například, to muže způsobit, že některé uzly změní barvu. Kdykoliv je výsledek nečekaný, vraťte zpět poslední operaci filtrování a pokuste se si uvědomit, co je zvláštní té konkrétní revizi nebo větvi. Ve většině případů by byl původně očekávaný výsledek filtrové operace buď nepřesný, nebo zavádějící.

Obnovení zobrazení

Pokud chcete znovu zkontrolovat server pro novější informace, můžete jednoduše aktualizovat zobrazení pomocí F5. Pokud používáte úschovu záznamu (ve výchozím nastavení zapnuta), toto zkontroluje úložiště pro novější odevzdání a načte pouze ty nové. Pokud je úschova záznamu v režimu offline, pokusí se také vrátit online.

Pokud používáte úschovu záznamu a myslíte si, že obsah zprávy, nebo autor se mohl změnit, měli byste použít dialogové okno záznamu k obnovení zpráv, které potřebujete. Vzhledem k tomu, že graf revizí pracuje z kořene úložiště, museli bychom zrušit celou úschovu záznamu a znovunaplnění by mohlo trvat velmi dlouhou dobu.

Čištění stromů

Ve velkém stromu může být obtížné se orientovat a někdy budete chtít skrýt částí, nebo rozbít do lesa s menšími stromy. Pokud najedete ukazatelem myši nad místo, kde čára uzle vstupuje, nebo vystupuje z uzlu, uvidíte jednu nebo více výstupných tlačítek, která Vám toto umožní udělat.

Klikněte na tlačítko minus ke sbalení připojeného podstromu.

Klikněte na tlačítko plus pro rozbalení sbaleného stromu. Když byl strom sbalen, toto tlačítko zůstane viditelné pro aby naznačilo skrytý podstrom.

Klikněte na znaménko křížku k oddělení připojeného podstromu a zobrazit ho jako samostatný strom na grafu.

Klikněte na tlačítko kruhu k připojení rozděleného stromu. Když je strom oddělen, toto tlačítko zůstane viditelné, aby naznačilo, že existuje oddělený podstrom.

Klikněte na pozadí grafu pro hlavní kontextové menu, které nabízí možnosti Rozbalit vše a Spojit vše. Pokud žádná větev nebyla sbalena, nebo rozdělena, kontextové menu se nezobrazí.

Export Pracovní Kopie Subversion

Někdy možná budete chtít čistou kopii vašeho pracovního stromu, bez adresáře .svn, např. pro vytvoření archivu tar vašeho zdroje, nebo pro export na webový server. Namísto vytvoření kopie a pak smazání adrsáře .svn ručně, TortoiseSVN nabízí příkaz TortoiseSVNExportovat... . Export z URL a export z pracovní kopie jsou prováděny trochu jinak.

Obrázek 4.68. Dialogové okno Export z URL

Dialogové okno Export z URL


Spustíte-li tento příkaz na adresář bez verze, TortoiseSVN bude předpokládat, že vybraný adresář je cíl a otevřete dialogové okno pro zadání URL a revize k exportu. Toto dialogové okno má možnosti pro export adresáře pouze horní úrovně, vynechat externí odkazy a potlačit styly konce řádků pro soubory, které mají nastavenu vlastnost svn:eol-style.

Samozřejmě můžete také exportovat přímo z úložiště. Použijte Průzkumníka Úložiště pro navigaci k příslušnému podstromu v úložišti, pak použijte Kontextové menu Exportovat. Zobrazí se dialogové okno Exportovat z URL, které je popsáno výše.

Spustíte-li tento příkaz z vaší pracovní kopie budete požádáni o místo pro uložení čisté pracovní kopie, bez adresáře .svn . Ve výchozím nastavení jsou exportovány pouze soubory s verzí, ale můžete použít zaškrtávací políčko Exportovat také soubory bez verze, aby zahrnul jakékoliv další soubory bez verze, které existují ve vaší pracovní kopii a ne v úložišti. Externí odkazy používající svn:externals můžou být v případě potřeby vynechány.

Dalším způsobem, jak exportovat z pracovní kopie je táhnout pravým tlačítkem myši adresář pracovní kopie do jiného umístění a zvolit Kontextové menuSVN Exportovat sem nebo Kontextové menuSVN Exportovat vše sem či Kontextové menuSVN Exportovat změněné položky sem

Pokud při exportu z pracovní kopie cílový adresář již obsahuje adresář se stejným názvem jako ten, který exportujete, budete mít možnost přepsat existující obsah, nebo vytvořit nový adresář s automaticky vytvořeným názvem, např. Cílový (1).

Export jednotlivých souborů

Dialogové okno exportu neumožňuje export jednotlivých souborů, i když Subversion to dokáže.

Chcete-li exportovat jednotlivé soubory s TortoiseSVN, musíte použít průzkumníka úložiště („Průzkumník Úložiště“). Stačí přetáhnout soubor(y), které chcete exportovat z průzkumníka úložiště tam, kde je chcete mít v průzkumníku Windows, nebo pomocí kontextové nabídky průzkumníka úložiště pro export souborů.

Export Změn Stromu

Pokud chcete exportovat kopii struktury stromu projektu obsahující pouze soubory, které se změnily v konkrétní revizi, nebo mezi jakýmikoli dvěma revizemi, použijte funkci porovnání revizí popsanou v „Porovnávání adresářů“.

Pokud chcete exportovat kopii struktury stromu projektu, ale obsahující pouze soubory, které byly změněny místně, podívejte se na SVN Exportovat změněné položky sem výše.

Smazání pracovní kopie ze správy verzí

Někdy máte pracovní kopii, kterou chcete převést zpět na normální adresář, bez adresáře .svn. Stačí pouze odstranit adresář .svn z kořene pracovní kopie.

Nebo můžete exportovat adresář do sebe. V průzkumníku Windows přetáhněte pravým tlačítkem myši kořenový adresář pracovní kopie z panelu souborů na sebe v panelu složek. TortoiseSVN detekuje tento zvláštní případ a zeptá se, zda chcete vytvořit pracovní kopii bez verze. Pokud odpovíte ano, bude kontrolní adresář odstraněn a budete mít jednoduchý, adresářový strom bez verze.

Přemístit pracovní kopii

Obrázek 4.69. Dialogové okno přemístění

Dialogové okno přemístění


Pokud Vaše úložiště z nějakého důvodu změnilo své umístění (IP/URL). Možná jste dokonce zaseknutí a nemůžete odevzdávat a nechcete znovu získávat Vaši pracovní kopii z nového umístění a přesunovat všechny změněná data zpátky do nové pracovní kopie, pak TortoiseSVNPřemístit je příkaz který hledáte. V podstatě dělá velmi málo: přepíše všechny URL, které jsou spojené s každým souborem a adresářem novou URL.

Poznámka

Tato operace funguje pouze na kořen pracovní kopie. Takže tato položka kontextového menu se zobrazí pouze pro kořeny pracovní kopie.

Můžete být překvapeni zjištěním, že TortoiseSVN se spojí s úložištěm v rámci této operace. Vše, co dělá, je provedení několika jednoduchých kontrol, aby se ujistil, že nová adresa URL skutečně odkazuje na stejné úložiště jako stávající pracovní kopie.

Varování

Jedná se o velmi řídce používanou operaci. Příkaz přemístit je použit pouze pokud se URL kořene úložiště změnila. Možné důvody jsou:

  • IP adresa serveru se změnila.

  • Protokol se změnil (např. http:// na https://).

  • Kořenová cesta úložiště v nastavení serveru se změnila.

Jinak řečeno, budete muset přemístit, pokud Vaše pracovní kopie odkazuje na stejné místo ve stejném úložišti, ale úložiště se přesunulo.

Nepoužívá se, když:

  • Chcete-li přesunout do jiného úložiště Subversion. V takovém případě byste měli provést čisté získání z nového umístění úložiště.

  • Chcete-li překlopit na jinou větev, nebo adresář ve stejném úložišti. Pro toto použijte TortoiseSVNPřeklopit.... Přečtěte si „Získat nebo Překlopit...“ pro více informací.

Použijete-li přemístit v obou výše uvedených případech, naruší to Vaši pracovní kopii a dostanete mnoho nevysvětlitelných chybových zpráv při aktualizaci, odevzdání, atd. Jakmile k tomuto dojde, opravou je úplně nové získání.

Integrace se Systémy pro Sledování Chyb/Problémů

V oblastech vývoje softwaru je velmi běžné, aby se změny vztahovaly k určitému problému nebo ID chyby. Uživatelé systémů pro sledování chyb (sledování problémů) můžou přiřadit změny provedené v Subversion ke konkrétnímu ID v jejich systému pro sledování problémů. Většina systémů pro sledování problémů proto poskytne hákový skript před odevzdáním, který rozebere zprávu záznamu pro nalezení ID chyby, s nimiž je odevzdání spojené. Je to poněkud náchylné k chybám, neboť závisí na uživateli, aby napsal vhodnou zprávu záznamu tak, že hákový skript ji může správně zpracovat.

TortoiseSVN může pomoci uživateli dvěma způsoby:

  1. Když uživatel zadá zprávu záznamu, dobře formulovaná věta zahrnující číslo problému spojeným s odevzdáním může být přidáno automaticky. Tím se snižuje riziko, že uživatel zadá číslo problému způsobem, který nástroje sledování chyb nemůžou správně rozebrat.

    Nebo TortoiseSVN může zvýraznit část zadané zprávy záznamu, které je pak rozpoznám systémem pro sledování problémů. Tímto způsobem uživatel ví, že zpráva záznamu může být správně rozebrána.

  2. Když uživatel prochází zprávy záznamu, TortoiseSVN vytvoří odkaz z každé ID chyby ve zprávě záznamu, který zobrazí prohlížeč s uvedeným problémem.

Přidání Čísel Problémů do zpráv záznamu

V TortoiseSVN můžete integrovat nástroj pro sledování chyb podle vašeho výběru. Pro toto musíte nastavit některé vlastnosti, které začínají bugtraq:. Musí být nastaveny na adresáře: („Nastavení projektu“)

Obrázek 4.70. Dialogové Okno Vlastností Bugtraq

Dialogové Okno Vlastností Bugtraq


Když upravujete některou z vlastností bugtraq, použije se speciální editor vlastností pro snadnější nastavení příslušných hodnot.

Existují dva způsoby, jak integrovat TortoiseSVN se systémem pro sledování problémů. Jedním z nich je založen na jednoduchých řetězcích, druhý je založen na regulárních výrazech. Vlastnosti používané oběma přístupy jsou:

bugtraq:url

Nastavte tuto vlastnost na URL Vašeho nástroje pro sledování chyb. Musí být řádně zakódóván URI a musí obsahovat %BUGID%. %BUGID% je nahrazeno číslem chyby, které jste zadali. To umožňuje TortoiseSVN zobrazit odkaz v záznamu, takže když se díváte na záznam revizí, můžete skočit přímo do nástroje pro sledování chyb. Tuto vlastnost nemusíte poskytovat, ale pak TortoiseSVN zobrazí pouze číslo chyby bez odkazu na ni. Např. projekt TortoiseSVN používá http://issues.tortoisesvn.net/?do=details&id=%BUGID%.

Můžete také použít relativní URL místo absolutních. To je užitečné, když Váš systém pro sledování problémů je na stejné doméně/serveru jako zdrojové úložiště. V případě, že se jméno domény změní, nemusíte upravovat vlastnost bugtraq:url. Existují dva způsoby, jak zadat relativní URL:

If it begins with the string ^/ it is assumed to be relative to the repository root. For example, ^/../?do=details&id=%BUGID% will resolve to https://tortoisesvn.net/?do=details&id=%BUGID% if your repository is located on https://tortoisesvn.net/svn/trunk/.

A URL beginning with the string / is assumed to be relative to the server's hostname. For example /?do=details&id=%BUGID% will resolve to https://tortoisesvn.net/?do=details&id=%BUGID% if your repository is located anywhere on https://tortoisesvn.net.

bugtraq:warnifnoissue

Nastavte toto na true pokud chcete, aby Vás TortoiseSVN varoval kvůli prázdnému textovému poli čísla problému. Platné hodnoty jsou true/false. Pokud není nastaveno, předpokládá se false.

Číslo Problému v Textovém Poli

Jednoduše, TortoiseSVN ukazuje uživateli samostatné vstupní pole, kde může být zadáno ID chyby. Pak je samostatný řádek připojen na začátek/konec zprávy záznamu, kterou uživatel zadal.

bugtraq:message

Tato vlastnost aktivuje systém sledování chyb v režimu Vstupního pole. Pokud je tato vlastnost nastavena, potom Vás TortoiseSVN vyzve k zadání čísla problému, při odevzdání změn. Je použita na přidání řádku ke konci zprávy záznamu. Musí obsahovat %BUGID%, který je při odevzdání nahrazen číslem problému. To zaručuje, že Váš záznam odevzdání obsahuje odkaz na číslo problému, které je vždy v jednotném formátu a může být rozebráno Vaším nástrojem pro sledování chyb pro přiřazení čísla problému s určitým odevzdáním. Jako příklad můžete použít Issue:%BUGID%, ale to závisí na Vašem nástroji.

bugtraq:label

Tento text je zobrazen TortoiseSVN v dialogovém okni odevzdání k označení rámečku úprav, kde zadáte číslo problému. Pokud není nastavena, je zobrazeno Bug-ID / Issue-Nr:. Mějte na paměti, že okno nezmění svoji velikost pro tento štítek, takže udržujte velikost štítku pod 20-25 znaků.

bugtraq:number

Pokud je nastavena na true, pouze čísla jsou povolena v textovém poli čísla problému. Výjimkou je čárka, takže můžete oddělit čárkou několik čísel. Platné hodnoty jsou true/false. Pokud není nastavena, předpokládá se true.

bugtraq:append

Tato vlastnost určuje, zda je ID chyby připojeno (true) na konec zprávy záznamu nebo je vloženo (false) na začátek zprávy. Platné hodnoty jsou true/false. Pokud není nastavena, předpokládá se true, aby se neporušili stávající projekty.

Čísla Problému Pomoci Regulárních Výrazů

V přístupu s regulárními výrazy, TortoiseSVN neukazuje samostatné vstupní pole, ale označuje části zprávy záznamu, které uživatel zadá, které je pak rozpoznána systémem pro sledování problémů. Toto se provádí, zatímco uživatel píše zprávu záznamu. To také znamená, že ID chyby může být kdekoliv uvnitř zprávy záznamu! Tato metoda je mnohem flexibilnější a používá se v rámci projektu TortoiseSVN.

bugtraq:logregex

Tato vlastnost aktivuje systém pro sledování chyb v režimu Regulárních výrazů. Obsahuje buď jeden regulární výraz, nebo dva regulární výrazy oddělené novým řádkem.

Pokud jsou nastaveny dva výrazy, pak je první výraz používán jako předfiltr pro nalezení výrazů, které obsahují ID chyb. Druhý výraz pak vyjme ID chyby z výsledku prvního regulárního výrazu. To Vám umožní použít seznam ID chyb a výrazů přirozeného jazyka, pokud to tak chcete. Např. můžete opravit několik chyb a zadat řetězec, něco jako: Tato změna řeší problémy #23, #24 a #25 .

Pokud chcete odchytávat ID chyb, jako ve výrazu výše uvnitř zprávy záznamu, můžete použít následující řetězec regulárního výrazu, které jsou používané v projektu TortoiseSVN: [Ip]roblemy?:? (\s*(,|and)?\s*#\d+)+ a (\d+).

První výraz vybere problémy #23, #24 a #25 z okolní zprávy záznamu. Druhý vytáhne prostá desítková čísla z výstupu prvního výrazu, takže vrátí 23, 24 a 25 pro použití jako ID chyby.

Rozebereme si trochu první regulární výraz, musí začínat se slovem problem, případně velkými písmeny. Může být následován y (více než jeden problém) a i dvojtečkou. Toto je následované jednou nebo více skupinami, z nichž každá má nulovou nebo více odsazenou mezeru, dobrovolnou čárku nebo volitelně a a další volitelné místo. Nakonec je povinné # a povinné číslo z desítkové soustavy.

Pokud je nastaven pouze jeden výraz, pak se musí prosté ID chyby shodovat ve skupinách řetězce regulárního výrazu. Příklad: [Ip]roblem(?:s)? #?(\d+) Tato metoda je vyžadována několika systémy pro sledování problémů, např. Trac, ale je těžší sestavit regulární výraz. Doporučujeme tuto metodu používat pouze pokud dokumentace Vašeho systému pro sledování problémů neřekne.

If you are unfamiliar with regular expressions, take a look at the introduction at https://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/.

Není vždy snadné vytvořit správný regulární výraz, takže, abychom Vám pomohli, je dostupné dialogové okno pro vyzkoušení, zabudované do dialogového okna vlastností bugtraq. Klikněte na tlačítko vpravo od polí pro úpravu, aby jste ho zobrazili. Zde můžete zadat nějaký text pro vyzkoušení, a měnit každý regulární výraz pro zobrazení výsledků. Pokud je regulární výraz neplatný, pozadí rámečku pro úpravu změní svoji barvu na červenou.

Pokud obě vlastnosti bugtraq:message a bugtraq:logregex jsou nastaveny, logregex má přednost.

Tip

I v případě, že nemáte systém pro sledování problémů s hákovým skriptem před odevzdáním zpracovávajícího zprávy záznamu, stále můžete toto použít pro přetvoření problémů uvedených ve zprávách záznamu do odkazů!

A i když odkazy nepotřebujete, čísla problémů se zobrazují jako samostatné sloupce v dialogovém okně záznamu, takže je snazší najít změny, které se vztahují k určitému problému.

Některé vlastnosti tsvn: vyžadují hodnotu true/false. TortoiseSVN také rozumí yes jako synonymum pro true a no jako synonymum pro false.

Nastavení Vlastností Adresáře

Tyto vlastnosti musí být nastaveny na adresáře, aby systém fungoval. Když odevzdáte soubor nebo adresář vlastnosti jsou čteny z tohoto adresáře. Pokud zde vlastnosti nejsou nalezeny, bude TortoiseSVN hledat výše přes adresářový strom dokud nenajde buď adresář bez verze, nebo kořen stromu (např. C:\). Pokud si jste jisti, že každý uživatel získává pouze např. z kmen/ a ne z nějakého podadresáře, pak stačí, pokud nastavíte vlastnosti v kmen/. Pokud si být jisti nemůžete, měli byste nastavit vlastnosti rekurzivně na každý podadresář. Nastavení vlastnosti hlouběji v hierarchii projektu přepíše nastavení na vyšší úrovni (blíže k kmen/).

Od verze 1.8 používají TortoiseSVN a Subversion takzvané zděděné vlastnosti, tím jsou vlastnosti použité na složku také automaticky nastaveny ve všech podsložkách. Tím odpadá nutnost nastavovat vlastnosti ve všech složkách, stačí je nastavit pouze v kořenové.

Pouze na vlastnosti projektu tj. tsvn:, bugtraq: a webviewer: můžete použít políčko Rekurzivní při nastavení vlastnost pro všechny podadresáře v hierarchii, aniž by byly nastaveny na všechny soubory.

Když přidáte nový podadresář do pracovní kopie pomocí TortoiseSVN, budou veškeré vlastnosti projektu, obsažené v nadřazeném adresáři, také automaticky přidány do nového podřazeného adresáře.

Žádné Informace z systému pro sledování problémů v Průzkumníku Úložiště

Protože integrace systému pro sledování problémů závisí na přístupu k vlastnostem Subversion, výsledky uvidíte pouze při použití získané pracovní kopie. Získávání vlastností na dálku je pomalá operace, takže tuto funkci neuvidíte v činnosti v průzkumníku úložiště, ledaže byste spustili průzkumníka úložiště z vaší pracovní kopie. Pokud jste spustili průzkumníka úložiště zadáním adresy URL úložiště tuto funkci neuvidíte.

Ze stejného důvodu se vlastnosti projektu nebudou automaticky šířit, když je podřazený adresář přidán pomocí průzkumníka úložiště.

Integrace systému pro sledování problémů není omezena na TortoiseSVN; lze jej použít s jakýmkoli klientem Subversion. Pro více informací, si přečtěte úplné Specifikace Integrace Systému pro Sledování Problémů v úložišti zdrojového kódu TortoiseSVN. („Licence“ vysvětluje, jak získat přístup k úložišti.)

Získávání informací od Systému pro Sledování Problémů

Předchozí část se zabývala přidáním informace do zpráv záznamů. Ale co když potřebujete získat informace ze systému pro sledování problémů? Dialogové okno odevzdání má rozhraní COM, které umožňuje integraci s externím programem, který umí mluvit s Vaším systémem pro sledování problémů. Typicky se budete chtít systému dotázat na seznam otevřených problému přiřazených Vám, takže si můžete vybrat problémy, které se v tomto odevzdání řeší.

Každé takové rozhraní je samozřejmě vysoce specifické pro váš systém sledování problémů, takže tuto část nemůžeme poskytnout a popis vytvoření takového programu je mimo rozsah této příručky. Definice rozhraní a ukázkové zásuvné moduly v C# a C++/ATL lze získat z adresáře contrib v úložišti TortoiseSVN. („Licence“ vysvětluje, jak získat přístup k úložišti.) Shrnutí API je také uvedeno v 7 – „Rozhraní IBugtraqProvider. Další (fungující) příklad zásuvného modulu v C# je Gurtle, který implementuje požadované rozhraní COM k interakci s Google Code systémem pro sledování problémů.

Pro ilustraci předpokládejme, že Váš správce systému Vám poskytl zásuvný modul pro systém pro sledování problémů, který jste nainstalovali a že jste nastavili některé Vaše pracovní kopie, aby zásuvný modul používali v dialogovém okně nastavení TortoiseSVN. Při otevření dialogového okna odevzdání z pracovní kopie, které byl zásuvný modul přidělen, zobrazí se nové tlačítko v horní části dialogového okna.

Obrázek 4.71. Ukázka dialogového okna dotazu na systém pro sledování problémů

Ukázka dialogového okna dotazu na systém pro sledování problémů


V tomto příkladu si můžete vybrat jeden nebo více otevřených problémů. Zásuvný modul pak může vytvořit speciálně formátovaný text, který se přidává ke zprávě záznamu.

Integrace s Internetovými Prohlížeči úložiště

There are several web-based repository viewers available for use with Subversion such as ViewVC and WebSVN. TortoiseSVN provides a means to link with these viewers.

Můžete integrovat prohlížeč úložiště dle vlastního výběru v TortoiseSVN. Pro toto musíte nastavit některé vlastnosti, které určují vazby. Musí být nastaveny na adresáře: („Nastavení projektu“)

webviewer:revision

Nastavte tuto vlastnost na URL Vašeho prohlížeče úložiště pro zobrazení všech změn v určité revizi. Musí být řádně zakódováno URI a musí obsahovat %REVISION%. %REVISION% se nahrazuje příslušným číslem revize. To umožňuje TortoiseSVN zobrazit položku kontextové nabídky v dialogovém okně záznamu Kontextové menuZobrazit revize v internetovém prohlížeči.

webviewer:pathrevision

Nastavte tuto vlastnost na URL Vašeho prohlížeče úložiště pro zobrazení změn v konkrétním soubor v konkrétní revizi. Musí být řádně zakódována URI a musí obsahovat %REVISION% a %PATH%. %PATH% se nahrazuje cestou relativní ke kořenu úložiště. To umožňuje TortoiseSVN zobrazit položku kontextového menu v dialogovém okně záznamu Kontextové menuZobrazit revizi pro cestu v internetovém prohlížeči Například, pokud kliknete pravým tlačítkem v dolním panelu dialogového okna záznamu na záznam souboru /kmen/zdr/soubor pak %PATH% v URL bude nahrazen /kmen/zdr/soubor.

Můžete také použít relativní URL místo absolutní. To je užitečné v případě, že Váš internetový prohlížeč je na stejné doméně/serveru jako zdrojové úložiště. V případě, že se jméno domény změní, nemusíte upravovat vlastnosti webviewer:revision a webviewer:pathrevision. Formát je stejný jako u vlastnosti bugtraq:url. Viz „Integrace se Systémy pro Sledování Chyb/Problémů“.

Nastavení Vlastností Adresáře

Tyto vlastnosti musí být nastaveny na adresáře, aby systém fungoval. Když odevzdáte soubor nebo adresář vlastnosti jsou čteny z tohoto adresáře. Pokud zde vlastnosti nejsou nalezeny, bude TortoiseSVN hledat výše přes adresářový strom dokud nenajde buď adresář bez verze, nebo kořen stromu (např. C:\). Pokud si jste jisti, že každý uživatel získává pouze např. z kmen/ a ne z nějakého podadresáře, pak stačí, pokud nastavíte vlastnosti v kmen/. Pokud si být jisti nemůžete, měli byste nastavit vlastnosti rekurzivně na každý podadresář. Nastavení vlastnosti hlouběji v hierarchii projektu přepíše nastavení na vyšší úrovni (blíže k kmen/).

Pouze na vlastnosti projektu tj. tsvn:, bugtraq: a webviewer: můžete použít políčko Rekurzivní při nastavení vlastnost pro všechny podadresáře v hierarchii, aniž by byly nastaveny na všechny soubory.

Když přidáte nový podadresář do pracovní kopie pomocí TortoiseSVN, budou veškeré vlastnosti projektu, obsažené v nadřazeném adresáři, také automaticky přidány do nového podřazeného adresáře.

Omezení při Používání Průzkumníka úložiště

Vzhledem k tomu, že integrace internetového prohlížeče závisí na přístupu k vlastnostem Subversion, výsledky uvidíte pouze při použit získané pracovní kopie. Získávání vlastností na dálku je pomalá operace, takže tuto funkci neuvidíte v činnosti v průzkumníku úložiště, ledaže byste spustili průzkumníka úložiště z vaší pracovní kopie. Pokud jste spustili průzkumníka úložiště zadáním adresy URL úložiště tuto funkci neuvidíte.

Ze stejného důvodu se vlastnosti projektu nebudou automaticky šířit, když je podřazený adresář přidán pomocí průzkumníka úložiště.

Nastavení TortoiseSVN

Chcete-li zjistit, na co různá nastavení jsou, nechte na chvíli kurzor myši na rámečku pro úpravy/zaškrtávacím políčkem ... a vyskočí užitečný popisek.

Obecná nastavení

Obrázek 4.72. Dialogové okno nastavení, stránka Obecné

Dialogové okno nastavení, stránka Obecné


Toto dialogové okno umožňuje zadat preferovaný jazyk a specifická nastavení Subversion.

Jazyk

Vybere jazyk uživatelského rozhraní. Pro možnost zvolení jiného jazyka, než výchozí angličtiny, je zapotřebí nainstalovat odpovídající jazykový balíček.

Zkontrolovat aktualizace

TortoiseSVN zkontaktuje svoje internetové stránky pro stahování pravidelně, zda je novější verze programu k dispozici. Pokud ano, ukáže Vám odkaz na oznámení v dialogovém okně odevzdání. Použitím Zkontrolovat nyní pokud chcete odpověď hned. Nová verze nebude stažena; jednoduše získáte dialogové okno s informací říkající, že nová verze je k dispozici.

Systémové zvuky

TortoiseSVN má tři vlastní zvuky, které jsou nainstalovány ve výchozím nastavení.

  • Chyba

  • Upozornění

  • Varování

Můžete si vybrat jiné zvuky (nebo tyto zvuky vypnout úplně) pomocí ovládacího panelu Windows. Konfigurace je zkratka pro Kontrolní Panel.

Použít Dialogová Okna Aero

Ve Windows Vista a novějších systémech toto kontroluje, zda dialogová okna použijí styl Aero.

Vytvořit knihovnu

Ve Windows 7 můžete vytvořit knihovnu, v níž jsou seskupeny pracovní kopie, které jsou rozptýleny na různých místech ve Vašem systému.

Vzorek globálního ignorování

Vzorky globálního ignorování jsou používány k prevenci souborů bez verze objevovat se např. v dialogovém okně odevzdání. Soubory shodující se se vzory jsou také ignorovány importem. Ignorujte soubory či adresářů zadáním jména nebo přípony. Vzory jsou odděleny mezerami, např. bin obj *.bak *.~?? *.Jar *.[Tt]mp. Tyto vzory by neměly obsahovat žádné oddělovače cest. Všimněte si také, že neexistuje žádný způsob, jak rozlišovat mezi soubory a adresáři. Přečtěte si „Shoda vzorů v seznamech k Ignorování“ pro více informací o syntaxi shody vzorů.

Nezapomeňte, že vzory ignorování, které zde zadáte, budou mít vliv také na další Subversion klienty běžící na Vašem PC, včetně příkazové řádky klienta.

Výstraha

Pokud použijete konfigurační soubor pro nastavení vzorů globálního ignorování, přepíše nastavení, které provedete zde. Do konfiguračního souboru Subversion můžete vstoupit pomocí Upravit jak je popsáno níže.

Tento vzorec ignorování bude mít vliv na všechny vaše projekty. Nemá verzi, takže se neprojeví u ostatních uživatelů. Naproti tomu můžete také použít vlastnost s verzí svn:ignore nebo svn:global-ignores k vyloučení souborů nebo adresářů ze správy verzí. Přečtěte si „Ignorování Souborů a Adresářů“ pro více informací.

Nastavit data souboru na poslední čas odevzdání

Tato volba říká TortoiseSVN, aby nastavil data souborů na poslední čas odevzdání, při provádění odevzdání nebo aktualizace. Jinak TortoiseSVN použije aktuální datum. Pokud vyvíjíte software je obecně nejlepší používat aktuální datum, protože sestavovací systémy se běžně dívají na časová razítka, aby se rozhodli, které soubory potřebujete ke kompilaci. Pokud používáte poslední čas odevzdání a vrátíte se ke starší revizi souboru, nemusí se Váš projekt kompilovat tak, jak jste očekávali.

Konfigurační soubor Subversion

Použijte Upravit pro přímou úpravu konfiguračního souboru Subversion. Některá nastavení nelze měnit přímo v TortoiseSVN a je třeba je nastavit zde. Pro více informací o souboru nastavení Subversion si prohlédněte Oblast nastavení běhu programu. Část o Nastavení automatických vlastností je obzvlášť zajímavá a to se provádí zde. Všimněte si, že Subversion umí číst informace o nastavení z několika míst a musíte vědět, který z nich má přednost. V části Nastavení a registr systému Windows se dozvíte více.

Použít místní změny svn:externals při aktualizaci

Tato volba řekne TortoiseSVN, aby vždy použil místní změny vlastnosti svn:externals při aktualizaci pracovní kopie.

Nastavení Kontextového Menu

Obrázek 4.73. Dialogové okno Nastavení, Stránka Kontextového menu

Dialogové okno Nastavení, Stránka Kontextového menu


Tato stránka Vám umožňuje určit, které z položek kontextového menu TortoiseSVN se objeví v hlavním kontextovém menu a které se objeví v menu TortoiseSVN. Ve výchozím nastavení je většina položek odškrtnuta a objeví se v podmenu.

K dispozici je speciální případ pro Získat zámek. Můžete ho samozřejmě povýšit na nejvyšší úroveň s využitím výše uvedeného seznamu, ale protože většina souborů nepotřebuje zamknout, toto jen udělá větší nepořádek. Nicméně, soubor s vlastností svn:needs-lock potřebuje tuto činnost pokaždé, když je upraven, takže v tom případě je velmi užitečné mít ho na nejvyšší úrovni. Zaškrtnutím políčka zde znamená, že když je vybrán soubor, který má nastavenu vlastnost svn:needs-lock, Získat zámek se objeví vždy na nejvyšší úrovni.

Většinu času kontextové menu TortoiseSVN nebudete potřebovat, kromě adresářů, které jsou pod správou verzí Subversion. Pro adresáře bez verzí budete kontextové menu opravdu potřebovat, když chcete provést získání. Pokud zaškrtnete volbu Skrýt menu pro cesty bez verzí, TortoiseSVN nepřidá sv položky do kontextového menu pro adresáře bez verze. Ale jsou přidány pro všechny položky a cesty v adresáři s verzí. Můžete je dostat zpět pro adresáře bez verzí tím, že podržíte klávesu Shift, při zobrazení kontextového menu.

Pokud existují některé cesty na Vašem počítači, kde prostě nechcete, aby se kontextové menu TortoiseSVN vůbec neobjevovalo, můžete je uvést v kolonce v dolní části.

Dialogové Okno Nastavení TortoiseSVN 1

Obrázek 4.74. Dialogové Okno Nastavení, Dialogová okna Stránka 2

Dialogové Okno Nastavení, Dialogová okna Stránka 2


Toto dialogové okno Vám umožňuje nastavit některé z dialogových oken TortoiseSVN tak, jak se Vám líbí.

Výchozí počet zpráv záznamu

Omezuje počet zpráv záznamu, které TortoiseSVN načte při prvním výběru TortoiseSVNZobrazit záznam Užitečné pro pomalé připojení k serveru. Můžete vždy použít Zobrazit vše nebo Dalších 100 pro získání více zpráv.

Typ písma pro zprávy záznamu

Vybere typ písma a velikost, které použít pro zobrazení samotné zprávy záznamu ve prostředním panelu dialogového okna záznamu revizí a při psaní zprávy záznamu v dialogovém okně Odevzdání.

Krátký formát data a času ve zprávách záznamu

Pokud standardní dlouhé zpráv používají až příliš mnoho místa na obrazovce použijte krátký formát.

Může dvojklikem v seznamu záznamů porovnat s předchozí revizí

Pokud se často ocitnete, že porovnáváte revize v horním panelu dialogového okna záznamu, můžete použít tuto možnost k povolení této činnosti při dvojitém kliknutí. Ta není ve výchozím nastavení povolena, protože načtení rozdílů je často dlouhodobý proces a mnoho lidí se raději vyhne čekání po dvojkliknutí omylem, což je důvod, proč tato možnost není ve výchozím nastavení povolena.

Automaticky zavřít

TortoiseSVN může automaticky zavřít všechna dialogová okna průběhu, když je akce dokončena bez chyb. Toto nastavení Vám umožňuje vybrat podmínky pro uzavření dialogových oken. Výchozí nastavení (doporučeno) je Zavřít ručně, které umožňuje přezkoumat všechny zprávy a zkontrolovat, co se stalo. Můžete se však rozhodnout, že chcete ignorovat některé typy zpráv a dialogové okno zavřít automaticky, pokud nejsou k dispozici žádné zásadní změny.

Automaticky zavřít, pokud nejsou žádná sloučení, přidání nebo smazání znamená, že dialogové okno průběhu se uzavře, pokud proběhly jednoduché aktualizace, ale pokud změny z úložiště byly sloučeny s Vašimi, nebo pokud některé soubory byly přidány nebo odstraněny, zůstane dialogové okno otevřené. Zůstane také otevřené, pokud se vyskytly nějaké konflikty nebo chyby v průběhu operace.

Automaticky zavřít, pokud nejsou žádné konflikty uvolní více kritéria a zavře dialogové okno i když došlo ke sloučení, přidání nebo odstranění. Nicméně pokud se nevyskytly žádné konflikty nebo chyby, zůstane dialogové okno otevřené.

Automaticky zavřít, pokud nejsou žádné chyby vždy zavře dialogové okno i když se vyskytly konflikty. Jedinou podmínkou, která dialogové okno nechá otevřené, je chybový stav, který nastane, když Subversion není schopno dokončit úkol. Například, pokud aktualizace selže, protože server je nedostupný, nebo se odevzdání nezdařilo, protože je pracovní kopie zastaralá.

Vždy uzavřít dialogová okno pro místní operace

Místní operace jako přidávání souborů nebo vracení změn nemusí kontaktovat úložiště a rychle skončí, takže dialogové okno průběhu je často zbytečné. Tuto možnost vyberte, chcete-li dialogové okno průběhu zavřít automaticky po těchto operacích, ledaže se vyskytly chyby.

Při vrácení zpět použít koš

Když vrátíte místní úpravy, jsou změny zahozeny. TortoiseSVN Vám dává záchrannou síť navíc zasláním upraveného souboru do koše před vrácením původní kopie. Pokud chcete koš přeskočit, tuto volbu odškrtněte.

Použít URL pracovní kopie jako výchozí Z: URL

V dialogovém okně sloučení výchozí chování je, aby URL Z: byla mezi sloučeními uložena do paměti. Nicméně, někteří lidé chtějí slučovat z mnoha různých míst v jejich hierarchii a je pro ně snadnější začít s URL aktuální pracovní kopie. Pak může být upravena, aby odkazovala na obdobnou cestu na jinou větev.

Výchozí cesta získání

Můžete určit výchozí cestu pro získání. Pokud máte všechny Vaše získání na jednom místě, je užitečné mít jednotku a adresář předvyplněný, aby pouze stačilo přidat na konec nový název adresáře.

Výchozí URL získání

Můžete také určit výchozí URL pro získání. Pokud často získáváte podprojekty z velmi velkých projektů, může být užitečné mít URL předvyplněnou, takže stačí na konec přidat jméno podprojektu.

Dialogové Okno Nastavení TortoiseSVN 2

Obrázek 4.75. Dialogové okno Nastavení, Dialogová okna Stránka 2

Dialogové okno Nastavení, Dialogová okna Stránka 2


Rekurzivně do adresářů bez verze

Pokud je toto políčko zaškrtnuto (výchozí stav), pak kdykoli je stav adresáře bez verze uveden v dialogovém okně Přidat, Odevzdat nebo Zjistit změny, každý podřazený soubor a adresář jsou rovněž uvedeny. Zrušíte-li zaškrtnutí tohoto políčka, je zobrazen pouze nadřazený soubor/adresář bez verze. Odškrtnutí redukuje nepořádek v těchto dialogových oknech. V takovém případě, pokud vyberete adresář bez verze pro Přidání, je přidán rekurzivně.

V dialogovém okně Zjistit změny můžete zvolit zobrazení ignorovaných položek. Pokud je toto políčko zaškrtnuto, pak vždy, když je nalezen ignorovaný adresář, budou všechny podřízené položky také zobrazeny.

Použít automatické doplňování cest souborů a klíčových slov

Dialogové okno odevzdání obsahuje zařízení k rozebrání seznamu souborů, které jsou odevzdávány. Zadáte-li první 3 písmena položky v seznamu, zobrazí se okno automatického dokončení a můžete stisknout Enter k dokončení názvu souboru. Zaškrtněte políčko, pokud chcete tuto funkci povolit.

Časový limit v sekundách pro zastavení zpracování automatického dokončení

Analyzátor automatického dokončování, může být velmi pomalý, pokud existuje hodně velkých souborů ke kontrole. Tento limit zabrání, aby dialogové okno odevzdání bylo příliš dlouho nedostupné. Pokud Vám chybí důležité informace v automatickém dokončení, můžete časový limit prodloužit.

Kontrolu pravopisu používat pouze když je nastavena tsvn:projectlanguage

Pokud nechcete používat kontrolu pravopisu pro všechny odevzdání, zaškrtněte toto políčko. Kontrola pravopisu bude i nadále povolena, kde to vlastnosti projektu vyžadují.

Max. počet položek, které se mají držet v historii zpráv záznamu

Když píšete zprávu záznamu v dialogovém okně odevzdání, TortoiseSVN ji uloží pro případné další použití později. Ve výchozím nastavení bude uloženo posledních 25 zpráv záznamu pro každé úložiště, ale tento počet můžete nastavit zde. Pokud máte mnoho různých úložišť, můžete ho snížit, aby se zabránilo zaplnění Vašeho registru.

Nezapomeňte, že toto nastavení se vztahuje pouze na zprávy, které napíšete na tomto počítači. Nemá to nic společného s úschovou záznamu.

Položky vybrat automaticky

Normální chování v dialogovém okně odevzdání je pro všechny změněné položky (s verzí), aby byly vybrány k odevzdání automaticky. Pokud dáváte přednost, aby ze začátku nic nebylo vybráno a vybírat položky k odevzdání ručně, zrušte zaškrtnutí tohoto políčka.

Znovu otevřít dialogové okno po odevzdání, pokud položky nebyly odevzdány

Toto znovu automaticky otevře dialogové okno odevzdání ve stejném adresáři po úspěšném odevzdání. Dialogové okno je znovu otevřeno pouze když některé položky ještě nebyly odevzdány.

Kontaktovat úložiště při spuštění

Ve výchozím nastavení dialogové okno Zjistit změny zkontroluje pracovní kopii a úložiště kontaktuje pouze po kliknutí na tlačítko Zkontrolovat úložiště. Chcete-li, aby úložiště bylo zkontrolováno vždy, můžete použít toto nastavení, aby se tato činnost děla automaticky.

Zobrazit dialogové okno Uzamčení před zamknutím souborů

Když vyberete jeden nebo více souborů a pak použijte TortoiseSVNZámek pro získání zámku na tyto soubory, v některých projektech je obvyklé psát textovou zprávu vysvětlující, proč jste zamkly soubory. Pokud nechcete používat zprávy o zamčení, můžete zrušit zaškrtnutí tohoto políčka k přeskočení dialogového okna a soubory uzamknout okamžitě.

Pokud použijete příkaz zámek na adresář, dialogové okno zamknout je vždy zobrazeno. To Vám také dává možnost vybrat soubory k uzamknutí.

Pokud Váš projekt používá vlastnost tsvn:lockmsgminsize, zobrazí se dialogové okno zamknutí, bez ohledu na toto nastavení, protože projekt vyžaduje zprávy o zamknutí.

Dialogové Okno Nastavení TortoiseSVN 3

Obrázek 4.76. Dialogové okno Nastavení, Dialogová okna Stránka 3

Dialogové okno Nastavení, Dialogová okna Stránka 3


Settings for the repository browser:

Adresáře získávat předem pro rychlejší prohlížení

Pokud je toto políčko zaškrtnuto (výchozí stav), pak průzkumník úložiště bude informace o adresářích získávat v pozadí. Takto budou informace o adresářích dostupné hned, jakmile do jednoho z nich vstoupíte.

Některé servery ale tolik požadavků, co tato možnost požaduje, nezvládají nebo, pokud nejsou správně nastaveny, začnou tyto požadavky považovat za něco špatného a přestanou se jimi zabývat. V takovémto případě můžete tuto možnost zde zakázat.

Zobrazit externí

Pokud je toto políčko zaškrtnuto (výchozí stav), pak průzkumník úložiště zobrazí soubory a adresáře které jsou zahrnuty do vlastnosti svn:externals jako normální soubory a adresáře, ale s překryvnou ikonou, která označuje, že pochází z externího zdroje.

Tak jako s funkcí získávání předem, která je popsána výše, toto může také způsobit velkou námahu slabším serverům. V takovémto případě můžete tuto možnost zde zakázat.

There are two versions of shelfing implemented in SVN. Here you can select which version you want to use. Note that changing this setting might require an OS restart to take effect.

V2

this version is much faster than V3 and is the recommended version to use.

However, the speed comes at a prize: V2 does not handle directory changes, and can't handle copies and moves of files.

V3

this is the latest version of the shelfing feature. It can handle changes to directories as well as file moves/copies.

However, V3 is much slower than V2 and can be unusably slow for big repositories or if you have a slow connection to the repository.

Nastavení Barev TortoiseSVN

Obrázek 4.77. Dialogové okno Nastavení, Strana Barvy

Dialogové okno Nastavení, Strana Barvy


Toto dialogové okno Vám umožňuje nastavit barvy textu použité v dialogových oknech TortoiseSVN tak, jak se Vám líbí.

možný nebo reálný konflikt / zablokovaný

Došlo ke konfliktu při aktualizaci, nebo k ní může dojít během sloučení. Aktualizace je blokována existujícím souborem/adresářem bez verze se stejným názvem jako s verzí.

Tato barva se používá také pro chybové zprávy v dialogových oknech průběhu.

Přidané soubory

Položky přidané do úložiště.

Chybějící / smazané / nahrazené

Položky smazané z úložiště, chybějící, nebo smazané z pracovní kopie a nahrazené jiným souborem se stejným názvem.

Sloučeno

Změny z úložiště byly úspěšně sloučeny s pracovní kopií bez vytváření jakýchkoli konfliktů.

Změněno / kopírováno

Přidat s historií, nebo cestami zkopírovanými z úložiště. Také použity v dialogovém okně záznamu pro záznamy, které zahrnují kopírované položky.

Smazaný uzel

Položka, která byla smazána z úložiště.

Přidaný uzel

Položka, která byla přidána do úložiště operací přidání, kopírování nebo přesunutí.

Přejmenovaný uzel

Položka, která byla v úložišti přejmenována.

Nahrazený uzel

Původní položka byla smazána a nová položka se stejným názvem ji nahradila.

Shoda s filtrem

Při použití filtrování v dialogovém okně záznamu, jsou vyhledávané termíny ve výsledcích zvýrazněny pomocí této barvy.

other settings:

Dark theme

The dialogs in TortoiseSVN can be shown in a dark mode on Windows 10 1809 and later. This feature also requires that dark mode for applications is enabled in the Windows 10 settings.

Důležité

Note that not all controls in all dialogs are shown in a dark theme.

Nastavení Grafu Revizí

Obrázek 4.78. Dialogové okno nastavení, Stránka Graf Revizí

Dialogové okno nastavení, Stránka Graf Revizí


Klasifikační Vzory

Graf revizí se pokusí ukázat jasnější představu o Vaši struktuře úložiště tím, že rozlišuje mez kmenem, větvemi značkami. Protože žádná taková klasifikace není do Subversion zabudována, je tato informace vyjmuta ze jmen cest. Výchozí nastavení předpokládá, že používáte klasické anglické názvy, jak je navrženo v dokumentaci Subversion, ale samozřejmě Vaše využití se mohou lišit.

Určete vzory používané k rozpoznání těchto cest ve třech rámečcích. Vzory budou porovnávány bez citlivosti na velikost písmen, ale musíte je zadat malými písmeny. Zástupné znaky * a ? budou fungovat jako obvykle a můžete použít ; k oddělení více vzorů. Nezadávejte žádné extra mezery, protože budou zahrnuta do odpovídajícího vzoru.

Zjištění odevzdání značky

Nezapomeňte prosím, že tyto vzory jsou také použity ke zjištění odevzdání do značky, nejenom pro graf revizí.

Změnit barvy

Barvy jsou používány v rámci grafu revizí označující typ uzlu, tj. zda je uzel přidaný, smazaný, přejmenovaný. Abychom Vám pomohli vybrat klasifikace uzlů, můžete povolit graf revizí míchat barvy pro sdělení údaje o typu a klasifikaci uzlu. Pokud je políčko zaškrtnuto, je míchání používáno. Pokud toto políčko není zaškrtnuto, je barva použita pouze k označení uzlu typu. Pomocí dialogového okna výběru barvy přidělte konkrétní barvy k použití.

Barvy Grafu Revizí

Obrázek 4.79. Dialogové okno nastavení, Stránka Barvy Grafu Revizí

Dialogové okno nastavení, Stránka Barvy Grafu Revizí


Tato stránka Vám umožňuje nastavit používané barvy. Nezapomeňte, že barva zde uvedená je plná barva. Většina uzlů je vybarvena pomocí směsi barvy typu uzlu, barvy pozadí a nepovinnou barvou klasifikace.

Smazaný Uzel

Položky, které byly ve stejné revizi smazány a nebyly zkopírovány nikam jinam.

Přidaný Uzel

Nově přidané položky, nebo zkopírované (přidané s historií).

Přejmenovaný Uzel

Položky odstraněné z jednoho místa a přidané do jiného ve stejné revizi.

Změněný Uzel

Jednoduchá změna bez jakéhokoliv přidání nebo smazání.

Nezměněný uzel

Může být použita k zobrazení revizi použité jako zdroj kopie i když žádná změna (položky, pro kterou byl graf vytvořen) se v této revizi nekonala.

HEAD uzel

Současná revize HEAD v úložišti.

Uzel pracovní kopie

Pokud jste se rozhodli zobrazit další uzel pro Vaši změněnou pracovní kopii, připojenou ke své revizi posledního odevzdání na grafu, použije se tato barvu.

Okraj uzlu pracovní kopie

Pokud jste se rozhodli zobrazit, zda je pracovní kopie změněná, použije se tento barevný okraj na uzel pracovní kopie když jsou změny nalezeny.

Uzly značek

Uzly klasifikované jako značky mohou být smíchány s touto barvou.

Uzly kmene

Uzly klasifikované jako kmen mohou být smíchány s touto barvou.

Vyznačení Složených Značek

Používáte-li složení značek pro úsporu místa, značky jsou vyznačeny ve zdroji kopírování pomocí bloku této barvy.

Vyznačení Vybraného uzlu

Když kliknete levým tlačítkem myši na uzel, je výběr vyznačen blokem této barvy.

Pruhy

Tyto barvy jsou používány, když je graf rozdělen do podstromů a na pozadí je zbarven střídavými pruhy pro rozlišení jednotlivých stromů.

Nastavení Překryvu Ikon

Obrázek 4.80. Dialogové okno nastavení, Stránka Překryv Ikon

Dialogové okno nastavení, Stránka Překryv Ikon


Tato stránka Vám umožňuje vybrat položky, na kterých se zobrazí ikona překryvu TortoiseSVN.

Vzhledem k tomu, že trvá poměrně dlouho načíst stav pracovní kopie, TortoiseSVN používá úschovu pro uložení stavu, takže průzkumník není příliš zpomalován, když zobrazuje překryvy. Můžete si vybrat, který typ úschovy TortoiseSVN má použít podle Vašeho systému a velikosti pracovní kopie zde:

Výchozí

Uchovává všechny informace o stavu v samostatném procesu (TSVNCache.exe). Tento proces sleduje všechny disky pro změny a načte stav, budou-li soubory v pracovní kopii změněny. Proces běží s co nejmenší prioritou, takže ostatní programy nebudou kvůli tomu mít nedostatek zdrojů. To také znamená, že informace o stavu není v reálném čase, ale může trvat několik sekund, než se překryvy změní.

Výhody: překryvy ukazují stav rekurzivně, tj. pokud soubor hluboko uvnitř pracovní kopie je upraven, všechny adresáře až po kořen pracovní kopie bude také zobrazovat překryv změny. A protože tento proces může poslat oznámení do rozhraní, překryvy v levém stromovém zobrazení se obvykle také mění.

Nevýhody: proces probíhá neustále, i když nepracujete na Vašich projektech. Také používá asi 10-50 megabajtů RAM v závislosti na počtu a velikosti Vašich pracovních kopií.

Rozhraní

Uchovávání se provádí přímo uvnitř DLL rozšíření rozhraní, ale pouze pro aktuálně zobrazený adresář. Pokaždé, když přejdete do jiného adresáře, informace o stavu jsou načteny znovu.

Výhody: potřebuje pouze velmi málo paměti (cca 1 MB RAM) a může zobrazit stav v v reálném čase .

Nevýhody: Vzhledem k tomu, že pouze jeden adresář se uchovává, překryvy neukazují stav rekurzivně. Pro velké pracovní kopie může trvat déle zobrazit adresáře v průzkumníkovi, než s výchozím uchováváním. Také sloupec mime-type není k dispozici.

Žádný

S tímto nastavením, TortoiseSVN vůbec nenačítá stav v Průzkumníku. Díky tomu soubory nemají překryv a adresáře mají pouze 'normální' překryv, pokud mají verzi. Žádné jiné překryvy nejsou zobrazeny a ani žádné další sloupce nejsou k dispozici.

Výhody: nepoužívá absolutně žádnou další paměť a vůbec nezpomaluje Průzkumníka při procházení.

Nevýhody: Informace o stavu souborů a adresářů nejsou V Průzkumníku zobrazeny. Chcete-li zjistit, zda pracovní kopie jsou změněné, budete muset použít dialogové okno Zjistit změny.

Ve výchozím nastavení se překryv ikon a kontextové menu zobrazí ve všech dialogových oknech otevřít/uložit, stejně jako v Průzkumníku Windows. Pokud chcete, aby se objevily pouze v Průzkumníku Windows, zaškrtněte políčko Zobrazovat překryvy a kontextové menu pouze v průzkumníku Windows.

You can force the status cache to None for elevated processes by checking the Disable status cache for elevated processes box. This is useful if you want to prevent another TSVNCache.exe process getting created with elevated privileges.

Můžete také zvolit označit adresáře jako změněné, pokud obsahují položky bez verze. To by mohlo být užitečné pro připomenutí, že jste vytvořili nové soubory, které ještě nemají verzi. Tato volba je dostupná pouze při použití výchozího uchovávání stavu (viz níže).

Pokud máte soubory v seznamu změn ignorovat při odevzdání , můžete zvolit, aby jejich stav nebyl šířen na nadřazenou složku. Tímto se stav nadřazené složky nezmění, pokud jsou změněny pouze soubory obsažené v seznamu změn.

Další skupina Vám umožňuje vybrat, které typy úložných médií by mělo zobrazovat překryvy. Ve výchozím nastavení jsou vybrány pouze pevné disky. Můžete dokonce vypnout všechny překryvy ikon, ale jaká by to pak byla legrace?

Síťové jednotky můžou být velmi pomalé, takže ve výchozím nastavení se ikony nezobrazují pro pracovní kopie nacházející se na síťových discích.

USB Flash disky jsou zvláštní případ v tom, že typ jednotky je určen samotným přístrojem. Některé vypadají jako pevné disky a některé jako vyměnitelné jednotky.

Vyloučit Cesty je používáno ke sdělení TortoiseSVN, aby ty cesty, které by se neměly zobrazit s překryvem ikon a sloupcem stavu. To je užitečné, pokud máte nějaké velké pracovní kopie obsahující pouze knihovny, které nebudete vůbec měnit, a proto nepotřebují překryvy, nebo pokud chcete, aby se TortoiseSVN díval pouze do určitých adresářů.

U Jakékoliv cesty, kterou zde určíte, se předpokládá, že bude použita rekurzivně, takže žádný z podřízených adresářů nebude mít překryvy. Pokud chcete vyloučit pouze ten jeden adresář, přidejte? za zadanou cestu.

Totéž platí pro Zahrnout Cesty. Kromě toho, že pro tyto cesty jsou překryvy zobrazeny i když jsou překryvy zakázány pro tento konkrétní typ jednotky, nebo vyloučením cesty jak je uvedeno výše.

Uživatelé se někdy ptají, jak se tyto tři nastavení ovlivňují. Jakákoli cesta se kontroluje se seznamem Vyloučení a Zahrnutí, hledání postupuje nahoru přes adresářovou strukturu, dokud je nalezena shoda. Po nalezení první shody, poslechnout, pravidlo zahrnutí nebo vyloučení. Pokud dojde ke konfliktu, nastavení jednoho adresáře má přednost před rekurzivním nastavením, poté má zahrnutí přednost před vyloučením.

Zde pomůže příklad:

Exclude:
       C:
       C:\vývoj\?
       C:\vývoj	svn\obj
       C:\vývoj	svn\bin

Include:
       C:\vývoj

Tato nastavení vypnou překryvy ikon pro disk C:, s výjimkou c:\vývoj. Všechny uvedené projekty pod tímto adresářem budou zobrazovat překryvy, s výjimkou samotného adresáře c:\vývoj, který je specificky ignorován. Vysoko oběhové binární adresáře jsou rovněž vyloučeny.

TSVNCache.exe také používá tyto cesty k omezení jeho skenování. Pokud chcete, aby hledal pouze ve zvláštních adresářích, zakažte všechny druhy jednotek a zahrňte pouze adresáře, které konkrétně chcete kontrolovat.

Vyloučit Jednotky SUBST

Je často vhodné použít jednotku SUBST k přístupu do vašich pracovních kopií, např. pomocí příkazu

subst T: C:\TortoiseSVN\kmen\dok

nicméně to může způsobit, že se překrývání neaktualizuje, protože TSVNCache dostane pouze jedno oznámení, kdy se soubor změní a to je obecně v původní cestě. To znamená, že Vaše překryvy na subst cestě nemůžou být nikdy aktualizovány.

Snadný způsob, jak toto obejít je vyloučit původní cestu ze zobrazení překryvů, takže překryvy se místo toho zobrazí na subst cestě.

Někdy vyloučíte oblasti, které obsahují pracovní kopie, což ušetří TSVNCache od snímání a monitorování změn, ale stále chcete vizuální indikaci, že tyto adresáře mají verze. Políčko Zobrazit vyloučené adresáře jako 'normální' toto umožňuje provést. S touto volbou se kořenové adresáře pracovní kopie v každé vyloučené lokalitě (typ jednotky odškrtnut, nebo výslovně vyloučen) zobrazí jako normální a aktuální, se zeleným zaškrtnutím. Toto Vám připomene, že se díváte na pracovní kopii, i když překryv adresáře nemusí být správný. Soubory nemají žádné překryvy. Nezapomeňte, že kontextová menu stále fungují, i když překryvy nejsou zobrazeny.

Jako zvláštní výjimka, jednotky A: a B: nejsou pro volbu Zobrazit vyloučené adresáře jako 'normální' nikdy považovány. Důvodem je, že systém Windows je nucen hledat na jednotce, což může mít za následek zpoždění několika sekund při startu Průzkumníka, i když Váš počítač má disketovou mechaniku.

Výběr Sady Ikon

Obrázek 4.81. Dialogové okno nastavení, Stránka Sady Ikon

Dialogové okno nastavení, Stránka Sady Ikon


Můžete změnit sady ikon překrytí na tu, která se Vám nejvíce líbí. Nezapomeňte, že když změníte nastavení překryvu, budete muset restartovat počítač, aby se změny projevily.

Povolené Obslužné Rutiny Překrytí

Obrázek 4.82. Dialogové okno nastavení, Stránka Obslužné Rutiny Ikon

Dialogové okno nastavení, Stránka Obslužné Rutiny Ikon


Protože počet dostupných překryvů je velmi omezen, můžete zvolit, že některé obslužné rutiny zakážete, abyste zajistili, že ty, které chcete, budou načteny. Protože TortoiseSVN používá společnou součást TortoiseOverlays, která je sdílena s ostatními klienty Tortoise (např. TortoiseCVS, TortoiseHg) toto nastavení bude také platit i pro ně.

Nastavení sítě

Obrázek 4.83. Dialogové okno nastavení, Stránka Síť

Dialogové okno nastavení, Stránka Síť


Zde si můžete nastavit proxy server, pokud ho potřebujete, abyste se dostali přes firemní firewall.

Pokud potřebujete mít nastavení proxy serveru pro každé úložiště zvlášť, musíte k nastavení použít Subversion soubor servers. Použitím Upravit ho otevřete přímo. Prohlédněte si Oblast konfigurace běhu programu pro podrobnosti o tom, jak tento soubor použít.

Můžete také určit, který program by měl TortoiseSVN použít k vytvoření zabezpečené připojení svn+ssh do úložišť. Doporučujeme použít TortoisePlink.exe. Jedná se o verzi oblíbeného programu Plink a je součástí TortoiseSVN, ale je sestavena jako aplikace bez okna, takže se neobjeví okno DOS pokaždé, když se přihlásíte.

Musíte zadat celou cestu ke spustitelnému souboru. Pro TortoisePlink.exe toto je standardní TortoiseSVN bin. Použijte tlačítko Procházet pro pomoc při hledání umístění. Upozorňujeme, že pokud cesta obsahuje mezery, musíte ji uzavřít do uvozovek, např.

"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe"

Jeden vedlejší účinek toho, že nemá okno je to, že není nikde místo, kde se můžou zobrazit chybové zprávy, takže pokud se ověření nezdaří, jednoduše dostanete zprávu, něco jako Unable to write to standard output. Z tohoto důvodu doporučujeme, abyste nejprve spojení nastavili pomocí standardního Plink. Když všechno funguje, můžete také použít TortoisePlink s přesně stejnými parametry.

TortoisePlink does not have any documentation of its own because it is just a minor variant of Plink. Find out about command line parameters from the PuTTY website.

Abyste se vyhnuli opakovanému dotazu, můžete také zvážit použití nástroje pro ukládání hesel, jako je Pageant. Ten je také k dispozici ke stažení z webových stránek PuTTY.

Finally, setting up SSH on server and clients is a non-trivial process which is beyond the scope of this help file. However, you can find a guide in the TortoiseSVN FAQ listed under Subversion/TortoiseSVN SSH How-To.

Nastavení Externího Programu

Obrázek 4.84. Dialogové okno Nastavení, Stránka Prohlížeč Rozdílů

Dialogové okno Nastavení, Stránka Prohlížeč Rozdílů


Zde můžete určit vlastní programy rozdílů/ sloučení, které by TortoiseSVN měl použít. Ve výchozím nastavení je použit TortoiseMerge, který je instalován společně s TortoiseSVN.

Přečtěte si „Externí Nástroje Porovnání/Sloučení“ pro seznam některých vnějších programů rozdílů/sloučení, které používají lidé s TortoiseSVN.

Prohlížeč Rozdílů

Externí program rozdílů lze použít pro srovnání různých revizí souborů. Externí program bude muset získat názvy souborů z příkazového řádku, spolu s jinými parametry příkazového řádku. TortoiseSVN používá substituce parametrů s předponou %. Když se setká s jedním z nich, nahradí jej příslušnou hodnotou. Pořadí parametrů bude záležet na programu Rozdílů, který používáte.

%base

Původní soubor beze změny

%bname

Název okna pro základní soubor

%nqbname

Název okna základního souboru, bez uvozovek

%mine

Váš vlastní soubor, s Vašimi změnami

%yname

Název okna pro Váš soubor

%nqyname

Název okna vašeho souboru, bez uvozovek

%burl

URL původního souboru, pokud je k dispozici

%nqburl

URL původního souboru, je-li dostupné, bez uvozovek

%yurl

URL druhého souboru, pokud je k dispozici

%nqyurl

URL druhého souboru, je-li dostupné, bez uvozovek

%brev

Revize původního souboru, pokud je k dispozici

%nqbrev

Revize původního souboru, je-li dostupné, bez uvozovek

%yrev

Revize druhého souboru, pokud je k dispozici

%nqyrev

Revize druhého souboru, je-li dostupné, bez uvozovek

%peg

Zavěšená revize, pokud je k dispozici

%nqpeg

Zavěšená revize, je-li dostupná, bez uvozovek

%fname

Název souboru. Pokud jsou porovnávány dva různé soubory, místo dvou stavů stejného souboru, je tento řetězec prázdný.

%nqfname

Název souboru, bez uvozovek

Názvy oken nejsou čisté názvy souborů. TortoiseSVN s nimi zachází jako název pro zobrazení a podle toho jména vytvoří. Takže např. pokud děláte rozdíl souboru v revizi 123 se souborem v pracovní kopii, budou názvy Název souboru : revize 123 a Název souboru : pracovní kopie .

Například, s ExamDiff Pro:

C:\Cesta-k\ExamDiff.exe %base %mine --left_display_name:%bname
    --right_display_name:%yname

nebo s KDiff3:

C:\Cesta-ke\kdiff3.exe %base %mine --L1 %bname --L2 %yname

nebo s WinMerge:

C:\Cesta-k\WinMerge.exe -e -ub -dl %bname -dr %yname %base %mine

nebo s Araxis:

C:\Cesta-ke\compare.exe /max /wait /title1:%bname /title2:%yname
    %base %mine

nebo s UltraCompare:

C:\Cesta-k\uc.exe %base %mine -title1 %bname -title2
%yname

nebo s DiffMerge:

C:\Cesta-k\DiffMerge.exe -nosplash -t1=%bname -t2=%yname %base %mine

Pokud používáte vlastnost svn:keywords k rozšíření klíčových slov a zejména revize v souboru, pak může existovat rozdíl mezi soubory, které jsou čistě z důvodu aktuální hodnoty klíčového slova. Také, pokud používáte svn:eol-style = native originální soubor bude mít jenom LF konce řádků, zatímco Váš soubor bude mít CR-LF konce řádků. TortoiseSVN obvykle tyto rozdíly skryje automaticky tím, že nejprve rozebere originální soubor pro rozšíření klíčových slov a konce řádků před operací porovnání. Nicméně, toto může s velkými soubory trvat dlouhou dobu. Pokud je zaškrtnuta volba Konvertovat soubory při porovnávání oproti originálu TortoiseSVN vynechá předzpracovávání souborů.

Můžete také zadat jiný nástroj rozdílů pro použití pro vlastnosti Subversion. Protože vlastnosti mají tendenci být krátké jednoduché textové řetězce, můžete použít jednodušší kompaktnější prohlížeč.

Pokud máte nastaven alternativní nástroj rozdílů, můžete vstoupit do TortoiseMerge a nástroje třetí strany z kontextové nabídky. Kontextové menuPorovnat použije základní nástroj rozdílů a Shift+Kontextové menuPorovnat použije sekundární nástroj rozdílů.

Program pro prohlížení souborů sjednoceného rozdílu (záplatové soubory). Žádné parametry nejsou povinné. Výchozí nastavení je použít TortoiseUDiff, který je nainstalován spolu s TortoiseSVN a opatřuje přidané a odstraněné řádky barevnými kódy.

Vzhledem k tomu, že Sjednocený Rozdíl je pouze textový formát, můžete použít Váš oblíbený textový editor, pokud to tak chcete.

Nástroj Sloučení

Externí program sloučení sloužící k řešení konfliktních souborů. Zastupující parametry se používají stejným způsobem jako s programem rozdílů.

%base

původní soubor bez Vašich změn nebo změn ostatních

%bname

Název okna pro základní soubor

%nqbname

Název okna základního souboru, bez uvozovek

%mine

Váš vlastní soubor, se změnami

%yname

Název okna pro Váš soubor

%nqyname

Název okna vašeho souboru, bez uvozovek

%theirs

soubor tak jak je v úložišti

%tname

Název okna pro soubor v úložišti

%nqtname

Název okna souboru v úložišti, bez uvozovek

%merged

konfliktní soubor, výsledek operace sloučení

%mname

Název okna pro nový soubor

%nqmname

Název okna sloučeného souboru, bez uvozovek

%fname

Název konfliktního souboru

%nqfname

Název konfliktního souboru, bez uvozovek

Například, s Perforce Merge:

C:\Cesta-k\P4Merge.exe %base %theirs %mine %merged

nebo s KDiff3:

C:\Cesta-k\kdiff3.exe %base %mine %theirs -o %merged
    --L1 %bname --L2 %yname --L3 %tname

nebo s Araxis:

C:\Cesta-ke\compare.exe /max /wait /3 /title1:%tname /title2:%bname
    /title3:%yname %theirs %base %mine %merged /a2

nebo s WinMerge ( verze 2.8 a vyšší):

C:\Cesta-k\WinMerge.exe %merged

nebo s DiffMerge:

C:\Cesta-k\DiffMerge.exe -caption=%mname -result=%merged -merge
    -nosplash -t1=%yname -t2=%bname -t3=%tname %mine %base %theirs

Pokročilá Nastavení Rozdílů/Sloučení

Obrázek 4.85. Dialogové okno Nastavení, Pokročilé Dialogové Okno Rozdílů/Sloučení

Dialogové okno Nastavení, Pokročilé Dialogové Okno Rozdílů/Sloučení


V pokročilém nastavení můžete určit jiný program pro rozdíly a sloučení pro každou příponu souboru. Například byste mohli přiřadit Photoshop jako program Rozdílů pro soubory .jpg :-) Můžete také přiřadit vlastnost svn:mime-type s programem rozdílů nebo sloučení.

Chcete-li přidružit pomocí přípony souboru, je nutné zadat příponu. Použijte .bmp k popsání bitmapových souborů Windows. Chcete-li přidružit pomocí vlastnosti svn:mime-type, zadejte MIME typ, včetně lomítka, například text/xml.

Nastavení Uložených dat

Obrázek 4.86. Dialogové okno nastavení, Stránka Uložená Data

Dialogové okno nastavení, Stránka Uložená Data


Pro vaše pohodlí, TortoiseSVN ukládá mnohá nastavení, které používáte, a pamatuje si, kde jste byli v poslední době. Pokud chcete tuto úschovu dat vymazat, můžete tak učinit zde.

Historie URL

Kdykoli získáte pracovní kopii, sloučíte změny nebo použijete průzkumníka úložiště, TortoiseSVN uchovává záznamy o naposledy použitých adresách URL a nabízí je Vám v poli se seznamem. Někdy je tento seznam přeplněn zastaralými URL, takže je užitečné vyprazdňovat ji pravidelně.

Pokud chcete odebrat jednu položku z jednoho z polí se seznamem, můžete toto udělat na místě. Stačí kliknout na šipku k rozvinutí seznamu pole, najeďte myší nad položku, kterou chcete odstranit a stiskněte Shift+Del.

Zprávy záznamu (vstupní dialogové okno)

TortoiseSVN uchovává nedávné zprávy záznamu odevzdání, které jste zadali. Tyto jsou uloženy pro každé úložiště zvlášť, takže pokud máte přístup k mnoha úložištím tento seznam se může poměrně hodně rozrůst.

Zprávy záznamu (Zobrazit dialogové okno záznamu)

TortoiseSVN uchovává zprávy záznamu načtené dialogovým oknem záznamu, pro ušetření času při příštím zobrazení záznamu. Pokud někdo jiný upraví zprávu záznamu a Vy už máte tuto zprávu uchovanou, neuvidíte změnu, dokud nevymažete úschovu. Uchováváni zpráv záznamu se povoluje v kartě Uchovávání záznamu.

Velikost a umístění dialogových oken

Mnoho dialogových oken si pamatuje svoji velikost a umístění, které jste naposledy použili.

Ověřovací údaje

Při ověření se serverem Subversion, jsou uživatelské jméno a heslo uložené místně, takže je nemusíte pořád zadávat. Možná budete chtít tyto data z bezpečnostních důvodů odstranit, nebo protože chcete mít přístup do úložiště pod jiným uživatelským jménem ... ví Marek, že používáte jeho PC?

Pokud chcete vymazat ověřovací údaje pouze pro jeden konkrétní server, použijte tlačítko Smazat.../guibutton> místo Smazat vše.

Záznam činností

TortoiseSVN uchovává záznam o všem, co bylo napsané v jeho dialogovém okně průběhu. To může být užitečné, pokud například chcete zkontrolovat, co se stalo v nedávném příkazu aktualizace.

Soubor záznamů je omezen v délce, a když se stane příliš velkým, nejstarší obsah je zahozen. Ve výchozím nastavení je uchováno 4000 řádků, ale toto číslo můžete upravit.

Odtud si můžete prohlédnout obsah souboru záznamů a také vymazat.

Uchovávání záznamu

Obrázek 4.87. Dialogové okno Nastavení, Stránka Úschova Záznamu

Dialogové okno Nastavení, Stránka Úschova Záznamu


Toto dialogové okno Vám umožňuje nastavit funkci úschovy záznamu TortoiseSVN, což udrží místní kopii zpráv záznamu a změněné cesty, aby se zabránilo časové náročnému stahování ze serveru. Pomocí úschovy záznamu můžete dramaticky urychlit dialogové okno záznamu a graf revizí. Další užitečnou vlastností je, že zprávy záznamu jsou stále přístupné i offline.

Povolit uchování záznamu

Povoluje úchování záznamu, kdykoli jsou data záznamu požadována. Pokud je zaškrtnuto, budou data načtena z úschovy je-li k dispozici a jakékoliv zprávy, které nejsou uloženy, budou stáhnuty ze serveru a přidány do úschovy.

Je-li uchování zakázáno, budou data vždy získávána přímo ze serveru a nejsou místně ukládána.

Povolit nejednoznačné URL

Occasionally you may have to connect to a server which uses the same URL for all repositories. Older versions of svnbridge would do this. If you need to access such repositories you will have to check this option. If you don't, unchecked it to improve performance.

Povolit nejednoznačný UUID

Some hosting services give all their repositories the same UUID. You may even have done this yourself by copying a repository folder to create a new one. For all sorts of reasons this is a bad idea - a UUID should be unique. However, the log cache will still work in this situation if you check this box. If you don't need it, unchecked it to improve performance.

Když není možno kontaktovat úložiště

Pokud pracujete v režimu offline, nebo je-li server úložiště nedostupný, úschova záznamu může být stále používána k dodání zpráv záznamu již uložených. Samozřejmě úschova nemusí být aktuální, proto existují možnosti, které Vám umožní vybrat, zda tato funkci by měla být použita.

Když jsou data záznamu brána z úschovy, aniž by byl zkontaktován server, dialogové okno používající tyto zpráv zobrazí stav offline v jeho záhlaví.

Časový limit před aktualizací HEAD revize

Když spustíte dialogové okno záznamu, budete normálně chtít kontaktovat server pro kontrolu veškerých nových zpráv záznamu. Pokud je časový limit nastaven zde nenulový, pak server bude kontaktován pouze při překročení časového limitu od posledního kontaktu. To může snížit komunikaci mezi serverem a klientem, pokud často otevíráte dialogové okno záznamu a server je pomalý, ale uvedené údaje nemusí být zcela aktuální. Pokud chcete tuto funkci použít, doporučujeme použít hodnotu 300 (5 minut) jako kompromis.

Počet dnů neaktivity do vymazání malých úschoven

Procházíte-li spousty úložišť budete hromadit velké množství uchovaných záznamů. Pokud je aktivně nepoužíváte, úschova záznamů příliš neporoste, takže je TortoiseSVN ve výchozím nastavení vyčistí po uplynutí nastaveného času. Pomocí této položky kontrolujete čištění úschovy.

Maximální velikost odstraněné neaktivní úschovny

Větší úschovy jsou horší na znovunabytí a tak TortoiseSVN čistí pouze malé úschovny. Touto hodnotou dolaďte práh.

Maximální počet chyb nástroje před odebrání úschovny

Občas se něco pokazí s ukládáním a způsobí havárii. Pokud se tak stane, úschova je obvykle automaticky odstraněna, aby se zabránilo opakování tohoto problému. Pokud používáte méně stabilní noční build můžete zvolit si úschovu i tak nechat.

Uchovaná úložiště

Na této stránce si můžete prohlédnout seznam úložišť, které jsou uložené místně a prostor využitý pro úschovu. Pokud vyberete jedno z úložišť, pak můžete použít tlačítka pod ním.

Klikněte na Aktualizovat pro úplnou obnovu úschovy a vyplnit všechny díry. Pro velké úložiště toto může být velmi časově náročné, ale užitečné, pokud se chystáte přejít do režimu offline a chcete nejlepší dostupnou úschovu.

Klikněte na tlačítko Exportovat pro export celé úschovy jako sadu CSV souborů. To by mohlo být užitečné, pokud chcete zpracovat záznam dat pomocí externího programu, ačkoli to je hlavně užitečné pro vývojáře.

Klikněte na Smazat ke smazání všech uložených dat pro vybrané úložiště. Toto nezakáže úschovu úložiště, takže příště, když požádat o záznam dat, bude vytvořena nová úschova.

Statistika Úschovy Záznamu

Obrázek 4.88. Dialogové okno Nastavení, Statistika Úschovy Záznamu

Dialogové okno Nastavení, Statistika Úschovy Záznamu


Klikněte na tlačítko Podrobnosti pro zobrazení podrobné statistiky pro konkrétní úschovy. Mnoho z polí zde uvedené jsou hlavně v zájmu vývojářů TortoiseSVN, takže nejsou všechny podrobně popsány.

RAM

Množství paměti potřebné k provozu této úschovy.

Disk

Množství místa na disku používané úschovou. Data jsou komprimována, takže využití disku je obecně poměrně skromné.

Spojení

Ukazuje, zda úložiště bylo k dispozici v poslední době, kdy byla úschova použita.

Poslední aktualizace

V poslední době, kdy byl obsah úschovy změněn.

Poslední HEAD aktualizace

Kdy naposledy jsme požádali o revizi HEAD ze serveru.

Autoři

Počet různých autorů se zprávami zaznamenány v úschově.

Cesty

Počet uvedených cest, jako byste vidět pomocí svn log -v.

Vynechat rozsahy

Počet rozsahů revizí, které jsme nenačetli, prostě proto, že o ně nebylo požádáno. Jedná se o měřítko počtu děr v úschově.

Nejvyšší revize

Nejvyšší číslo revize uložené v úschově.

Počet revizí

Počet revizí uložených v úschově. To je další měřítko úplnosti úschovy.

Hákové Skripty na Straně Klienta

Obrázek 4.89. Dialogové okno nastavení, Stránka Hákové Skripty

Dialogové okno nastavení, Stránka Hákové Skripty


Toto dialogové okno Vám umožňuje nastavit hákové skripty, které budou automaticky provedeny, při některých činností Subversion. Na rozdíl od skriptů probíraných v „Hákové skripty na straně serveru“, jsou tyto skripty spouštěny místně na straně klienta.

Jedno použití pro takové háky může být volat program, jako je SubWCRev.exe pro aktualizaci čísel verzí po odevzdání a možná spustit znovu sestavení.

Nezapomeňte, že můžete také zadat takovýto hák pomocí speciálních vlastností ve své pracovní kopii. Viz sekce „TortoiseSVN Vlastnosti projektu“ pro podrobnosti.

Obrázek 4.90. Dialogové okno Nastavení, Konfigurace Hákových Skriptů

Dialogové okno Nastavení, Konfigurace Hákových Skriptů


Chcete-li přidat nový hákový skript, stačí kliknout na Přidat a vyplnit údaje.

V současnosti jsou dostupné tyto typy hákových skriptů

Zahájení odevzdání

Volán před zobrazením dialogového okna odevzdání. Toto byste mohli chtít použít, pokud hák upravuje soubor s verzí a ovlivňuje seznam souborů, které musí být odevzdány a/nebo zprávu odevzdání. Nicméně byste měli vzít na vědomí, že hák je volán v rané fázi, úplný seznam objektů vybraných pro odevzdání není k dispozici.

Ručně před odevzdáním

If this is specified, the commit dialog shows a button Run Hook which when clicked runs the specified hook script. The hook script receives a list of all checked files and folders and the commit message if there was one entered.

Check-commit

Volán když uživatel klikne na OK v dialogovém okně odevzdání a před uzavřením okna. Tento hák obdrží seznam všech zaškrtnutých souborů. Pokud hák vrátí chybu, zůstane okno otevřeno.

Pokud vrácená chybová zpráva obsahuje cesty v řádcích oddělenými konci, pak tyto cesty budou vybrány v dialogovém okně odevzdání po zobrazení chybové zprávy

Před odevzdáním

Volán po kliknutí na OK v dialogovém okně a než začne vlastní odevzdání. Tento hák má seznam toho, co bude přesně odevzdáno.

Po odevzdání

Called after the commit finishes successfully.

Zahájení aktualizace

Volán před zobrazením dialogového okna Aktualizovat na revizi.

Před aktualizací

Volán než samotná Subversion aktualizace nebo překlopení začne.

Po aktualizaci

Volán po skončení aktualizace, překlopení nebo získání (ať už bylo úspěšné či nikoli).

Před spojením

Volán před pokusem kontaktovat úložiště. Volán nejvýše jednou za pět minut.

Pre-lock

Called before an attempt to lock a file.

Post-lock

Called after a file has been locked.

Hák je určen pro konkrétní cestu pracovní kopie. Stačí pouze zadat cestu na nejvyšší úrovni; pokud budete provádět operace v podadresáři, bude TortoiseSVN automaticky hledat vzhůru pro odpovídající cestu.

Dále musíte zadat příkaz pro vykonání, počínaje cestou k hákovému skriptu nebo spustitelnému souboru. Může to být dávkový soubor, spustitelný soubor nebo jiný soubor, který má platnou asociaci souboru Windows, např. perl skript. Všimněte si, že skript nesmí být uveden pomocí UNC cesty, protože rozhraní spuštění Windows nedovolí takové skripty spustit z důvodu omezení zabezpečení.

Příkazový řádek obsahuje několik parametrů, které jsou vyplněny TortoiseSVN. Předané parametry závisí na háku, který je volán. Každý hák má své vlastní parametry, které jsou předávány v následujícím pořadí:

Zahájení odevzdání

PATHMESSAGEFILECWD

Ručně před odevzdáním

PATHMESSAGEFILECWD

Check-commit

PATHMESSAGEFILECWD

Před odevzdáním

PATHDEPTHMESSAGEFILECWD

Po odevzdání

PATHDEPTHMESSAGEFILEREVISIONERRORCWD

Zahájení aktualizace

PATHCWD

Před aktualizací

PATHDEPTHREVISIONCWD

Po aktualizaci

PATHDEPTHREVISIONERRORCWDRESULTPATH

Před spojením

no parameters are passed to this script. You can pass a custom parameter by appending it to the script path.

Pre-lock

PATHLOCKFORCEMESSAGEFILECWD

Post-lock

PATHLOCKFORCEMESSAGEFILEERRORCWD

Význam každého z těchto parametrů je popsán zde:

PATH

A path to a temporary file which contains all the paths for which the operation was started in UTF-8 encoding. Each path is on a separate line in the temp file.

Nezapomeňte, že pro vzdálené operace, např. v průzkumníku úložiště, tyto cesty nejsou místní, ale URL dotčených položek.

DEPTH

Hloubka, s níž je odevzdání/aktualizace provedena.

Možné hodnoty jsou:

-2

svn_depth_unknown

-1

svn_depth_exclude

0

svn_depth_empty

1

svn_depth_files

2

svn_depth_immediates

3

svn_depth_infinity

MESSAGEFILE

Cesta k souboru, obsahující zprávu záznamu o odevzdání. Soubor obsahuje text s UTF-8 kódováním. Po úspěšném spuštění háku zahájení odevzdání, je zpráva záznamu přečtena zpět, což dává háku možnost ji změnit.

REVISION

Revize úložiště, na kterou by se mělo aktualizovat, nebo po dokončení odevzdání.

LOCK

Either true when locking, or false when unlocking.

FORCE

Either true or false, depending on whether the operation was forced or not.

ERROR

Cesta k souboru obsahující chybovou zprávu. Pokud nedošlo k chybě, bude soubor prázdný.

CWD

Aktuální pracovní adresář, v níž je skript spuštěn. Toto je nastaveno na společný kořenový adresář všech dotčených cest.

RESULTPATH

A path to a temporary file which contains all the paths in UTF-8 encoding which were somehow touched by the operation. Each path is on a separate line in the temp file.

Nezapomeňte, že i když jsme tyto parametry pojmenovali pro naše pohodlí, nemusíte odkazovat na tyto názvy v nastavení háku. Všechny parametry uvedené pro daný hák jsou vždy předány, ať chcete, nebo ne ;-)

Pokud chcete, aby byla operace Subversion pozdržena, dokud hák nebyl dokončen zaškrtněte Počkat, až skript skončí.

Normally you will want to hide ugly DOS boxes when the script runs, so Hide the script while running is checked by default. Also you need to check this if your hook script might return an error that should stop the operation.

The force flag can be set if the user must not proceed with the operation without running the script, i.e. the script must always run. If the force flag is not checked, then the user is shown a button Retry without hooks to retry the operation without running the hook script.

Ukázkové klientské hákové skripty lze nalézt v adresáři contrib v Úložišti TortoiseSVN. („Licence“ vysvětluje, jak získat přístup k úložišti.)

Při ladění hákových skriptů můžete chtít, aby byl hlášen postup do konzole DOS, nebo vložit pozastavení, aby se zabránilo jejímu zavření při dokončení skriptu. Protože vstup i výstup je přesměrováván, toto většinou nebude fungovat. Můžete je ale výslovně přesměrovat do konzole, aby se tomuto předešlo. Např.

echo Kontrola stavu > con
pause < con > con

Součástí instalačního adresáře TortoiseSVN je malý nástroj s názvem ConnectVPN.exe. Tento nástroj můžete použít nastaven jako hák před spojením, aby se automaticky připojil k Vašemu VPN než se TortoiseSVN pokusí připojit k úložišti. Stačí předat název připojení VPN jako první parametr tomuto nástroji.

Integrace se Systémem pro Sledování Problémů

TortoiseSVN může použít zásuvný modul COM pro dotazy systémům pro sledování problémů v dialogovém okně odevzdání. Použití těchto zásuvných modulů je popsáno v „Získávání informací od Systému pro Sledování Problémů“. Pokud Vám Váš správce systému zásuvný modul poskytl, který jste už nainstalovali a zaregistrovali, toto je místo, kde určit, jak bude zaveden do Vaší pracovní kopie.

Obrázek 4.91. Dialogové okno nastavení, Stránka Integrace se Systémem pro Sledování Problémů

Dialogové okno nastavení, Stránka Integrace se Systémem pro Sledování Problémů


Klikněte na Přidat... pro použití zásuvného modulu s konkrétní pracovní kopií. Zde můžete zadat cestu pracovní kopie, zvolit, který zásuvný modul použít z rozbalovacího seznamu všech registrovaných zásuvných modulů pro systém pro sledování problémů, a všechny parametry k předání. Parametry budou specifické pro zásuvný modul, ale může také obsahovat Vaše uživatelské jméno v systému pro sledování problémů, aby zásuvný modul mohl načíst problémy, které jsou Vám přiřazeny.

Pokud chcete, aby všichni uživatelé používali stejné COM zásuvné moduly pro Váš projekt, můžete zadat zásuvný modul i s těmito vlastnostmi bugtraq:provideruuid, bugtraq:provideruuid64 a bugtraq:providerparams.

bugtraq:provideruuid

Tato vlastnost určuje COM UUID IBugtraqProvidera, například {91974081-2DC7-4FB1-B3BE-0DE1C8D6CE4E}. (Tento příklad je UUID Poskytovatele Gurtle bugtraq, což je poskytovatel pro Google Code systém pro sledování problémů.)

bugtraq:provideruuid64

Toto je stejné jako bugtraq:provideruuid, ale pro 64bitovou verzi IBugtraqProvider.

bugtraq:providerparams

Tato vlastnost určuje parametry předávané IBugtraqProvider.

Zjistěte v dokumentaci svého zásuvného modulu IBugtraqProvider, co zadat do těchto dvou vlastností.

Nastavení TortoiseBlame

Obrázek 4.92. Dialogové okno nastavení, Stránka TortoiseBlame

Dialogové okno nastavení, Stránka TortoiseBlame


Nastavení používané TortoiseBlame jsou řízeny z hlavní kontextové nabídky, ne přímo ze samotného TortoiseBlame.

Barvy

TortoiseBlame může použít barvu pozadí pro označení věku řádků v souboru. Nastavte koncové body zadáním barev pro nejmladší a nejstarší revize a TortoiseBlame použije lineární interpolace mezi těmito dvěma barvami podle revize úložiště uvedená pro každý řádek.

Můžete určit různé barvy, které budou použity pro lištu umístění. Standardně je zde použit silný kontrast při zachování světlého pozadí hlavního okna, takže můžete i nadále text číst.

Typ písma

Můžete si vybrat písmo použité pro zobrazení textu a velikost bodu, která se má použít. To platí jak pro obsah souboru, tak i pro informace o autorovi a revizi uvedené v levém panelu.

Tabulátory

Určuje, kolik prostoru využít pro rozpětí, když je znak tabulátoru nalezen v obsahu souboru.

Nastavení TortoiseUDiff

Obrázek 4.93. Dialogové okno nastavení, Stránka TortoiseUDiff

Dialogové okno nastavení, Stránka TortoiseUDiff


Nastavení používané v TortoiseUDiff jsou řízeny z hlavní kontextové nabídky, ne přímo ze samotného TortoiseUDiff.

Barvy

Výchozí barvy používané TortoiseUDiff jsou většinou postačující, ale pokud chcete, můžete si je zde změnit.

Typ písma

Můžete vybrat typ písma použitý k zobrazení textu a jeho velikost v bodech.

Tabulátory

Určuje, kolik prostoru využít pro rozpětí, když je znak tabulátoru nalezen v porovnání souboru.

Export Nastavení TSVN

Obrázek 4.94. Dialogové okno nastavení, stránka Synchronizace

Dialogové okno nastavení, stránka Synchronizace


You can sync all TortoiseSVN settings to and from an encrypted file. The file is encrypted with the password you enter so you don't have to worry if you store that file on a cloud folder like OneDrive, GDrive, DropBox, ...

Když je zadána cesta a heslo, TortiseSVN provede automatickou synchronizaci všech nastavení a bude je takto udržovat.

Importovat/Exportovat zašifrovaný soubor se všemi nastaveními můžete i ručně. Pokud to takto provedete, budete požádáni o zadání cesty souboru a hesla pro rozšifrování/zašifrování souboru s nastavením.

Při ručním exportu nastavení můžete také zahrnout všechna místní nastavení, které se při normálním exportu/synchronizaci vynechávají. Místní nastavení jsou ta, která obsahují místní cesty, které se u jednotlivých počítačů většinou liší. Místní nastavení obsahují i nastavení nástrojů sloučení a porovnávání a hákové skripty.

Pokročilá nastavení

Několik málo používaných nastavení jsou dostupná pouze na stránce pokročilé dialogového okna nastavení. Tato nastavení upravují přímo registr a musíte vědět, na co se každé z těchto nastavení používá a co dělá. Neupravujte toto nastavení, pokud si nejste jisti, že je třeba je změnit.

AllowAuthSave

Někdy více uživatelů používá stejný účet na stejném počítači. V takových situacích není opravdu vhodné data ověření ukládat. Nastavením této hodnoty na false vypne tlačítko uložit ověření v dialogovém okně ověření.

AllowUnversionedObstruction

Pokud aktualizace přidá nový soubor z úložiště, který již v místní pracovní kopii existuje jako soubor bez verze, výchozí akce je si místní soubor ponechat, zobrazit jej jako (možná) upravená verze nového souboru z úložiště. Pokud byste raději, aby TortoiseSVN vytvořil konflikt v takových situacích, nastavte tuto hodnotu na false.

AlwaysExtendedMenu

Tak jako v průzkumníku, TortoiseSVN zobrazí další příkazy, pokud je stisknuta klávesa Shift, zatímco je kontextová nabídka otevřena. Chcete-li, aby TortoiseSVN vždy zobrazoval tyto rozšířené příkazy, nastavte tuto hodnotu na true.

AutoCompleteMinChars

Minimální počet znaků z kterých editor zobrazí nabídku automatického dokončení. Výchozí hodnota je 3.

AutocompleteRemovesExtensions

Seznam automatického dokončení v editoru zpráv odevzdání zobrazuje názvy souborů uvedených k odevzdání. K zahrnutí těchto názvů i bez přípon, nastavte tuto hodnotu na true.

BlockPeggedExternals

Externím souborům, zavěšené na konkrétní revizi, je standardně zabráněno být vybrány pro odevzdání. To proto, že další aktualizace by znovu vrátili tyto změny, pokud by zavěšená revize externího souboru nebyla upravena.

Nastavte tuto hodnotu na false v případě, že stále chcete změny odevzdávat do těchto externích souborů.

BlockStatus

Pokud nechcete, aby průzkumník aktualizoval stav překryvů, zatímco jiný příkaz TortoiseSVN běží (např. Atkualizace, Odevzdání, ...), poté nastavte tuto hodnotu na true.

CacheTrayIcon

Chcete-li přidat ikonu úschovy programu TSVNCache do oznamovací oblasti Plochy, nastavte tuto hodnotu na true. Toto je opravdu vhodné pouze pro vývojáře, protože to umožňuje elegantně ukončit program.

ColumnsEveryWhere

Další sloupce, které TortoiseSVN přidá k zobrazení podrobností v Průzkumníku Windows, jsou obvykle aktivní pouze v pracovní kopii. Pokud chcete, aby byly dostupné všude, ne jen v pracovní kopii, nastavte tuto hodnotu na true. Všimněte si, že další sloupce jsou k dispozici pouze v systému Windows XP. Vista a novější už tuto funkci nepodporují. Některé náhrady Průzkumníka od třetích stran tyto podporují i ve verzích vydaných po XP.

ConfigDir

Zde můžete zadat jiné umístění konfiguračního souboru Subversion. Toto nastavení ovlivní všechny operace TortoiseSVN.

CtrlEnter

Ve většině dialogových oknech v TortoiseSVN, můžete použít Ctrl+Enter pro zavření dialogového okna, jako kdybyste klikli na tlačítko OK. Pokud toto nechcete, nastavte tuto hodnotu na false.

Debug

Nastavte toto na true pokud chcete, aby se dialogové okno zobrazilo pro každý příkaz, zobrazující příkazový řádek sloužící ke spuštění TortoiseProc.exe.

DebugOutputString

Nastavte toto na true, pokud chcete, aby TortoiseSVN vypisoval zprávy ladění při spuštění. Tyto zprávy mohou být zachyceny pouze speciálním nástrojem pro ladění.

DialogTitles

Výchozí formát (hodnota je 0) názvů dialogových oken je url/cesta - jméno dialogového okna - TortoiseSVN. Pokud nastavíte tuto hodnotu na 1, formát se změní na jméno dialogového okna - url/cesta - TortoiseSVN.

DiffBlamesWithTortoiseMerge

TortoiseSVN Vám umožňuje přiřadit externí prohlížeč rozdílů. Většina takových prohlížečů, však není vhodná pro změnu obvinění („Obvinit Rozdíly“), takže byste mohli chtít vtomto případě jít zpět na TortoiseMerge. Chcete-li tak učinit, nastavte tuto hodnotu na true.

DlgStickySize

Tato hodnota určuje vzdálenost v pixelech od okraje při které k němu dialogové okno přilne. Výchozí hodnota je 3. Pro zakázání nastavte tuto hodnotu na nulu.

FixCaseRenames

Některé aplikace mění velikost písmen v názvů souboru bez upozornění, ale tyto změny nejsou ani žádané či chtěné. Například změna z filename>soubor.txt

Pokud nechcete, aby TortoiseSVN automaticky opravoval takovéto případy velikosti můžete tuto hodnotu nastavit na false.

FullRowSelect

Seznam kontroly stavů, který se používá v různých dialogových oknech (např. odevzdání, zjistit změny, přidat, vrátit,...) používá úplný výběr řádku (tj., pokud vyberete položku, je vybrán celý řádek, nikoli jen první sloupec). To je v pořádku, ale vybraný řádek pak zahrnuje také obrázek na pozadí v pravém dolním rohu, což může vypadat ošklivě. Chcete-li úplný výběr řádku zakázat, nastavte tuto hodnotu na false.

GroupTaskbarIconsPerRepo

Tato volba určuje, jak jsou ikony a okna rázných dialogů TortoiseSVN seskupeny na hlavním panelu ve Win7. Tato volba nemá žádný vliv na Windows Vista!

  1. Výchozí hodnota je 0. Při tomto nastavení jsou ikony seskupeny podle typu aplikace. Všechny dialogová okna z TortoiseSVN jsou seskupena, všechna okna z TortoiseMerge jsou seskupena, ...

    Obrázek 4.95. Hlavní panel s výchozím seskupením

    Hlavní panel s výchozím seskupením


  2. Pokud nastaveno na 1, pak místo veškerých dialogových oken v jedné skupině podle aplikace, jsou seskupena podle úložiště. Například, pokud máte otevřené dialogové okno záznamu a odevzdání pro úložiště A a dialogové okno zjištění změn a záznamu pro úložiště B, pak jsou v hlavním panelu Win7 zobrazeny dvě skupiny ikon, jeden pro každou skupinu úložiště. Ale okna TortoiseMerge nejsou seskupena s dialogovými okny TortoiseSVN.

    Obrázek 4.96. Seskupení v hlavním panelu podle úložiště

    Seskupení v hlavním panelu podle úložiště


  3. Pokud nastavena na 2, pak seskupení funguje jako když nastaveno na 1, kromě toho, že okna TortoiseSVN, TortoiseMerge, TortoiseBlame, TortoiseIDiff a TortoiseUDiff jsou seskupena dohromady. Například, pokud máte otevřeno dialogové okno odevzdání a pak kliknete dvakrát na upravený soubor, otevřené okno porovnání TortoiseMerge bude umístěno do stejné skupiny ikon na hlavním panelu jako ikona dialogového okna odevzdání.

    Obrázek 4.97. Seskupení v hlavním panelu podle úložiště

    Seskupení v hlavním panelu podle úložiště


  4. Pokud nastaveno na 3, pak seskupení funguje jako když nastaveno na 1, ale není prováděno podle úložiště, je v závislosti na pracovní kopii. To je užitečné, pokud máte všechny Vaše projekty ve stejném úložišti, ale různé pracovní kopie pro každý projekt.

  5. Pokud nastaveno na 4, pak seskupení funguje jako když nastaveno na 2, ale není prováděno podle úložiště, je v závislosti na pracovní kopii.

GroupTaskbarIconsPerRepoOverlay

Toto nemá žádný vliv, pokud je možnost GroupTaskbarIconsPerRepo nastavena na 0 (viz výše).

Pokud je tato možnost nastavena na true, pak každá ikona na hlavním panelu Win7 bude zobrazena s malým překryvným barevným obdélníkem, označující úložiště, pro které jsou dialogová okna/okna použita.

Obrázek 4.98. Seskupení v hlavním panelu s překryvnými barvami úložiště

Seskupení v hlavním panelu s překryvnými barvami úložiště


HideExternalInfo

Pokud je toto nastaveno na false, pak každé svn:externals je při aktualizaci zobrazeno odděleně.

Pokud je toto nastaveno na true (výchozí), pak informace o aktualizaci externích je zobrazena pouze, pokud jsou aktualizací ovlivněny tj. nějakým způsobem změněny. Jinak není zobrazeno nic, tak jako u normálních souborů a složek.

HookCancelError

If this is set to true, then cancelling the dialog to approve a hook script to run will show an error dialog indicating the user cancelled.

IncludeExternals

Ve výchozím nastavení TortoiseSVN vždy spustí aktualizace zahrnující vnější. Tím se zabrání problémům s nesouhlasnými pracovními kopiemi. Máte-li však hodně externích souborů, může aktualizace trvat poměrně dlouho. Nastavte tuto hodnotu na false ke spuštění normální aktualizace s vynechanými externími. Chcete-li aktualizovat i s vnějšími spusťte dialogové okno Aktualizovat na revizi... nebo nastavte znovu tuto hodnotu na true.

LogFindCopyFrom

Když je dialogové okno záznamu spuštěno z průvodce sloučením, již sloučené revize jsou uvedeny v šedé barvě, ale jsou také zobrazeny i revize za bodem, kde byla větev vytvořena. Tyto revize jsou uvedeny v černé barvě, protože ty nelze sloučit.

Pokud je tato možnost nastavena na true, TortoiseSVN se bude snažit najít revizi, z které byla větev vytvořena a skrýt všechny revize, které jsou za touto revizí. Protože to může trvat dost dlouho, tato možnost je ve výchozím nastavení zakázána. Tato volba také nefunguje s některými SVN servery (např. Google Code Hosting, viz problém #5471 ).

LogMultiRevFormat

Řetězec formátu pro zprávy záznamu při zvolení více revizí v dialogovém okně záznamu.

V řetězci formátu můžete použít následující zástupné symboly:

%1!ld!
je nahrazeno textem čísla revize
%2!s!
je nahrazeno krátkou zprávou záznamu revize
LogStatusCheck

Dialogové okno záznamu zobrazuje revizi, na které je cesta pracovní kopie tučně. Ale to vyžaduje, aby dialogové okno záznamu získalo stav této cesty. Vzhledem k tomu, že pro velké pracovní kopie toto může chvíli trvat, můžete nastavit tuto hodnotu na false pro vypnutí této funkce.

MaxHistoryComboItems

Comboboxes for URLs and paths show a history of previously used URLs/paths if possible. This settings controls how many previous items are saved and shown. The default is 25 items.

MergeLogSeparator

Když slučujete revize z jiné větve a informace o sledování sloučení jsou k dispozici, budou zprávy záznamu ze sloučené revize shromážděny, aby sestavily zprávu záznamu odevzdání. Předdefinovaný řetězec se používá k oddělení jednotlivých zpráv záznamu sloučených revizí. Pokud chcete, můžete toto nastavit na hodnotu obsahující oddělovač dle Vašeho výběru.

NumDiffWarning

Pokud chcete zobrazit rozdíl najednou pro více položek, než je uvedeno v tomto nastavení, bude nejdříve zobrazeno okno s varováním. Výchozí je 10.

OldVersionCheck

TortoiseSVN zkontroluje, zda je nová verze k dispozici asi jednou za týden. Pokud je aktualizovaná verze nalezena, dialogové okno odevzdání zobrazí kontrolní odkaz s touto informací. Pokud dáváte přednost starému chování, kde se objeví dialogové okno oznamující o aktualizaci, nastavte tuto hodnotu na true.

RepoBrowserTrySVNParentPath

Prohlížeč úložiště se pokusí získat internetovou stránku, kterou vytvořil server SVN nastavený pomocí příkazu SVNParentPath pro získání seznamu všech úložišť. Pro zakázání takovéhoto chování nastavte tuto hodnotu na false.

ScintillaBidirectional

This option enables the bidirectional mode for the commit message edit box. If enabled, right-to-left language text editing is done properly. Since this feature is expensive, it is disabled by default. You can enable this by setting this value to true.

ScintillaDirect2D

Tato možnost povoluje použití vykreslování s akcelerací Direct2D v ovládání Scintilla, které je použito jako rámeček úprav, např. v dialogovém okně odevzdání a také v prohlížeči sjednoceného rozdílu. U některých grafických karet toto ale nefunguje a kurzor pro zadání textu není vždy zobrazen. Pokud se tak děje, můžete tuto funkci vypnout nastavením této hodnoty na false.

OutOfDateRetry

This parameter specifies how TortoiseSVN behaves if a commit fails due to an out-of-date error:

0

The user is asked whether to update the working copy or not, and the commit dialog is not reopened after the update.

1

This is the default. The user is asked whether to update the working copy or not, and the commit dialog is reopened after the update so the user can proceed with the commit right away.

2

Similar to 1, but instead of updating only the paths selected for a commit, the update is done on the working copy root. This helps to avoid inconsistent working copies.

3

The user is not asked to update the working copy. The commit simply fails with the out-of-date error message.

PlaySound

If set to true, TortoiseSVN will play a system sound when an error or warning occurs, or another situation which is important and requires your attention. Set this to false if you want to keep TortoiseSVN quiet. Note that the project monitor has its own setting for playing sounds, which you can configure in its settings dialog.

ShellMenuAccelerators

TortoiseSVN používá urychlovače pro své položky kontextového menu v průzkumníku. Protože toto může vést k zdvojnásobným urychlovačům (např. SVN Odevzdání má urychlovač Alt-C, ale ten je taky jako Kopírovat záznam v průzkumníku). Pokud nechcete, nebo nepotřebujete urychlovače zápisů TortoiseSVN, nastavte tuto hodnotu na false.

ShowContextMenuIcons

To může být užitečné, pokud používáte něco jiného než Průzkumník Windows nebo pokud máte problémy, protože se kontextová nabídka nezobrazuje správně. Nastavte tuto hodnotu na false pokud nechcete TortoiseSVN ikony zobrazit pro položky rozhraní kontextové nabídky. Nastavte tuto hodnotu na true, aby se ikony znovu zobrazovaly.

ShowAppContextMenuIcons

Pokud nechcete, aby TortoiseSVN zobrazovalo ikony pro kontextová menu ve svých vlastních dialogových oknech, nastavte tuto hodnotu na false.

ShowNotifications

Set this value to false if you don't want the project monitor to show notification popups when new commits are detected.

StyleCommitMessages

Dialogová okna odevzdání a záznamu používaji formátování (např. tučné, kurzíva) ve zprávách odevzdání (viz „Zprávy Záznamu Odevzdání“ pro podrobnosti). Pokud toto nechcete, nastavte hodnotu na false.

UpdateCheckURL

Tato hodnota obsahuje URL, ze které se TortoiseSVN pokusí stáhnout textový soubor pro zjištění, zda jsou dostupné aktualizace. To může být užitečné pro firemní administrátory, kteří si nepřejí, aby jejich uživatelé si aktualizovali TortoiseSVN, dokud nemají oprávnění.

UseCustomWordBreak

The standard edit controls do not stop on forward slashes like they're found in paths and urls. TortoiseSVN uses a custom word break procedure for the edit controls. If you don't want that and use the default instead, set this value to 0. If you only want the default for edit controls in combo boxes, set this value to 1.

VersionCheck

TortoiseSVN kontroluje, zda je nová verze je k dispozici asi jednou za týden. Pokud si nepřejete, aby TortoiseSVN tuto kontrolu dělal, nastavte tuto hodnotu na false.

Poslední krok

Kapitola 5. Monitor projektů

Monitor projektů je užitečný nástroj, který sleduje úložiště a v případě výskytu nových odevzdání Vám tuto skutečnost oznámí.

Projekty mohou být sledovány přes pracovní kopie, nebo přímo pomocí URL směřující na jejich úložiště.

Monitor projektů prozkoumá každý projekt v nastavitelném intervalu a pokaždé, když jsou zjištěna nová odevzdání, bude zobrazeno oznámení. Tento fakt také udává změna ikony v systémové liště.

Snarl

If Snarl is installed and active, then the project monitor automatically uses Snarl to show the notifications about newly detected commits.

Přidávání projektů do monitoru

Pokud monitor projektů spustíte poprvé, bude zobrazení stromu na levé straně prázdné. Pro přidání projektů klikněte na tlačítko v horní části dialogového okna pojmenovaného Přidat projekt.

Obrázek 5.1. Dialogové okno úpravy projektu v monitoru projektů

Dialogové okno úpravy projektu v monitoru projektů


Vyplňte požadované informace pro přidání projektu ke sledování. Název projektu je povinný a musí být zadán, ostatní jsou nepovinné.

Pokud je rámeček Cesta nebo URL prázdný, pak je přidána složka. Toto je užitečné při seskupování sledovaných projektů.

If you want to monitor all repositories served via the SVNParentPath directive, enter the root Url for your repositories and check the box Url points to SVNParentPath list.

Pole Uživatelské jméno a Heslo by měla být vyplněna, pokud úložiště neposkytuje anonymní přístup pro čtení a pouze pokud ověření neukládá Subversion. Pokud přistupujete ke sledovanému úložišti pomocí TortoiseSVn nebo jiných klientů svn a ověření jste již uložili, tak toto nechejte prázdné - pak nemusíte tyto projekty upravovat ručně, změní-li se heslo.

Interval sledování v minutách určuje časovou prodlevu mezi jednotlivými kontrolami. Nejmenší interval je jedna minuta.

interval kontroly

Pokud mnoho uživatelů sleduje jedno úložiště a server má omezené množství přenositelných dat, může správce úložiště nastavit minimální dobu intervalu pro kontrolu pomocí souboru svnrobots.txt. Podrobné vysvětlení jak toto funguje může být nalezeno na internetové stránce monitoru projektů:

https://tools.stefankueng.com/svnrobots.html

Dialogové okno monitoru

Obrázek 5.2. Hlavní dialogové okno monitoru projektu

Hlavní dialogové okno monitoru projektu


Monitor projektů zobrazuje všechny sledované projekty v levé části ve stromu. Projekt může být přesunován, například jeden projekt může být přesunut pod jiný, což z něho učiní jeho podřazeného/podprojekt.

Kliknutím na projekt jsou vpravo zobrazeny všechny jeho zprávy odevzdání.

Projekty, které mají aktualizace jsou zobrazeny tučně spolu s číslem v závorce udávající počet nových odevzdání. Kliknutí na projekt ho automaticky označí jako přečtený.

Hlavní operace

Nástrojová lišta v horní části dialogového okna umožňuje nastavit a pracovat s monitorem projektů.

Zkontrolovat nyní

Zatímco každý sledovaný projekt je kontrolován podle nastaveného intervalu, kliknutím na toto tlačítko vynutíte okamžitou kontrolu všech projektů. Pokud se vyskytnou nějaké aktualizace, oznámení nebude zobrazeno, dokud se nezkontrolují všechny projekty.

Přidat projekt

Otevře nové dialogové okno pro přidání nové projektu ke sledování.

Upravit

Otevře dialogové okno nastavení pro zvolený projekt.

Odstranit

Odstraní zvolený projekt po zobrazení potvrzovacího okna.

Označit vše jako přečtené

Označí všechny revize v projektu jako přečtené. Nezapomeňte, že pokud zvolíte projekt s nepřečtenými revizemi, pak budou tyto revize automaticky označeny jako přečtené, jakmile zvolíte jiný projekt.

Pokud podržíte klávesu Shift při klikání na tlačítko, budou také vyčištěny všechny chybové stavy, pokud nějaké jsou.

Aktualizovat vše

Spustí příkaz Update na všech sledovaných pracovních kopiích. Projekty sledované pomocí url nejsou aktualizovány, příkaz platí pouze pro projekty se zadanou cestou pracovní kopie.

Nastavení

Zobrazí dialogové okno pro nastavení chování monitoru projektů.

Kapitola 6. Program SubWCRev

SubWCRev je konzolový program ve Windows, který lze použít ke čtení stavu pracovní kopie Subversion a případně provést nahrazení klíčového slova v šablonovém souboru. Toto se často používá jako součást procesu sestavení jako prostředek obsahující informace o pracovní kopii do objektu, který sestavujete. Typicky to může být použito k obsažení čísla revize do rámečku O programu.

Příkazový řádek SubWCRev

SubWCRev čte ve výchozím nastavení Subversion stav všech souborů v pracovní kopii, s výjimkou externích. Zaznamenává nejvyšší nalezené číslo odevzdané revize a časové razítko odevzdání této revize, ale také zaznamená, zda existují místní změny v pracovní kopii, nebo smíšené aktualizace revizí. Číslo revize, rozsah aktualizace revize a stav změny jsou zobrazeny v stdout.

SubWCRev.exe je volán z příkazové řádky nebo skriptu a je ovládán pomocí parametrů příkazového řádku.

SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]

WorkingCopyPath je cesta k pracovní kopii ke kontrole. SubWCRev lze použít pouze na pracovní kopie, ne přímo na úložiště. Cesta může být absolutní nebo relativní k aktuálnímu pracovní adresář.

Pokud chcete, aby SubWCRev provedl nahrazení klíčového slova, takže pole jako revize úložiště a URL jsou uloženy do textového souboru, musíte zadat šablonový soubor SrcVersionFile a výstupní soubor DstVersionFile který obsahuje nahrazovanou verzi šablony.

Abyste zabránili konkrétním souborů a cestám být zpracovány v SubWCRev, můžete zadat vzory pro ignorování. Vzory jsou čteny ze souboru s názvem .subwcrevignore. Soubor je čten ze zadané cesty a také z kořene pracovní kopie. Pokud soubor neexistuje, nedochází k žádnému ignorování. Soubor .subwcrevignore může obsahovat mnoho vzorů, oddělených novým řádkem. Vzory jsou porovnávány s cestami relativně ke kořeni úložiště a souboru .subwcrevignore. Například pro ignorování všech souborů ve složce doc pracovní kopie TortoiseSVN by soubor .subwcrevignore obsahoval následující řádky:

/trunk/doc
/trunk/doc/*

Nebo, za předpokladu, že soubor .subwcrevignore je v kořeni pracovní kopii získané z kmene, lze docílit stejného výsledku použitím vzoru

doc
doc/*

Pro ignorování všech obrázků by vzory byly nastaveny takto:

*.png
*.jpg
*.ico
*.bmp

Důležité

Vzory ignorování jsou citlivé na velikost písmen, tak jako Subversion.

Tip

Pro vytvoření souboru začínajícího tečkou v Průzkumníku Windows, zadejte .subwcrevignore.. Všimněte si tečky na konci.

Existuje celá řada nepovinných přepínačů, které ovlivňují způsob jak SubWCRev funguje. Pokud použijete více než jeden, musí být uvedeny jako jedna skupina, např. -nm a ne -n -m.

Tabulka 6.1. Seznam dostupných přepínačů v příkazovém řádku

PřeklopitPopis
-nPokud je tento přepínač zadán, SubWCRev skončí s ERRORLEVEL 7 v případě, že pracovní kopie obsahuje místní změny. Toto může být použito k zabránění sestavení pokud jsou přítomny neodevzdané změny.
-NPokud je tento přepínač zadán, SubWCRev skončí s ERRORLEVEL 11 v případě, že pracovní kopie obsahuje položky bez verze, jenž nejsou ignorovány.
-mPokud je tento přepínač zadán, SubWCRev skončí s ERRORLEVEL 8 v případě, že pracovní kopie obsahuje smíšené revize. Toto může být použito k zabránění sestavení s částečně aktualizovanou pracovní kopií.
-dPokud je tento přepínač zadán, SubWCRev skončí s ERRORLEVEL 9 v případě, že cílový soubor již existuje.
-fPokud je tento přepínač zadán, zahrne SubWCRev poslední změněnou revizi adresáře. Výchozí chování je používat pouze soubory při získávání čísel revizí.
-ePokud je tento přepínač zadán, bude SubWCRev zkoumat adresáře, které jsou součástí svn:externals, ale pouze v případě, že jsou ze stejného úložiště. Výchozí chování je externí ignorovat.
-EJe-li tento přepínač zadán, stejné jako -e, ale ignoruje externí s konkrétními revizemi, když rozsah revizí, který je zadán v jejich vlastnostech, je pouze daná konkrétní revize. Takže nevede ke smíšeným revizím.
-xJe-li tento přepínač zadán, SubWCRev vypíše čísla revizí v šestnáctkové soustavě.
-XJe-li tento přepínač zadán, SubWCRev vypíše čísla revizí v šestnáctkové soustavě a přidá '0X' na začátek
-FPokud je tento přepínač zadán, bude SubWCRev ignorovat všechny soubory .subwcrevignore a zahrne vše.
-qPokud je zadán tento přepínač, SubWCRev provede náhradu klíčových slov bez zobrazení stavu pracovní kopie ve stdout.


Pokud není žádná chyba, SubWCREV vrací nulu. Ale v případě chyb je chybová zpráva vypsána do stderr a zobrazena v konzoli. A vracívané kódy chyb jsou:

Tabulka 6.2. Seznam kódů chyb SubWCRev

Kód chybyPopis
1Syntaktická chyba. Jeden nebo více parametrů příkazového řádku je neplatných.
2Soubor nebo složka zadaná na příkazovém řádku nebyly nalezeny.
3Vstupní soubor nemohl být otevřen, nebo cílový soubor nemohl být vytvořen.
4Nelze přidělit paměť. To se může stát např. když je zdrojový soubor příliš velký.
5Zdrojový soubor nemůže být správně zpracován.
6Chyba SVN: Subversion vrátil chybu když se SubWCRev pokoušel najít informace z pracovní kopie.
7Pracovní kopie má místní změny. To vyžaduje přepínač -n.
8Pracovní kopie má smíšené revize. To vyžaduje přepínač -m.
9Výstupní soubor existuje. To vyžaduje přepínač -d.
10Zadaná cesta není pracovní kopie ani její součástí.
11Pracovní kopie obsahuje soubory nebo složky bez verze. To vyžaduje přepínač -N.


Nahrazení Klíčového Slova

Pokud jsou zadány zdrojové a cílové soubory, SubWCRev zkopíruje zdroj do cíle, nahrazujíc klíčová slova takto:

Tabulka 6.3. Seznam dostupných klíčových slov

Klíčové slovoPopis
$WCREV$Nahrazeno nejvyšší odevzdanou revizi pracovní kopie.
$WCREV&$Nahrazeno nejvyšší odevzdanou revizi pracovní kopie. Spojeno pomocí AND s hodnotou po znaku &. Například: $WCREV&0xFFFF$
$WCREV-$, $WCREV+$Nahrazeno nejvyšší odevzdanou revizi pracovní kopie hodnotou po znaku + nebo -, která je buď přičtena nebo odečtena. Například: $WCREV-1000$
$WCDATE$, $WCDATEUTC$Nahrazeno datem/časem odevzdání nejvyšší odevzdané revize. Ve výchozím nastavení se používá mezinárodní formát: rrrr-mm-dd hh:mm:ss . Případně můžete zadat vlastní formát, který bude používán v strftime(), například: $WCDATE=%a %b %d %I:%M:%S %p$. Pro seznam dostupných formátovacích znaků se podívejte na odkaz on-line.
$WCNOW$, $WCNOWUTC$Nahrazeno aktuálním systémovým datem/časem. Toto může být použito k označení času sestavení. Formátování času lze také použít, jak je popsáno v $WCDATE$.
$WCRANGE$Nahrazeno rozsahem aktualizovaných revizí pracovní kopie. Pokud je pracovní kopie v konzistentním stavu, bude to jediná revizi. Pokud pracovní kopie obsahuje směs revizí a to buď kvůli tomu, že je zastaral, nebo v důsledku úmyslné aktualizace na revizi, pak rozsah se zobrazí ve formě 100:200.
$WCMIXED$$WCMIXED?TText:FText$ je nahrazen TText pokud existují smíšené aktualizace revizí, nebo FText pokud ne.
$WCMODS$$WCMODS?TText:FText$ je nahrazeno TText v případě, že existují místní úpravy, nebo FText pokud ne.
$WCUNVER$$WCUNVER?TText:FText$ je nahrazen TText pokud v pracovní kopii existují položky bez verze, nebo FText pokud ne.
$WCEXTALLFIXED$$WCEXTALLFIXED?TText:FText$ je nahrazen TText když všechny externí jsou zadány na konkrétní revizi, nebo FText, pokud ne.
$WCISTAGGED$$WCISTAGGED?TText:FText$ je nahrazen TText pokud URL úložiště obsahuje vzor zařazení značky, nebo FText pokud ne.
$WCURL$Nahrazeno URL adresou úložiště cesty pracovní kopie předaná SubWCRev.
$WCINSVN$$WCINSVN?TText:FText$ je nahrazeno TText pokud má položka verzi, nebo FText pokud ne.
$WCNEEDSLOCK$$WCNEEDSLOCK?TText:FText$ je nahrazeno TText v případě, že položka má nastavenu vlastnost svn:needs-lock, nebo FText pokud ne.
$WCISLOCKED$$WCISLOCKED?TText:FText$ je nahrazeno TText v případě, že záznam je uzamčen, nebo FText pokud ne.
$WCLOCKDATE$, $WCLOCKDATEUTC$Nahrazeno datem zamknutí. Formátování času lze použít, jak je popsáno v $WCDATE$.
$WCLOCKOWNER$Nahrazeno jménem majitele zámku.
$WCLOCKCOMMENT$Nahrazeno komentářem k zámku.
$WCUNVER$$WCUNVER?TText:FText$ je nahrazen TText pokud v pracovní kopii existují soubory nebo složky bez verze, nebo FText pokud ne.


SubWCRev přímo nepodporuje vnořování výrazů, takže například nemůžete použít výraz jako:

#define SVN_REVISION     "$WCMIXED$?WCRANGE$:$WCREV$$"

Ale většinou je toto možné obejít jinými způsoby, například:

#define SVN_RANGE       $WCRANGE$
#define SVN_REV         $WCREV$
#define SVN_REVISION     "$WCMIXED?SVN_RANGE:SVN_REV$"

Tip

Některá z těchto klíčových slov platí pro jednotlivé soubory, nikoli na celou pracovní kopii, takže má smysl je použít když SubWCRev je zavolán pro skenování jednoho souboru. To se týká $WCINSVN$, $WCNEEDSLOCK$, $WCISLOCKED$, $WCLOCKDATE$, $WCLOCKOWNER$ a $WCLOCKCOMMENT$.

Příklad klíčového slova

Příklad uvedený níže ukazuje, jak jsou klíčová slova v šablonovém souboru nahrazena ve výstupním souboru.

// Zkouškový soubor pro SubWCRev

char *Revision      = "$WCREV$";
char *Revision16    = "$WCREV&0xFF$";
char *Revisionp100  = "$WCREV+100$";
char *Revisionm100  = "$WCREV-100$";
char *Modified      = "$WCMODS?Změněno:Nezměněno$";
char *Unversioned = "$WCUNVER?Nalezeny položky bez verze:žádné položky bez verze$";
char *Date          = "$WCDATE$";
char *CustDate      = "$WCDATE=%a, %d %B %Y$";
char *DateUTC       = "$WCDATEUTC$";
char *CustDateUTC   = "$WCDATEUTC=%a, %d %B %Y$";
char *TimeNow       = "$WCNOW$";
char *TimeNowUTC    = "$WCNOWUTC$";
char *RevRange      = "$WCRANGE$";
char *Mixed         = "$WCMIXED?Smíšené revize PK:Nesmíšené$";
char *URL           = "$WCURL$";
char *isInSVN       = "$WCINSVN?s verzí:bez verze$";
char *needslck      = "$WCNEEDSLOCK?PRAVDA:NEPRAVDA$";
char *islocked      = "$WCISLOCKED?uzamčeno:neuzamčeno$";
char *lockdateutc   = "$WCLOCKDATEUTC$";
char *lockdate      = "$WCLOCKDATE$";
char *lockcustutc   = "$WCLOCKDATEUTC=%a, %d %B %Y$";
char *lockcust      = "$WCLOCKDATE=%a, %d %B %Y$";
char *lockown       = "$WCLOCKOWNER$";
char *lockcmt       = "$WCLOCKCOMMENT$";

#if $WCMODS?1:0$
#error Zdroj je změněn
#endif

// Konec souboru

Po spuštění SubWCRev.exe cesta\k\pracovníkopii testsoubor.tmpl testspubor.txt, výstupní soubor testsoubor.txt by vypadal takto:

// Zkouškový souboru pro SubWCRev

char *Revision      = "22837";
char *Revision16    = "53";
char *Revisionp100  = "22937";
char *Revisionm100  = "22737";
char *Modified      = "Změněno";
char *Unversioned = "žádné položky bez verze";
char *Date          = "2012/04/26 18:47:57";
char *CustDate      = "Čt, 26 duben 2012";
char *DateUTC       = "2012/04/26 16:47:57";
char *CustDateUTC   = "Čt, 26 duben 2012";
char *TimeNow       = "2012/04/26 20:51:17";
char *TimeNowUTC    = "2012/04/26 18:51:17";
char *RevRange      = "22836:22837";
char *Mixed         = "Smíšená revize PK";
char *ExtAllFixed   = "Všechny externí pevné";
char *IsTagged      = "Neoznačeno";
char *URL           = "https://svn.code.sf.net/p/tortoisesvn/code/trunk";
char *isInSVN       = "s verzí";
char *needslck      = "NEPRAVDA";
char *islocked      = "neuzamčeno";
char *lockdateutc   = "1970/01/01 00:00:00";
char *lockdate      = "1970/01/01 01:00:00";
char *lockcustutc   = "Čt, 01 leden 1970";
char *lockcust      = "Čt, 01 leden 1970";
char *lockown       = "";
char *lockcmt       = "";

#if 1
#error Zdroj je změněn
#endif

// Konec souboru

Tip

Takovýto soubor bude zahrnut do sestavení, takže byste očekávat, že bude mít verzi. Ujistěte se, že šablonový soubor má verzi a ne vytvořený soubor, jinak pokaždé, když znovu vytvoříte souboru s verzí budete muset změny odevzdat, což znamená, že souboru s verzí je třeba aktualizovat.

Rozhraní COM

Pokud potřebujete přístup k informacím revizí Subversion z jiných programů, můžete použít COM rozhraní SubWCRev. Objekt vytvoření je SubWCRev.object a tyto metody jsou podporovány:

Tabulka 6.4. Podporované metody COM/automatizace

MetodaPopis
.GetWCInfoTato metoda prochází pracovní kopii a shromažďuje revize. Přirozeně je třeba toto zavolat předtím, než budete moci přistupovat k informacím pomocí zbývajících metod. První parametr je cesta. Druhý parametr by měl být true, pokud chcete zahrnout revize adresářů. Obdoba přepínače -f příkazové řádky. Třetí parametr by měl být true, pokud chcete zahrnout svn:externals. Obdoba přepínače -e příkazové řádky.
.GetWCInfo2Stejné jako GetWCInfo() ale se čtvrtým parametrem, který nastavuje ekvivalent přepínače příkazového řádku -E.
.RevisionNejvyšší odevzdaná revize pracovní kopie. Obdoba $WCREV$.
.DateDatum a čas odevzdaní nejvyšší odevzdané revize. Obdoba $WCDATE$.
.AuthorAutor nejvyšší odevzdané revize, to znamená, poslední člověk, který odevzdal změny do pracovní kopie.
.MinRevMinimální aktualizace revize, jak je uvedeno v $WCRANGE$
.MaxRevMaximální aktualizace revize, jak je uvedeno v $WCRANGE$
.HasModificationsTrue, pokud existují místní úpravy
.HasUnversionedPravda, pokud nejsou žádné položky bez verze
.UrlNahrazeno URL adresou úložiště cesty pracovní kopie použitou v GetWCInfo. Obdoba $WCURL$.
.IsSvnItemTrue, pokud má položka verzi.
.NeedsLockingTrue, pokud má položka nastavenu vlastnost svn:needs-lock.
.IsLockedTrue, pokud je položka uzamčena.
.LockCreationDateŘetězec reprezentující datum, kdy byl zámek vytvořen, nebo prázdný řetězec, pokud položka není uzamčena.
.LockOwnerŘetězec představující majitele zámku, nebo prázdný řetězec, pokud položka není uzamčena.
.LockCommentZpráva zadaná při vytvoření zámku.


Následující příklad ukazuje, jak by rozhraní mohlo být použito.

// testCOM.js - soubor javascript
// zkouškový skript pro SubWCRev COM/objekt automatizace

filesystem = new ActiveXObject("Scripting.FileSystemObject");

revObject1 = new ActiveXObject("SubWCRev.object");
revObject2 = new ActiveXObject("SubWCRev.object");
revObject3 = new ActiveXObject("SubWCRev.object");
revObject4 = new ActiveXObject("SubWCRev.object");

revObject1.GetWCInfo(
    filesystem.GetAbsolutePathName("."), 1, 1);
revObject2.GetWCInfo(
    filesystem.GetAbsolutePathName(".."), 1, 1);
revObject3.GetWCInfo(
    filesystem.GetAbsolutePathName("SubWCRev.cpp"), 1, 1);
revObject4.GetWCInfo2(
    filesystem.GetAbsolutePathName("..\\.."), 1, 1, 1);

wcInfoString1 = "Revize = " + revObject1.Revision +
                "\nMin Revize = " + revObject1.MinRev +
                "\nMax Revize = " + revObject1.MaxRev +
                "\nDatum = " + revObject1.Date +
                "\nURL = " + revObject1.Url + "\nAutor = " +
                revObject1.Author + "\nMáZměny = " +
                revObject1.HasModifications + "\nJeZeSvn = " +
                revObject1.IsSvnItem + "\nPotřebaZámku = " +
                revObject1.NeedsLocking + "\nJeUzamčeno = " +
                revObject1.IsLocked + "\nDatumVznikuZámku = " +
                revObject1.LockCreationDate + "\nVlastníkZámku = " +
                revObject1.LockOwner + "\nKomentářUzamčení = " +
                revObject1.LockComment;
wcInfoString2 = "Revize = " + revObject2.Revision +
                "\nMin Revize = " + revObject2.MinRev +
                "\nMax Revize = " + revObject2.MaxRev +
                "\nDatum = " + revObject2.Date +
                "\nURL = " + revObject2.Url + "\nAutor = " +
                revObject2.Author + "\nMáZměny = " +
                revObject2.HasModifications + "\nJeZeSvn = " +
                revObject2.IsSvnItem + "\nPotřebaZámku = " +
                revObject2.NeedsLocking + "\nJeUzamčeno = " +
                revObject2.IsLocked + "\nDatumVznikuZámku = " +
                revObject2.LockCreationDate + "\nVlastníkZámku = " +
                revObject2.LockOwner + "\nKomentářUzamčení = " +
                revObject2.LockComment;
wcInfoString3 = "Revize = " + revObject3.Revision +
                "\nMin Revize = " + revObject3.MinRev +
                "\nMax Revize = " + revObject3.MaxRev +
                "\nDatum = " + revObject3.Date +
                "\nURL = " + revObject3.Url + "\nAutor = " +
                revObject3.Author + "\nMáZměny = " +
                revObject3.HasModifications + "\nJeZeSvn = " +
                revObject3.IsSvnItem + "\nPotřebaZámku = " +
                revObject3.NeedsLocking + "\nJeUzamčeno = " +
                revObject3.IsLocked + "\nDatumVznikuZámku = " +
                revObject3.LockCreationDate + "\nVlastníkZámku = " +
                revObject3.LockOwner + "\nKomentářUzamčení = " +
                revObject3.LockComment;
wcInfoString4 = "Revize = " + revObject4.Revision +
                "\nMin Revize = " + revObject4.MinRev +
                "\nMax Revize = " + revObject4.MaxRev +
                "\nDatum = " + revObject4.Date +
                "\nURL = " + revObject4.Url + "\nAutor = " +
                revObject4.Author + "\nMáZměny = " +
                revObject4.HasModifications + "\nJeZeSvn = " +
                revObject4.IsSvnItem + "\nPotřebujeZámek = " +
                revObject4.NeedsLocking + "\nJeUzamčeno = " +
                revObject4.IsLocked + "\nDatumVznikuZámku = " +
                revObject4.LockCreationDate + "\nVlastníkZámku = " +
                revObject4.LockOwner + "\nKomentářUzamčení = " +
                revObject4.LockComment;

WScript.Echo(wcInfoString1);
WScript.Echo(wcInfoString2);
WScript.Echo(wcInfoString3);
WScript.Echo(wcInfoString4);

Následující seznam je příkladem toho, jak používat SubWCRev COM objekt z C#:

using LibSubWCRev;
SubWCRev sub = new SubWCRev();
sub.GetWCInfo("C:\CestakMemuSouboru\Mujsoubor.cc", true, true);
if (sub.IsSvnItem == true)
{
    MessageBox.Show("s verzi");
}
else
{
    MessageBox.Show("bez verze");
}

Kapitola 7. Rozhraní IBugtraqProvider

Chcete-li získat těsnější integraci se systémy pro sledování problémů, než prosté používání vlastností bugtraq:, TortoiseSVN může využít zásuvné moduly COM. S takovými zásuvnými moduly je možné načíst informace přímo ze systému, komunikovat s uživatelem a poskytovat informace zpátky TortoiseSVN o otevřených problémech, ověření zpráv záznamu zadané uživatelem a dokonce i spustit činnosti po úspěšném odevzdání např. zavřít problém.

Nemůžeme poskytnout informace a návody, jak musíte objekt COM zavést ve Vašem oblíbeném programovacím jazyku, ale máme příklady zásuvných modulů v C++/ATL a C# v našem úložišti v adresáři contrib/issue-tracker-plugins. V tomto adresáři také najdete potřebné hlavičkové soubory, které potřebujete pro tvorbu Vašeho zásuvného modulu. („Licence“ vysvětluje, jak získat přístup k úložišti.)

Důležité

Měli byste poskytnout 32bitové i 64bitové verze Vašeho zásuvného modulu. Protože verze x64 TortoiseSVN nemůže použít 32bitový zásuvný modul a naopak.

Úmluva pro pojmenování

Pokud vydáte zásuvný modul systému pro sledování problémů pro TortoiseSVN, nenazývejte ho, prosím, Tortoise<Něco>. Rádi bychom si šetřili předponu Tortoise pro klienta správy verzí zavedeného do rozhraní Windows. Například: TortoiseCVS, TortoiseSVN, TortoiseHg, TortoiseGit a TortoiseBzr jsou všichni klienty pro správu verzí.

Prosím pojmenujte Váš zásuvný modul pro klienta Tortoise Turtle<Něco>, kde <Něco> odkazuje na systém, ke kterému se připojujete. Nebo si vyberte jméno, které zní jako Turtle ale má odlišné první písmeno. Hezké příklady jsou:

  • Gurtle - zásuvný modul systému pro sledování problémů v Google code

  • Gurtle - zásuvný modul systému pro sledování problémů v Redmine

  • VurtleOne - Gurtle - zásuvný modul systému pro sledování problémů ve VersionOne

Rozhraní IBugtraqProvider

TortoiseSVN 1.5 a novější může používat zásuvné moduly, které implementují rozhraní IBugtraqProvider. Rozhraní poskytuje několik metod, jak lze zásuvné moduly použít ke komunikaci se systémy pro sledování problémů.

HRESULT ValidateParameters (
  // Nadřazené okno pro jakékoliv uživatelské rozhraní, které
  // je třeba zobrazit během ověřování.
  [in] HWND hParentWnd,

  // Řetězec parametru, který je třeba ověřit.
  [in] BSTR parameters,

  // Je tento řetězec platný?
  [out, retval] VARIANT_BOOL *valid
);

Tato metoda je volána z dialogového okna nastavení, kde si uživatel může přidat a nastavit zásuvný modul. Řetězec Parameters může být použit zásuvným modulem pro získání dalších potřebných informací, např. URL adresu systému pro sledování problémů, přihlašovací údaje, atd. zásuvný modul by měl ověřit řetězec Parameters a zobrazit chybové dialogové okno, pokud řetězec není platný. Parametr hParentWnd by měl použit pro jakékoli dialogové okno, které zásuvný modul zobrazí jako nadřazené okno. Zásuvný modul musí vrátit TRUE, pokud ověření řetězce Parameters je úspěšné. Pokud zásuvný modul vrátí FALSE, dialogové okno nastavení neumožní uživateli přidat zásuvný modul do cesty pracovní kopie.

HRESULT GetLinkText (
  // Nadřazené okno pro jakékoli (chybové) uživatelské rozhraní,
  // které je třeba zobrazit.
  [in] HWND hParentWnd,

  // Řetězec parametru, jen pro případ, že musíte mluvit se
  // svou internetovou službou (např.) zjistit, jaký je správný text.
  [in] BSTR parameters,

  // Který text chcete zobrazit?
  // Použít aktuální jazykové vlákno.
  [out, retval] BSTR *linkText
);

Zásuvný modul může zde poskytnout řetězec, který je použit v dialogovém okně odevzdání TortoiseSVN pro tlačítko, které vyvolá zásuvný modul, např. "Vybrat problém" nebo "Vybrat lístek". Ujistěte se, že řetězec není příliš dlouhý, jinak by se nemusel do tlačítka vejít. Pokud metoda vrátí chybu (např. E_NOTIMPL), je použit pro tlačítko výchozí text.

HRESULT GetCommitMessage (
  // Nadřazené okno pro uživatelské rozhraní poskytovatele.
  [in] HWND hParentWnd,

  // Parametry pro Vašeho poskytovatele.
  [in] BSTR parameters,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // Předtím zadaný text ve zprávě odevzdání.
  // Váš poskytovatel by měl zahrnout tuto zprávu ve zprávě nové,
  // tam, kde je to vhodné.
  [in] BSTR originalMessage,

  // Nový text pro zprávu odevzdání.
  // Ta nahradí zprávu původní.
  [out, retval] BSTR *newMessage
);

Toto je hlavní metoda zásuvného modulu. Tato metoda je volána z dialogového okna odevzdání TortoiseSVN, když uživatel klikne na tlačítko zásuvný modul.

Řetězec Parameters je řetězec, který musí uživatel zadat v dialogovém okně nastavení, když modul nastavuje. Obvykle by toto modul použil k nalezení adresy URL systému pro sledování problémů a/nebo přihlašovací údaje či více.

Řetězec commonRoot obsahuje nadřazenou cestu všech vybraných položek, pro zobrazení dialogového okna odevzdání. Všimněte si, že toto není kořenová cesta všech položek, které uživatel vybral v dialogovém okně odevzdání. Pro dialogové okno větev/značka, to je cesta, která má být zkopírována.

Parametr pathList obsahuje řadu cest (jako řetězce), které uživatel zvolil pro odevzdání.

Parametr originalMessage obsahuje text zadaný v rámečku zprávy v dialogovém okně odevzdání. Pokud uživatel ještě text nezadal, bude tento řetězec prázdný.

Návratový řetězec newMessage je zkopírován do rámečku úprav zprávy v dialogovém okně odevzdání, který nahradí vše, co tam již je. Pokud modul nezmění řetězec originalMessage, musí opět vrátit sem stejný řetězec, jinak jakýkoli text, který uživatel zadá, bude ztracen.

Rozhraní IBugtraqProvider2

V TortoiseSVN 1.6 bylo přidáno nové rozhraní, které nabízí více funkcí pro zásuvné moduly. Toto rozhraní IBugtraqProvider2 je odvozeno z IBugtraqProvider.

HRESULT GetCommitMessage2 (
  // Nadřazené okno pro uživatelské rozhráni Vašeho poskytovatele.
  [in] HWND hParentWnd,

  // Parametry pro Vašeho poskytovatele.
  [in] BSTR parameters,
  // Společná URL odevzdání
  [in] BSTR commonURL,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // Text, který je už přítomen ve zprávě odevzdání.
  // Váš poskytovatel by měl zahrnout tento text v nové zprávě,
  // kde je to vhodné.
  [in] BSTR originalMessage,

  // Můžete přiřadit vlastní vlastnosti revizi k odevzdání
  // nastavením následujících dvou parametrů.
  // Poznámka: Oba safearrays musí být stejné délky.
  //       Pro každé jméno vlastnosti musí být i její hodnota

  // Obsah pole bugID (když je zobrazeno)
  [in] BSTR bugID,

  // Změněný obsah pole bugID
  [out] BSTR * bugIDOut,

  // Seznam jmen vlastností revize.
  [out] SAFEARRAY(BSTR) * revPropNames,

  // Seznam hodnot vlastností revize.
  [out] SAFEARRAY(BSTR) * revPropValues,

  // Nový text pro zprávu odevzdání.
  // Toto nahradí původní text
  [out, retval] BSTR * newMessage
);

Tato metoda je volána z dialogového okna odevzdání TortoiseSVN, když uživatel klikne na tlačítko zásuvný modul. Je volána místo GetCommitMessage(). Prohlídněte si, prosím dokumentaci GetCommitMessage pro parametry, které jsou také zde použity.

Parametr commonURL je nadřazenou URL všech vybraných položek, pro zobrazení dialogového okna odevzdání. Toto je v podstatě URL cestycommonRoot.

Parametr bugID zahrnuje obsah pole bug-ID (pokud je zobrazeno, nastaveno vlastností bugtraq:zpráva).

Návratový parametr bugIDOut se používá k vyplnění pole bug-ID, když se metoda vrátí.

Návratové parametry revPropNames a revPropValues mohou obsahovat páry název/hodnota pro vlastnosti revize, které by mělo odevzdání nastavit. Modul se musí ujistit, že obě pole mají stejnou velikost při návratu! Každé jméno vlastnosti revPropNames musí mít také odpovídající hodnotu v revPropValues. Nejsou-li vlastnosti revize stanoveny, modul musí vrátit prázdné pole.

HRESULT CheckCommit (
  [in] HWND hParentWnd,
  [in] BSTR parameters,
  [in] BSTR commonURL,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,
  [in] BSTR commitMessage,
  [out, retval] BSTR * errorMessage
);

Tato metoda je volána těsně před uzavřením dialogového okna odevzdání a odevzdání začne. Modul může použít tuto metodu pro ověření vybraných souborů/adresářů pro odevzdání a/nebo zprávy odevzdání zadané uživatelem. Parametry jsou stejné jako pro GetCommitMessage2() , s tím rozdílem, že commonURL je nyní společná URL všech zaškrtnutých položek a commonRoot je kořenová cesta všech zaškrtnutých položek.

Pro dialogové okno větev/značka, je commonURL zdrojová URL kopírování a commonRoot je nastaven na cílovou adresu URL kopie.

Návratový parametr errorMessage musí buď obsahovat chybové hlášení, které TortoiseSVN ukáže uživateli nebo být prázdný pro spuštění odevzdání. Pokud je vrácena chybová zpráva, TortoiseSVN zobrazí řetězec chyby v dialogovém okně a udržuje dialogové okno otevřené, takže uživatel může opravit, co je špatně. Modul by proto měl vrátit chybový řetězec, který informuje uživatele co je špatně a jak to opravit.

HRESULT  OnCommitFinished (
  // Nadřazené okno pro jakékoli (chybové) uživatelské rozhraní,
  // které je třeba zobrazit.
  [in] HWND hParentWnd,

  // Společný kořen všech cest, které byly odezvdány.
  [in] BSTR commonRoot,

  // Všechny cesty, které byly odevzdány.
  [in] SAFEARRAY(BSTR) pathList,


  // Už zadaný text ve zprávě záznamu.
  [in] BSTR logMessage,

  // Revize odevzdání.
  [in] ULONG revision,


  // Chyba, která se má ukázat uživateli, pokud tato funkce
  // vrátí něco jiného než S_OK
  [out, retval] BSTR * error
);

Tato metoda je volána po úspěšném odevzdání. Modul může použít tuto metodu, např. v blízkosti vybraného problému, nebo pro přidání informací o odevzdání k problému. Parametry jsou stejné jako pro GetCommitMessage2.

HRESULT HasOptions(
  // Zda poskytovatel nabízí možnosti
  [out, retval] VARIANT_BOOL *ret
);

Tato metoda je volána z dialogového okna nastavení, kde si uživatel může nastavit zásuvné moduly. Pokud modul poskytuje vlastní konfigurační dialog s ShowOptionsDialog, musí zde vrátit TRUE, jinak musí vrátit hodnotu FALSE.

HRESULT ShowOptionsDialog(
  // Nadřazené okno dialogového okna možností
  [in] HWND hParentWnd,

  // Parametry pro Vašeho poskytovatele.
  [in] BSTR parameters,

  // Řetězec parametrů
  [out, retval] BSTR * newparameters
);

Tato metoda je volána z dialogového okna nastavení, když uživatel klikne na tlačítko "Možnosti", které je zobrazeno, pokud HasOptions vrátí TRUE. Modul může ukázat dialogové okno možnosti s cílem usnadnit uživatelům modul nastavit.

Řetězec parameters obsahuje řetězec parametrů modulu, který je již nastaven/zadán.

Návratový parametr newparameters musí obsahovat řetězec parametrů, který modul sestavil z informací, které shromáždil v jeho dialogovém okně možnosti. Tento řetězec parameters řetězec je předán všem ostatním metodám IBugtraqProvider a IBugtraqProvider2.

Příloha A. Často kladené otázky (FAQ)

Because TortoiseSVN is being developed all the time it is sometimes hard to keep the documentation completely up to date. We maintain an online FAQ which contains a selection of the questions we are asked the most on the TortoiseSVN mailing lists https://groups.google.com/forum/#!forum/tortoisesvn and https://groups.google.com/forum/#!forum/tortoisesvn-dev

Máte-li otázku, která není zodpovězena nikde jinde, je nejlepším místem se zeptat na jedním z e-mailových diskuzí:

Příloha B. Jak...

Tato příloha obsahuje řešení problémů/otázek, které můžete mít při používání TortoiseSVN.

Přesunout/zkopírovat větší množství souborů najednou

Přesouvání/Kopírování jednotlivých souborů lze provést pomocí TortoiseSVNPřejmenovat.... Ale pokud chcete přesunout/kopírovat velké množství souborů, toto je prostě příliš pomalé a příliš pracné.

Doporučený způsob je táhnout pravým tlačítkem myši soubory do nového umístění. Stačí kliknout pravým tlačítkem myši na soubory, které chcete přesunout/kopírovat, aniž byste ho pustili. Pak přetáhněte soubory do nového umístění a uvolněte ho. Zobrazí ss kontextové menu, kde si můžete buď vybrat Kontextové menu SVN kopírovat soubory s verzí sem, nebo Kontextové menuSVN přesunout soubory s verzí sem .

Obrázek B.1. The TortoiseSVN right drag context menu for moving files

The TortoiseSVN right drag context menu for moving files


Přinutit uživatele zadat zprávu záznamu

Existují dva způsoby, jak zabránit uživatelům odevzdávat s prázdnou zprávou záznamu. Jeden z nich je specifický pro TortoiseSVN, další funguje ve všech klientech Subversion, ale vyžaduje přímý přístup k serveru.

Hákový skript na serveru

Pokud máte přímý přístup k serveru úložiště, můžete nainstalovat skript před odevzdáním, který odmítne všechny odevzdání s prázdnou, nebo příliš krátkou zprávou záznamu.

V adresáři úložiště na serveru, je podadresář hooks, který obsahuje některé příklady hákových skirptů, které můžete použít. Soubor pre-commit.tmpl obsahuje ukázkový skript, který odmítne odevzdání, pokud není dodána žádná zpráva záznamu, nebo je zpráva příliš krátká. Soubor obsahuje také poznámky o tom, jak nainstalovat/používat tento skript. Stačí sledovat instrukce v tomto souboru.

Tato metoda je doporučený způsob, pokud Vaši uživatelé používají i jiné klienty Subversion než TortoiseSVN. Nevýhodou je, že odevzdání je odmítnuto serverem a díky tomu uživatelé dostanou chybové hlášení. Klient nemůže před odevzdáním vědět, že bude odmítnut. Pokud chcete, aby TortoiseSVN měl tlačítko OK vypnuté, dokud zpráva záznamu není dostatečně dlouhá, pak použijte metodu popsanou níže.

Vlastnosti projektu

TortoiseSVN využívá vlastnosti pro řízení některých jeho funkcí. Jedna z těchto vlastností je tsvn:logminsize.

Pokud ji nastavíte na adresář, pak TortoiseSVN vypne tlačítko OK ve všech dialogových oknech odevzdání, dokud uživatel nezadá zprávu záznamu s minimální délkou uvedenou ve vlastnosti.

Podrobné informace o těchto vlastnostech projektu naleznete na „Nastavení projektu“.

Aktualizovat vybrané soubory z úložiště

Normálně aktualizujete pracovní kopii pomocí TortoiseSVNAktualizovat . Ale pokud chcete jen vyzvednout nějaké nové soubory, které kolega přidal bez sloučení jakýkoliv změn v jiných souborech ve stejnou dobu, budete potřebovat jiný přístup.

Použijte TortoiseSVNZjistit změny a klikněte na Zkontrolovat úložiště, abyste viděli, co se v úložišti změnilo. Vyberte soubory, které chcete aktualizovat místně, pak pomocí kontextového menu aktualizujte pouze tyto soubory.

Vrátit zpět revize v úložišti

Pomocí dialogového okna záznamu revizí

Nejjednodušším způsobem, jak vrátit změny z jedné nebo více revizí, je použít dialogové okno záznamu revizí.

  1. Vyberte soubor nebo adresář, v kterém chcete vrátit změny. Pokud chcete vrátit všechny změny, měl by to být adresář nejvyšší úrovně.

  2. Vyberte TortoiseSVNZobrazit záznam k zobrazení seznamu revizí. Možná budete muset použít Zobrazit Vše nebo Dalších 100 pro zobrazení revize(í), která Vás zajímá.

  3. Vyberte revize, kterou chcete vrátit. Pokud chcete vrátit řadu revizí, zvolte první a držte klávesu Shift při výběru té poslední. Pokud chcete vybrat jednotlivé revize a rozsahy, použijte klávesu Ctrl při výběru revizí. Klikněte pravým tlačítkem myši na vybrané, pak zvolte Kontextové menuVrátit změny z této revize.

  4. Nebo pokud chcete, aby dřívější revizi se stala nová HEAD revize, klikněte pravým tlačítkem myši na vybranou revizi, pak zvolte Kontextové menuVrátit se k této revizi. Tím se zbavit všech změn po vybrané revizi.

Vrátili jste změny v pracovní kopii. Podívejte se na výsledky, pak změny odevzdejte.

Pomocí dialogového okna sloučení

Pokud chcete zadat čísla revizí jako seznam, můžete použít dialogové okno sloučení. Předchozí metoda používá slučování v pozadí; tato metoda ho používá výslovně.

  1. Ve Vaší pracovní kopie zvolte TortoiseSVNSloučit.

  2. V dialogovém okně Typ sloučení vyberte Sloučit řadu revizí.

  3. V poli Z: zadejte úplnou adresu URL adresáře vaší pracovní kopie. To by mělo být zobrazeno jako výchozí URL.

  4. V poli Rozsah revizí ke sloučení zadejte seznam revizí, které chcete sloučit pro zpětné vrácení (nebo použijte dialogové okno záznamu pro jejich výběr tak jak je popsáno výše).

  5. Ujistěte se, že políčko Zpětné sloučení je zaškrtnuto.

  6. V dialogovém okně Možnosti sloučení přijměte výchozí hodnoty.

  7. Klikněte na Sloučit pro dokončení sloučení.

Vrátili jste změny ve vaší pracovní kopii. Zkontrolujte, že výsledky jsou podle vašich představ, pak změny odevzdejte.

Pomocí svndumpfilter

Vzhledem k tomu, že TortoiseSVN nikdy neztrácí data, Vaše vrácené revize stále existují jako mezilehlé revize v úložišti. Pouze revize HEAD byla změněna do předchozího stavu. Pokud chcete, aby revize zcela zmizely z Vašeho úložiště, jako kdyby vůbec neexistovaly, budete muset použít více extrémní opatření. Pokud není opravdu dobrý důvod k tomu toto udělat, není to doporučeno. Jedním z možných důvodů je, že někdo odevzdal důvěrný dokument do veřejného úložiště.

Jediným způsobem, jak odstranit data z úložiště je použití nástroje svnadmin příkazového řádku Subversion. Popis nástroje naleznete v Údržbě Úložiště.

Porovnat dvě revize souboru nebo adresáře

Pokud chcete porovnat dvě revize v historii položky, například revize 100 a 200 téhož souboru, stačí použít TortoiseSVNZobrazit záznam pro seznam historie revizí pro tento soubor. Vyberte si dvě revize, které chcete porovnat pak použijte Kontextové menuPorovnat Revize.

Pokud chcete porovnat stejné položky ve dvou různých stromech, například kmen a větev, můžete použít průzkumníka úložiště pro otevření obou stromů, vyberte soubor v obou místech, pak použijte Kontextové menuPorovnat Revize.

Pokud chcete porovnat dva stromy, abyste viděli, co se změnilo, například kmen a označené vydání, můžete použít TortoiseSVNGraf Revizí Vyberte dva uzly k porovnání, pak použijte Kontextové menu Porovnat HEAD revize. Tím se zobrazí seznam změněných souborů a pak můžete vybrat jednotlivé soubory k zobrazení změn v detailu. Můžete také exportovat stromovou strukturu obsahující všechny změněné soubory, nebo prostě jen seznam všech změněných souborů. Přečtěte si „Porovnávání adresářů“ pro více informací. Můžete také použít Kontextové menuSjednocený rozdíl z HEAD revizí, abyste viděli přehled všech rozdílů, s minimálním kontextem.

Zahrnout společný podprojekt

Někdy budete chtít zahrnout další projekty v rámci vaší pracovní kopie, možná zdrojový kód některých knihoven. Existují minimálně 4 způsoby jak toto řešit.

Pomocí svn:externals

Nastavte vlastnost svn:externals na adresář v projektu. Tato vlastnost se skládá z jednoho nebo více řádků, každý řádek má název podadresáře, který chcete použít jako adresář získání společného kódu a URL úložiště, které tam chcete získat. Pro podrobnosti si prohlédněte „Externí položky“.

Odevzdejte nový adresář. Nyní, když aktualizujete, Subversion stáhne kopii tohoto projektu z jeho úložiště do Vaší pracovní kopie. Podadresáře jsou automaticky vytvořeny v případě potřeby. Pokaždé, když budete aktualizovat svoji hlavní pracovní kopii, obdržíte také nejnovější verze všech externích projektů.

Pokud je externí projekt ve stejném úložišti, všechny změny, které v něm provedete, budou při odevzdání hlavního projektu zahrnuty.

Pokud je externí projekt v jiném úložišti, všechny změny v něm provedené budou při odevzdání hlavního projektu zobrazeny či vyznačeny, ale tyto vnější změny musíte odevzdat samostatně.

Ze tří uvedených metod, tato je jediná, který nepotřebuje žádné nastavení na straně klienta. Jakmile jsou externí uvedeny ve vlastnostech adresáře, všichni klienty při aktualizaci dostanou zaplněný adresář.

Pomocí vnořené pracovní kopie

Vytvořte nový adresář ve Vašem projektu, který bude obsahovat společný kód, ale nepřidávejte ho do Subversion.

Vyberte TortoiseSVNZískat na nový adresář a získejte do něj kopii společného kódu. Nyní máte samostatnou pracovní kopii vnořenou ve své hlavní pracovní kopii.

Tyto dvě pracovní kopie jsou nezávislé. Když odevzdáváte změny do nadřazené pracovní kopie, jsou ve vnořené ignorovány. Podobně při aktualizaci nadřazené pracovní kopie, není vnořená aktualizována.

Pomocí relativního umístění

Pokud používáte stejné společné kódové jádro v několika projektech a nechcete mít více pracovních kopií jádra pro každý projekt, který ho používá, stačí ho získat do samostatného místa, které se vztahuje na všechny ostatní projekty, které ho používají. Například:

C:\Projekty\Proj1
C:\Projekty\Proj2
C:\Projekty\Proj3
C:\Projekty\Společné 

a odkázat na společný kód pomocí relativní cesty, např. ..\..\Společné\DSPcore.

Pokud jsou Vaše projekty rozptýleny v nesouvisejících místech, můžete použít variantu tohoto, což je dát společný kód na jedno místo a použít substituci písmena jednotky k zmapování umístění na něco, co můžete pevně zakódovat do Vašich projektů, např. Získat společný kód do D:\Dokumenty\Framework nebo C:\Documents and Settings\{přihlašovací jméno}\Mé Dokumenty\framework pak použijte

SUBST X: "D:\Dokumenty\framework"

k vytvoření mapování disku použité ve Vašem zdrojovém kódu. Váš kód pak může použít absolutní umístění.

#Include "X:\Superio\superio.h"

Tato metoda bude fungovat pouze v prostředí PC a budete muset zdokumentovat požadované mapování disku, takže váš tým bude vědět, kde jsou tyto záhadné soubory. Tato metoda je výhradně pro použití v uzavřených vývojových prostředích a nedoporučuje se pro všeobecné použití.

Přidat projekt do úložiště

Možná nejjednodušším způsobem je prostě projekt přidat do podsložky v pracovní kopii vašeho projektu. To má ale své nedostatky - tento externí projekt musíte aktualizovat ručně.

Abychom Vám pomohli s aktualizací, TortoiseSVN má v kontextové nabídce příkaz, který založí větev dodavatele. Stačí jednoduše přetáhnout pravým tlačítkem složku, kde jste rozbalili novou verzi externí knihovny na složku ve vaší pracovní kopii a pak volit Kontextové menuZde založit SVN větev dodavatele. To pak zkopíruje nové soubory do cílové složky a automaticky přidá nové soubory a odstraní ty, které již v nové verzi nejsou.

Vytvořit zkratku úložiště

Pokud často potřebujete otevřít průzkumníka úložiště v konkrétním umístění, můžete vytvořit zástupce na ploše pomocí rozhraní automatizace TortoiseProc. Stačí vytvořit nového zástupce a stanovit cíl na:

TortoiseProc.exe/command:repobrowser/path: "url/do/uloziste"

Samozřejmě je nutné zadat URL skutečného úložiště.

Ignorovat soubory, které už mají verzi

Pokud jste omylem přidali některé soubory, které měly být ignorovány, jak je dostanete ze správy verzí, aniž by se ztratili? Možná že máte svůj vlastní konfigurační soubor IDE, který není součástí projektu, ale který Vám zabral spoustu času nastavit přesně tak, jak se Vám líbí.

Pokud jste dosud přidání neodevzdali, pak vše, co musíte udělat, je použít TortoiseSVNVrátit Přidání... k vrácení přidání. Pak byste měli přidat soubor(y) do seznamu k ignorování, aby nebyly později znovu omylem přidány.

Pokud jsou soubory již v úložišti, musí být odstraněny z úložiště a přidán do seznamu k ignorování. Naštěstí TortoiseSVN má výhodnou zkratku pro provedení tohoto. TortoiseSVNOdstranit verzi a přidat do seznamu k ignorování nejprve označí soubor/adresář pro vymazání z úložiště, ponechávajíc si místní kopii. Také přidá tuto položku do seznamu k ignorování, takže nebude zase omylem vrácena zpět do Subversion. Jakmile je to hotovo, stačí nadřazený adresář odevzdat.

Odstranit verzi pracovní kopie

Pokud máte pracovní kopii, kterou chcete převést zpět na běžný adresářový strom, bez adresáře .svn, můžete jednoduše exportovat do sebe. Přečtěte si „Smazání pracovní kopie ze správy verzí“, abyste zjistili, jak na to.

Odebrat pracovní kopii

Pokud máte pracovní kopii, kterou již nepotřebujete, jak se ji čistě zbavit? Jednoduché - stačí jej odstranit v programu Průzkumník Windows! Pracovní kopie jsou soukromé místní subjekty a jsou nezávislé. Smazání pracovní kopii v aplikaci Průzkumník Windows nemá žádný vliv na data v úložišti.

Příloha C. Užitečné tipy pro administrátory

Tato příloha obsahuje řešení problémů/otázek, které můžete mít, pokud jste zodpovědni za nasazení TortoiseSVN do více klientských počítačů.

Nasazení TortoiseSVN pomocí zásad skupiny

Instalační soubor TortoiseSVN je ve formátu MSI, což znamená, že byste neměli mít žádné problémy s přidáním tohoto MSI souboru do zásad skupiny Vašeho správce domény.

Dobrý návod, jak toto provést, lze nalézt v článku 314934 znalostní báze společnosti Microsoft: http://support.microsoft.com/?kbid=314934.

TortoiseSVN musí být nainstalován pod Konfigurace počítače a ne pod Konfigurace uživatele. Je to proto, že TortoiseSVN potřebuje DLL knihovny CRT a MFC, které můžou být nasazeny pouze na každý počítač zvlášť a ne zvlášť pro jednoho uživatele. Pokud opravdu musíte nainstalovat TortoiseSVN zvlášť pro každého uživatele, pak musíte nejprve nainstalovat balík MFC a CRT verze 12 od společnosti Microsoft na každém počítači, na který chcete nainstalovat TortoiseSVN pro každého uživatele zvlášť.

Můžete si MSI soubor přizpůsobit, pokud chcete, aby všichni uživatelé měli stejná nastavení. Nastavení TSVN jsou uložena v registru pod HKEY_CURRENT_USER\Software\TortoiseSVN a obecná nastavení Subversion (která ovlivňují všechny klienty subversion) jsou uložena v konfiguračních souborech v %APPDATA%\Subversion. Pokud potřebujete pomoc s úpravou MSI, vyzkoušejte některý z fór pro změnu MSI, nebo hledejte MSI transform na internetu.

Přesměrovat kontrolu nové verze

TortoiseSVN kontroluje, zda je nová verze k dispozici vždy po několika dnech. Je-li k dispozici novější verze, je zobrazeno oznámení v dialogovém okně odevzdání.

Obrázek C.1. Dialogové okno odevzdání, zobrazující oznámení o nové verzi

Dialogové okno odevzdání, zobrazující oznámení o nové verzi

Pokud zodpovídate za mnoho uživatelů v doméně, možná budete chtít, aby uživatelé využívali pouze verze, které Vy schválíte a aby neinstalovali vždy nejnovější verzi. Pravděpodobně nebudete chtít, aby se zobrazovalo oznámení o nové verzi, aby si uživatelé aktualizaci hned nenainstalovali.

Verze TortoiseSVN 1.4.0 a novější Vám umožní tuto kontrolu přesměrovat na váš intranetový server. Můžete nastavit klíč registru HKCU\Software\TortoiseSVN\UpdateCheckURL (Řetězcová hodnota) na URL odkazující na textový soubor ve Vašem intranetu. Tento textový soubor musí mít následující formát:

1.9.1.6000
Nová verze TortoiseSVN je pro Vás k dispozici ke stažení!
http://192.168.2.1/downloads/TortoiseSVN-1.9.1.6000-svn-1.9.1.msi

První řádek v tomto souboru je řetězec verze. Musíte se ujistit, že se přesně shoduje s řetězcem verze instalačního balíčku TortoiseSVN. Druhý řádek je vlastní text, který se zobrazí v dialogovém okně odevzdání. Můžete napsat, co chcete. Jen vezměte na vědomí, že prostor v dialogovém okně je omezen. Příliš dlouhé zprávy budou zkosené! Třetí řádek je URL nového instalačního balíčku. Tato adresa URL se otevře, když uživatel klikne na štítek vlastní zprávy v dialogovém okně odevzdání. Můžete také odkázat uživatele na webové stránky místo přímo na soubor MSI. URL je otevřena výchozím internetovým prohlížečem, takže pokud zadáte webovou stránku, tato stránka je otevřena a zobrazena uživateli. Zadáte-li MSI balíček, prohlížeč požádá uživatele o uložení souboru MSI.

Nastavení proměnné prostředí SVN_ASP_DOT_NET_HACK

Od verze 1.4.0 a vyšší, instalátor TortoiseSVN už neposkytuje uživateli možnost nastavit proměnnou prostředí SVN_ASP_DOT_NET_HACK, protože způsobovala mnoho problémů a zmatek pro uživatele, kteří vždy instalují vše bez ohledu na to, zda vědí, k čemu to je.

Ale tato funkce je stále dostupná v TortoiseSVN a dalších klientech svn. Pro zapnutí je nutné nastavit proměnnou prostředí Windows s názvem ASPDOTNETHACK na 1. Ve skutečnosti hodnota proměnné ani nehraje roli: Pokud existuje, je funkce aktivní.

Důležité

Upozorňujeme, že tento hack je nutný pouze, pokud stále používáte VS.NET2002. Všechny pozdější verze Visual Studio nevyžadují, aby byl tento hack aktivován! Takže pokud nepoužíváte tento starověký nástroj, TOTO NEPOUŽÍVEJTE!

Zakázání položek kontextového menu

Ve verzi 1.5.0 a vyšší, TortoiseSVN umožňuje zakázat (vlastně skrýt) položky kontextového menu. Protože toto je funkce, která by neměla být použita jen tak, ale pouze v případě, že je pádný důvod, neexistuje pro toto žádné grafické rozhraní a je třeba to provést přímo v registru. Toto může být použito k zakázání určitých příkazů pro uživatele, kteří by je neměli používat. Ale prosím vezměte na vědomí, že pouze položky kontextového menu v průzkumníku jsou skryty a příkazy jsou stále k dispozici jiným způsobem, např. z příkazové řádky nebo i v jiných dialogových oknech TortoiseSVN!

Klíče registru, který drží informace, které kontextové menu zobrazit, jsou HKEY_CURRENT_USER\Software\TortoiseSVN\ContextMenuEntriesMaskLow a HKEY_CURRENT_USER\Software\TortoiseSVN\ContextMenuEntriesMaskHigh.

Každá z těchto položek registru má hodnotu DWORD, přičemž každý bit odpovídá konkrétní položce menu. Nastavený bit znamená, že odpovídající položka menu je vypnuta.

Tabulka C.1. Položky menu a jejich hodnoty

HodnotaPoložka menu
0x0000000000000001Získat
0x0000000000000002Aktualizovat
0x0000000000000004Odevzdat
0x0000000000000008Přidat
0x0000000000000010Vrátit
0x0000000000000020Vyčistit
0x0000000000000040Vyřešit
0x0000000000000080Překlopit
0x0000000000000100Import
0x0000000000000200Exportovat
0x0000000000000400Vytvořit Úložiště zde
0x0000000000000800Větev/značka
0x0000000000001000Sloučit
0x0000000000002000Smazat
0x0000000000004000Přejmenovat
0x0000000000008000Aktualizovat na Revizi
0x0000000000010000Porovnat
0x0000000000020000Zobrazit Záznam
0x0000000000040000Upravit konflikty
0x0000000000080000Přemístit
0x0000000000100000Zjistit změny
0x0000000000200000Ignorovat
0x0000000000400000Průzkumník Úložiště
0x0000000000800000Obvinit
0x0000000001000000Vytvořit Záplatu
0x0000000002000000Použít Záplatu
0x0000000004000000Graf Revizí
0x0000000008000000Zámek
0x0000000010000000Odstranit zámek
0x0000000020000000Vlastnosti
0x0000000040000000Porovnat s URL
0x0000000080000000Smazat položky bez verze
0x0000000100000000Sloučit Vše
0x0000000200000000Porovnat s předchozí verzí
0x0000000400000000Vložit
0x0000000800000000Aktualizovat pracovní kopii
0x0000001000000000Porovnat později
0x0000002000000000Porovnat s 'názevsouboru'
0x0000004000000000Sjednocený rozdíl
0x2000000000000000Nastavení
0x4000000000000000Nápověda
0x8000000000000000O aplikaci


Příklad: Pro vypnutí položek menu Přemístit, Smazat položky bez verze a Nastavení, přidejte hodnoty přiřazené položkám, jako jsou tyto:

  0x0000000000080000
+ 0x0000000080000000
+ 0x2000000000000000
= 0x2000000080080000

Nižší hodnota DWORD (0x80080000) pak musí být uložena v HKEY_CURRENT_USER\Software\TortoiseSVN\ContextMenuEntriesMaskLow, vyšší hodnota DWORD (0x20000000) v HKEY_CURRENT_USER\Software\TortoiseSVN\ContextMenuEntriesMaskHigh.

K znovu zobrazení těchto položek menu, stačí smazat tyto dva klíče registru.

Příloha D. Automatizace TortoiseSVN

Protože všechny příkazy TortoiseSVN jsou řízeny přes parametry příkazového řádku, můžete je automatizovat pomocí dávkových skriptů nebo spustit konkrétní příkazy a dialogová okna z jiných programů (např. Váš oblíbený textový editor).

Důležité

Nezapomeňte, že TortoiseSVN je klient grafického uživatelského rozhraní a tento průvodce automatizací Vám ukáže, jak zobrazit dialogová okna TortoiseSVN pro sběr vstupů uživatele. Pokud chcete napsat skript, který nevyžaduje žádné vstupy, měli byste místo toho použít oficiální příkazový řádek klienta Subversion.

Příkazy TortoiseSVN

Program grafického uživatelského rozhraní TortoiseSVN se nazývá TortoiseProc.exe. Všechny příkazy jsou uvedeny s parametrem /command:abcd kde abcd je povinný název příkazu. Většina těchto příkazů potřebujete alespoň jeden argument cesty, který je předáván s /path:"nějaká\cesta". V následující tabulce se příkaz vztahuje k parametru /command:abcd a cesta se vztahuje k parametru /path:"nějaká\cesta".

Existuje zvláštní příkaz nevyžadující parametr /command:abcd, ale, pokud na příkazovém řádku není nic zadáno, bude místo toho spuštěn monitor projektů. Pokud je předáno /tray, bude monitor spuštěn na pozadí a pouze přidá svoji ikonu do systémové lišty.

Protože některým z těchto příkazů můžete předat seznam cílových cest (např. odevzdání několika konkrétních souborů) parametr /path může mít i několik cest, oddělených znakem *.

You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format, without a BOM. If you pass such a file, use /pathfile instead of /path. To have TortoiseProc delete that file after the command is finished, you can pass the parameter /deletepathfile. If you don't pass /deletepathfile, you have to delete the file yourself or the file gets left behind.

Dialogové okno průběhu, který se používá pro odevzdání, aktualizace a mnoho dalších příkazů obvykle zůstane otevřené i po dokončení příkazu, dokud uživatel nestiskne tlačítko OK. Toto může být změněno zaškrtnutím příslušné volby v dialogovém okně nastavení. Ale použitím tohoto nastavení se bude dialogové okno průběhu bez ohledu na to, pokud spustíte příkaz z dávkového souboru nebo z kontextového menu TortoiseSVN.

Chcete-li zadat jiné umístění konfiguračního souboru, použijte parametr /configdir:"cesta\k\adresáři astavení". Tím se přepíše výchozí cesta, včetně všech nastavení registru.

Chcete-li automaticky zavřít dialogové okno průběhu na konci příkazu, bez použití trvalého nastavení, můžete předat parametr /closeonend.

  • /closeonend:0 dialogové okno se automaticky nezavře

  • /closeonend:1 automaticky zavřít, pokud nejsou žádné chyby

  • /closeonend:2 automaticky zavřít, pokud nejsou žádné chyby a konflikty

  • /closeonend:3 automaticky zavřít, pokud nejsou žádné chyby, konflikty a sloučení

Chcete-li zavřít dialogové okno průběhu pro místní operace, pokud nedošlo k chybám nebo konfliktům, předejte parametr /closeforlocal.

Níže uvedená tabulka uvádí všechny příkazy, ke kterým lze přistupovat pomocí příkazového řádku TortoiseProc.exe. Jak je uvedeno výše, tyto by měly být použity ve formě /command:abcd. V tabulce je předpona /command vynechána pro úsporu místa.

Tabulka D.1. Seznam dostupných příkazů a možností

PříkazPopis
:aboutZobrazuje informace o programu. Také je zobrazen, není-li zadán příkaz.
:log

Otevře dialogové okno záznamu. Volba /path udává soubor nebo složku pro které bude záznam zobrazen. Lze nastavit další možnosti:

  • /startrev:xxx,

  • /endrev:xxx,

  • /limit:xxx limits the amount of fetched messages

  • /strict povoluje zaškrtávací políčko 'Zastavit na kopírování'

  • /merge povoluje zaškrtávací políčko 'Zahrnout sloučené revize',

  • /datemin:"{datestring}" nastaví počáteční datum filtru a

  • /datemax:"{datestring}" nastaví koncové datum filtru. Formát data je stejný jako u dat revizí svn.

  • /findstring:"filterstring" vyplní text k filtrování,

  • /findtext donutí filtr použít text, ne regulární výraz, nebo

  • /findregex donutí filtr použít regulární výraz, ne hledání prostého textu a

  • /findtype:X kde X je číslo mezi 0 a 511. Čísla jsou sumou následujících možností:

    • /findtype:0 filtrovat podle všeho

    • /findtype:1 filtrovat podle zpráv

    • /findtype:2 filtrovat podle zpráv

    • /findtype:4 filtrovat podle autorů

    • /findtype:8 filtrovat podle revizí

    • /findtype:16 není využito

    • /findtype:32 filtrovat podle ID chyby

    • /findtype:64 není využito

    • /findtype:128 filtrovat podle data

    • /findtype:256 filtrovat podle časového období

  • Pokud /Outfile:cesta\k\souboru je nastavena, vybrané revize jsou zapsány do tohoto souboru, když je dialogové okno záznamu uzavřeno. Revize jsou vypisovány ve stejném formátu, jaký je použit v dialogovém oknu sloučení.

An svn date revision can be in one of the following formats:

  • {2006-02-17}

  • {15:30}

  • {15:30:00.200000}

  • {"2006-02-17 15:30"}

  • {"2006-02-17 15:30 +0230"}

  • {2006-02-17T15:30}

  • {2006-02-17T15:30Z}

  • {2006-02-17T15:30-04:00}

  • {20060217T1530}

  • {20060217T1530Z}

  • {20060217T1530-0500}

:checkout

Opens the checkout dialog. The /path specifies the target directory and the /url specifies the URL to checkout from. If you specify the key /blockpathadjustments, the automatic checkout path adjustments are blocked. The /revision:XXX specifies the revision to check out.

If you specify /outfile:"path/to/file" the specified file will contain three lines after a checkout. The first line is the checkout path, the second line the url and the third the revision.

:importOtevře dialogové okno importu. /path specifikuje adresář s daty pro import. Můžete také zadat přepínač /logmsg k předání přednastavené zprávy záznamu dialogu. Nebo pokud nechcete předat zprávu záznamu na příkazovém řádku, použijte /logmsgfile:cesta , kde cesta odkazuje na soubor, obsahující zprávu záznamu.
:updateAktualizuje pracovní kopii v /path na HEAD. Pokud je zadána možnost /rev pak se zobrazí dialogové okno se žádostí, aby uživatel vybral revizi, na kterou by aktualizace měla jít. Aby se zabránilo dialogovému oknu zadávat číslo revize /rev:1234. Další možnosti jsou /nonrecursive, /ignoreexternals a /includeexternals. /stickydepth znamená, že daná hloubka by měla být výchozí, čímž vytvoří řídké získání. /skipprechecks může být nastaveno pro přeskočení všech kontrol, které jsou provedeny před aktualizací. Pokud je toto zadáno, pak je tlačítko Zobrazit záznam vypnuté a kontextové menu pro zobrazení rozdílů je po aktualizaci také vypnuté.
:commitOtevře dialogové okno odevzdání. /path určuje cílový adresář nebo seznam souborů k odevzdání. Můžete také zadat přepínač /logmsg pro předání předem nastavené zprávy záznamu v dialogovém okně. Nebo pokud nechcete předat zprávu záznamu na příkazovém řádku, použijte /logmsgfile:cesta , kde cesta odkazuje na soubor, obsahující zprávu záznamu. Pro předvyplnění rámečku s ID chyby (v případě, že jste nastavili integraci se systémem pro sledování chyb správně), můžete k tomuto použít /bugid:"id chyby zde".
:addPřidá soubory v /path pod správu verzí.
:revertVrátí místní změny pracovní kopie. /path říká, které položky chcete vrátit.
:cleanupCleans up interrupted or aborted operations and unlocks the working copy in /path. You also have to pass the /cleanup to actually do the cleanup. Use /noui to prevent the result dialog from popping up (either telling about the cleanup being finished or showing an error message). /noprogressui also disables the progress dialog. /nodlg disables showing the cleanup dialog where the user can choose what exactly should be done in the cleanup. The available actions can be specified with the options /cleanup for status cleanup, /breaklocks to break all locks, /revert to revert uncommitted changes, /delunversioned, /delignored, /refreshshell, /externals, /fixtimestamps and /vacuum.
:resolveOznačí konfliktní soubor zadaný v /path jako vyřešený. Pokud je předán /noquestion, pak řešení je provedeno, aniž by byl uživatel dotázán, jestli je to opravdu třeba udělat.
:repocreateVytvoří úložiště v /path
:switchOtevře dialogové okno překlopení. /path určuje cílový adresář a /url URL na kterou překlopit.
:exportExportuje pracovní kopii v /path do jiného adresáře. Pokud /path poukazuje na adresáře bez verze, zobrazí se dialogové okno žádající o URL pro export do adresáře, v /path. Pokud zadáte klíč /blockpathadjustments , automatické úpravy cest exportu jsou zablokovány.
:dropexportExportuje pracovní kopii v /path do adresáře uvedeném v /droptarget. Tento export nepoužívá dialogové okno, ale je spuštěn přímo. Možnost /overwrite určuje, jestli existující soubory mají být přepsány bez potvrzení uživatelem, a možnost /autorename určuje, jestli exportované soubory budou automaticky přejmenovány, pokud soubory již existují, aby se zabránilo jejich přepsání. Možnost /extended může zadat buď localchanges pro export pouze těch souborů, které jsou změněny místně, nebo unversioned k exportování také položek bez verze.
:dropvendorCopies the folder in /path recursively to the directory specified in /droptarget. New files are added automatically, and missing files get removed in the target working copy, basically ensuring that source and destination are exactly the same. Specify /noui to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog.
:mergeOtevře dialogové okno sloučení. /path určuje cílový adresář. Pro sloučení rozsahu revizí, jsou dostupné následující možnosti: /fromurl:URL, /revrange:řetězec . Pro sloučení dvou stromů úložiště, jsou dostupné následující možnosti: /fromurl:URL, /tourl:URL, /fromrev:xxx a /torev:xxx.
:mergeallOtevře dialogové okno sloučit vše. /path určuje cílový adresář.
:copyZobrazí dialogové okno větev/značka. /path je pracovní kopie, z které má být větev/značka vytvořena. A /url je cílová URL. Pokud adresa začíná ^, předpokládá se, že je relativní ke kořeni úložiště. Pokud chcete mít volbu Překlopit pracovní kopii do nové větve / značky již zaškrtnutou, můžete předat přepínač /switchaftercopy. Pro zaškrtnutí volby Vytvořit přechodné složky předejte přepínač /makeparents. Také můžete zadat přepínač /logmsg k předání předem nastavené zprávy záznamu do dialogového okna větve/značky. Nebo pokud nechcete předat zprávu záznamu na příkazovém řádku, použijte /logmsgfile:cesta, kde cesta odkazuje na soubor, obsahující zprávu záznamu.
:settingsOtevře dialogové okno nastavení.
:removeOdstraní soubor(y) v /path ze správy verzí.
:renamePřejmenuje soubor v /path. O nový název souboru bude požádáno v dialogovém okně. Chcete-li se vyhnout otázce o přejmenování podobných souborů v jednom kroku, předejte /noquestion.
:diffSpustí externí program rozdílů, jak je uvedeno v nastavení TortoiseSVN. /path určuje první soubor. Pokud je možnost /path2 nastavena, pak je program rozdílů spuštěn s těmito dvěma soubory. Pokud je /path2 vynechán, pak rozdíl je proveden mezi souborem v /path a jeho originálem. Pokud zadaný sobour má také změny ve vlastnostech, nástroj je také spuštěn pro každou změněnou vlastnost. Abyste tomuto zabránili, zadejte volbu /ignoreprops. Chcete-li nastavit konkrétní čísla revizí použijte /startrev:xxx a /endrev:xxx a pro nepovinnou zavěšenou revizi použijte /pegrevision:xxx. Pokud je nastaven /blame a /path2 není, pak je rozdíl proveden tak, že nejprve obviní soubory s danými revizemi. Parametr /line:xxx určuje na který řádek skočit, když je rozdíl zobrazen.
:shelveShelves the specified paths in a new shelf. The option /shelfname:name specifies the name of the shelf. An optional log message can be specified with /logmsg:message. If option /checkpoint is passed, the modifications of the files are kept.
:unshelveApplies the shelf with the name /shelfname:name to the working copy path. By default the last version of the shelf is applied, but you can specify a version with /version:X.
:showcompare

V závislosti na URL a revizích k porovnání, buď ukazuje sjednocený rozdíl (v případě, že volba sjednocený je nastavena), dialogové okno se seznamem souborů, které se změnily, nebo pokud adresa URL odkazuje na soubory, spustí prohlížeč rozdílů pro tyto dva soubory.

Možnosti url1, url2, revize1 a revize2 musí být zadány. Možnosti pegrevision, ignoreancestry, blame a unified jsou volitelné.

Pokud zadaná url také mění vlastnosti, pak je externí nástroj rozdílů také spuštěn pro každou změněnou vlastnost. Abyste tomuto zabránili, musíte předat volbu /ignoreprops.

If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format.

:conflicteditorSpustí editor konfliktů, který je uveden v nastavení TortoiseSVN se správnými soubory pro konfliktní soubor v /path.
:relocateOtevře se dialogové okno přemístit. /path Určuje cestu pracovní kopie k přemístění.
:helpOtevře soubor nápovědy.
:repostatusOtevře dialogové okno zjistit změny. /path určuje adresář pracovní kopie. Pokud je zadán /remote dialogové okno zkontaktuje úložiště hned při startu, jako kdyby uživatel klikl na tlačítko Zkontrolovat úložiště.
:repobrowser

Spustí dialogové okno průzkumníka úložiště, odkazující na adresu URL pracovní kopie uvedená v /path nebo /path odkazuje přímo na URL.

Další možnost /rev:xxx může být použita k určení revize, kterou by průzkumník úložiště měl ukázat. Pokud je /rev:xxx vynechána, nastaví se na výchozí hodnotu HEAD.

Pokud /path poukazuje na adresu URL, /Projectpropertiespath:cesta/do/pracovní kopie určuje cestu z, které číst a použít vlastnosti projektu.

Pokud /Outfile:cesta\k\souboru je nastavena, vybraná URL a revize jsou zapsány do tohoto souboru, když je průzkumník úložiště uzavřen. První řádek v tomto textovém souboru obsahuje adresu URL, druhý řádek revizi v textovém formátu.

:ignorePřidá všechny cíle v /path do seznamu k ignorování, tj. přidá vlastnost svn:ignore k těmto souborům.
:blame

Otevře dialogové okno obvinění souboru uvedeném v /path.

Pokud jsou volby /startrev a /endrev nastaveny, pak se dialogové okno s dotazem o rozsahu obvinění nezobrazí, ale místo toho jsou použity hodnoty revizí těchto voleb.

Pokud možnost /line:nnn je nastavena, TortoiseBlame bude otevřen zobrazující zadané číslo řádku.

Možnosti /ignoreeol, /ignorespaces a /ignoreallspaces jsou také podporovány.

:catUloží soubor z adresy URL nebo z cesty pracovní kopie uvedené v /path na místo uvedené v /savepath:path. Revize je uvedena v /revision:xxx. Toto může být použito k získání souboru s konkrétní revizí.
:createpatchCreates a patch file for the path given in /path. To skip the file Save-As dialog you can pass /savepath:path to specify the path where to save the patch file to directly. To prevent the unified diff viewer from being started showing the patch file, pass /noview. If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format.
:revisiongraph

Zobrazí graf revizí pro cesty uvedené v /cesta.

Pro vytvoření obrázkového souboru grafu revizí pro určitou cestu, ale bez zobrazení okna grafu, předejte /output:cesta spolu s cestou k výstupnímu souboru. Výstupní soubor musí mít příponu, do které graf revizí může skutečně exportovat. Jsou to: .svg, .wmf, .png, .jpg, .bmp a .gif.

Protože graf revizí má spoustu možností, které ovlivňují to, jak je zobrazen, můžete tyto možnosti také nastavit při vytváření výstupního souboru. Tyto možnosti předejte pomocí /options:XXXX, kde XXXX je desítková hodnota. Nejlepší způsob, jak najít požadované možnosti je spustit graf revizí tak, jako obyčejně, nastavit všechny možnosti v uživatelském rozhraní a graf zavřít. Pak volby, které potřebujete předat na příkazovém řádku, mohou být přečteny z registru HKCU\Software\TortoiseSVN\RevisionGraphOptions.

:lockZamkne soubor nebo všechny soubory v adresáři uvedené v /path. Zobrazí se dialogové okno, takže uživatel může zadat komentář k zámku.
:unlockOdemkne soubor nebo všechny soubory v adresáři uvedené v /path.
:rebuildiconcacheZnovu obnoví windows rozhraní uložených ikon. Použijte pouze v případě, že ikony Windows jsou poškozené. Vedlejším efektem tohoto (kterému se nelze vyhnout) je, že ikony na ploše budou zpřeházeny. Chcete-li potlačit rámeček se zprávou, předejte /noquestion.
:properties

Zobrazí dialogové okno vlastností pro cestu zadanou v /path.

Pro práci s vlastnostmi s verzí tento příkaz vyžaduje pracovní kopii.

Vlastnosti revize můžou být zobrazeny/změněny pokud /path je URL a je zadáno /rev:XXX.

Pro otevření dialogového okna vlastností přímo pro určitou vlastnost, předejte její název jako /vlastnost:název.

:sync

Exportuje/Importuje nastavení, buď na základě aktuálnosti současných, nebo exportovaných nastavení, nebo podle zadání.

Pokud je s volbou /path předána cesta, pak je použita pro uložení, nebo načtení nastavení.

Parametr /askforpath zobrazí dialogové okno otevření/uložení souboru umožňující uživateli zvolit cestu pro export/import.

Pokud není zadáno /load ani /save, pak TortiseSVN rozhodne, zda se jedná o import nebo export nastavení na základě jejich novosti. Pokud exportovaný soubor je novější než současná nastavení, pak jsou ze souboru načtena. Pokud jsou novější současná nastavení, pak jsou exportována do souboru.

Pokud je zadána volba /load, je nastavení ze souboru importováno.

Pokud je zadána volba /save, jsou současná nastavení exportována do souboru.

Parametr /local donutí při exportu souboru zahrnout i místní nastavení, tj. nastavení odkazující na místní cesty


Příklady (které by měly být uvedeny na jednom řádku):

TortoiseProc.exe /command:commit
                 /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
                 /logmsg:"zkouška zprávy záznamu" /closeonend:0

TortoiseProc.exe /command:update /path:"c:\svn_wc" /closeonend:0

TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
                 /startrev:50 /endrev:60 /closeonend:0

Obslužná rutina URL Tsvncmd

Použitím speciálních URL, je také možné volat TortoiseProc z webové stránky.

TortoiseSVN registruje nový protokol tsvncmd: který může být použit k vytváření hypertextových odkazů, které provádějí příkazy TortoiseSVN. Příkazy a parametry jsou stejné jako při automatizaci TortoiseSVN z příkazového řádku.

Formát tsvncmd: URL vypadá takto:

tsvncmd:command:příkaz?parametr:hodnotapara?parametr:hodnotapara

kde příkaz je jedním z povolených příkazů, parametr je název parametru, jako je path nebo revision a hodnotapara je hodnota použitá pro tento parametr. Seznam povolených parametrů závisí na použitém příkazu.

Následující příkazy jsou povoleny s tsvncmd: URL:

  • :update
  • :commit
  • :diff
  • :repobrowser
  • :checkout
  • :export
  • :blame
  • :repostatus
  • :revisiongraph
  • :showcompare
  • :log
  • :properties

Jednoduchý příklad URL může vypadat například takto:

<a href="tsvncmd:command:update?path:c:\svn_wc?rev:1234">Update</a>

nebo ve složitějších případech:

<a href="tsvncmd:command:showcompare?
url1:https://svn.code.sf.net/p/stefanstools/code/trunk/StExBar/src/setup/Setup.wxs?
url2:https://svn.code.sf.net/p/stefanstools/code/trunk/StExBar/src/setup/Setup.wxs?
revision1:188?revision2:189">porovnat</a>

Příkazy TortoiseIDiff

Nástroj rozdílu obrázků má několik možností v příkazovém řádku, které můžete použít ke kontrole spuštění nástroje. Tento program se nazývá TortoiseIDiff.exe.

Níže uvedená tabulka uvádí všechny možnosti, které mohou být předány nástroji rozdílů obrázků na příkazovém řádku.

Tabulka D.2. Seznam dostupných možností

MožnostPopis
:leftCesta k souboru zobrazenému vlevo.
:lefttitleŘetězec názvu. Tento řetězec se používá v názvu zobrazení obrázku místo úplné cesty k souboru s obrázkem.
:rightCesta k souboru zobrazeném vpravo.
:righttitleŘetězec názvu. Tento řetězec se používá v názvu zobrazení obrázku místo úplné cesty k souboru s obrázkem.
:overlayPokud je zadán, nástroj rozdílu obrázků přepne do režimu překrytí (částečná průhlednost).
:fitPokud je zadán, nástroj rozdílu obrázků nastaví shodnou velikost obou obrázků
:showinfoZobrazí informační rámeček obrázku.


Příklad (který by měl být uveden na jednom řádku):

TortoiseIDiff.exe /left:"c:\obrázky\obr1.jpg" /lefttitle:"obrazek 1"
                  /right:"c:\obrázky\obr2.jpg" /righttitle:"obrazek 2"
                  /fit /overlay

Příkazy TortoiseUDiff

Prohlížeč sjednoceného rozdílu má pouze dvě volby příkazového řádku:

Tabulka D.3. Seznam dostupných možností

MožnostPopis
:patchfileCesta k souboru sjednoceného rozdílu.
:pAktivuje režim roury. Sjednocený rozdíl je následně čten ze vstupu konzole.


Příklady (které by měly být zadány na jednom řádku):

TortoiseUDiff.exe /patchfile:"c:\rozdily.patch"
      

Pokud soubor porovnání vytvoříte pomocí jiného příkazu, můžete TortoiseUDiff použít k přímému zobrazení rozdílů:

svn diff | TortoiseUDiff.exe /u
      

toto také funguje pokud vynecháte parametr /p:

svn diff | TortoiseUDiff.exe
      

Příloha E. Odkazy Rozhraní Příkazové Řádky

Někdy tato příručka odkazuje na hlavní dokumentaci Subversion, který popisuje Subversion v rozhraní příkazové řádky (CLI). Abychom Vám pomohli pochopit, co TortoiseSVN dělá v zákulisí, sestavili jsme seznam zobrazující odpovídající CLI příkazy pro každou z operací grafického rozhraní TortoiseSVN.

Poznámka

I když zde jsou CLI ekvivalenty toho, co TortoiseSVN dělá, nezapomeňte, že TortoiseSVN nevolá CLI, ale používá přímo knihovnu Subversion.

Pokud si myslíte, že jste našli chybu v TortoiseSVN, můžeme Vás požádat, abyste se ji pokusili zopakovat pomocí CLI, abychom mohli rozlišit problémy TortoiseSVN od problémů Subversion. Tento odkaz Vám řekne, který příkaz zkusit.

Úmluvy a Základní pravidla

V popisech, které následují, je adresa URL pro umístění úložiště zobrazena pouze jako URL a příklad může být https://svn.code.sf.net/p/tortoisesvn/code/trunk/. Pracovní kopie cesta je zobrazena pouze jako CESTA a příklad může být C:\TortoiseSVN\kmen.

Důležité

Protože TortoiseSVN je Rozšíření Rozhraní Windows, není schopen používat pojem současného pracovního adresáře. Všechny cesty pracovní kopie musí být uvedeny s použitím absolutní cesty, ne relativní.

Některé položky jsou nepovinné a ty jsou často ovládány zaškrtávacími políčky nebo přepínači v TortoiseSVN. Tyto možnosti jsou uvedeny v [hranatých závorkách] v definicích příkazového řádku.

Příkazy TortoiseSVN

Získat

svn checkout [-depth ARG] [--ignore-externals] [-r rev] URL CESTA
     

Pole se seznamem položek hloubky je podobné jako argument -depth.

Pokud je Vynechat externí zaškrtnuto, použijte přepínač --Ignore-externals.

Pokud získáváte konkrétní revizi, zadejtei ji po URL pomocí přepínače -r.

Aktualizovat

svn info URL_Pracovní_Kopie
svn update [-r rev] CESTA
     

Aktualizace více položek není v současné době v Subversion atomová operace. Takže TortoiseSVN nejprve nalezne HEAD revizi úložiště a pak aktualizuje všechny položky na konkrétní číslo revize, aby se zabránilo vytvoření smíšených revizi pracovní kopie.

Pokud je pouze jedna položka vybrána pro aktualizaci nebo vybrané položky nejsou všechny ze stejného úložiště, TortoiseSVN aktualizuje pouze na HEAD.

Žádné parametry příkazového řádku nejsou zde použity. Aktualizovat na revizi také provádí příkaz aktualizovat, ale nabízí více možností.

Aktualizovat na Revizi

svn info URL_Pracovní_Kopie
svn update [-r rev] [-depth ARG] [--ignore-externals] CESTA
     

Pole se seznamem položek hloubky je podobné jako argument -depth.

Pokud je Vynechat externí zaškrtnuto, použijte přepínač --Ignore-externals.

Odevzdat

V TortoiseSVN, dialogové okno odevzdání používá několik příkazů Subversion. V první fázi je kontrola stavu, který určuje položky ve Vaší pracovní kopii, které můžou být potenciálně odevzdány. Můžete si prohlédnout seznam, porovnat soubory s originálem a vybrat položky, které chcete zahrnout do odevzdání.

svn status -v CESTA
     

Pokud je zaškrtnuto Ukázat soubory bez verze, TortoiseSVN také zobrazí všechny soubory a adresáře bez verze v hierarchii pracovní kopie s přihlédnutím k pravidlům ignorování. Tato konkrétní vlastnost nemá žádnou přímou obdobu v Subversion, protože příkaz svn status nevstupuje do adresářů bez verze.

Chcete-li zkontrolovat všechny soubory a adresáře bez verze, tyto položky nejprve budou přidány do Vaší pracovní kopie.

svn add CESTA...
     

Když kliknete na OK, spustí se odevzdání Subversion. Pokud jste nechali všechny políčka pro výběr souborů ve výchozím stavu, TortoiseSVN použije jediné rekurzivní odevzdání pracovní kopie. Pokud zrušíte výběr některých souborů, pak nerekurzivní odevzdání (-N) musí být použito a každá cesta musí být zadána individuálně na příkazovém řádku odevzdání.

svn commit -m "Zpráva záznamu" [-depth ARG] [--no-unlock] CESTA...
     

Zpráva záznamu zde představuje obsah editačního pole zprávy záznamu. Může být prázdný.

Pokud Ponechat zámky je zaškrtnuto, použijte přepínač --no-unlock.

Porovnat

svn diff CESTA
     

Pokud používáte Porovnat z hlavní kontextové nabídky, porovnáváte upravený soubor proti jeho původní revizi. Výstup z příkazu CLI výše toto dělá také a produkuje výstup ve formátu sjednoceného rozdílu. Nicméně, není to stejné, jako pomocí TortoiseSVN. TortoiseSVN používá TortoiseMerge (nebo program rozdílů dle Vašeho výběru) k zobrazení rozdílů vizuálně mezi full-textovými soubory, takže neexistuje žádný přímý ekvivalent CLI.

Můžete také porovnat jakékoli 2 obrázky pomocí TortoiseSVN, ať už jsou nebo nejsou pod správou verzí. TortoiseSVN jen předá dva soubory do zvoleného programu rozdílů a nechá ho zjistit, kde se vyskytují rozdíly.

Zobrazit Záznam

svn log -v -r 0:N --limit 100 [--stop-on-copy] CESTA
nebo
svn log -v -r M:N [--stop-on-copy] CESTA
     

Ve výchozím nastavení TortoiseSVN se snaží stáhnout 100 zpráv záznamu pomocí metody --limit. Pokud mu nastavení říká, že má použít staré API, pak je použita druhá forma, k stáhnutí zpráv záznamu za 100 revizí úložiště.

Pokud je zaškrtnuto Zastavit na kopírování/přejmenování, použijte přepínač --stop-on-copy.

Zjistit změny

svn status -v CESTA
nebo
svn status -u -v CESTA
     

Počáteční kontrola stavu se dívá pouze do Vaší pracovní kopie. Pokud kliknete na Zkontrolovat úložiště pak úložiště je také zkontrolováno, bay se zjistilo, které soubory by se změnily aktualizací, což vyžaduje přepínač -u.

Pokud je zaškrtnuto Ukázat soubory bez verze, TortoiseSVN také zobrazí všechny soubory a adresáře bez verze v hierarchii pracovní kopie s přihlédnutím k pravidlům ignorování. Tato konkrétní vlastnost nemá žádnou přímou obdobu v Subversion, protože příkaz svn status nevstupuje do adresářů bez verze.

Graf Revizí

Graf revizí je funkce TortoiseSVN. Neexistuje žádná obdoba v příkazovém řádku klienta.

Co TortoiseSVN dělá je

svn info URL_Pracovní_Kopie
svn log -v URL
        

where URL je kořen úložiště a pak vrácená data zpracuje.

Průzkumník Úložiště

svn info URL_Pracovní_Kopie
svn list [-r rev] -v URL
     

Můžete použít svn info k určení kořene úložiště, což je nejvyšší úroveň zobrazená v průzkumníku úložiště. Nemůžete jít nahoru nad tuto úroveň. Také tento příkaz vrátí všechny informace o zamknutí uvedené v průzkumníku úložiště.

Volání svn list vypíše obsah adresáře, dané URL a revize.

Upravit konflikty

Tento příkaz nemá obdobu CLI. Vyvolá TortoiseMerge nebo externí nástroj trojitého porovnání/sloučení, podívá se na soubory zapojené do konfliktu a vytřídí, které řádky použít.

Vyřešeno

svn resolved CESTA
     

Přejmenovat

svn rename SOUČAS_CESTA NOVÁ_CESTA
     

Smazat

svn delete CESTA
     

Vrátit

svn status -v CESTA
     

V první fázi je kontrola stavu, který určuje položky v pracovní kopii, které mohou být potenciálně vráceny. Můžete si prohlédnout tento seznam, porovnat soubory s originálem a vybrat položky, které chcete zahrnout do vrácení.

Když kliknete na OK, spustí se vrácení Subversion. Pokud jste nechali všechna políčka pro výběr souboru v jejich výchozím stavu, TortoiseSVN použije jediné rekurzivní (-R) vrácení v pracovní kopii. Pokud zrušíte výběr některých souborů, pak každá cestu musí být na příkazové řádce vrácení uvedena samostatně.

svn revert [-R] CESTA...
     

Vyčistit

svn cleanup CESTA
     

Uzamknout

svn status -v CESTA
     

V první fázi je kontrola stavu, která určí soubory v pracovní kopii, které můžou být potenciálně uzamčeny. Můžete si vybrat položky, které chcete zamknout.

svn lock -m "Zprávazamknutí" [--force] CESTA...
     

ZpprávaZamknutí zde představuje obsah editačního pole zprávy o uzamčení. Může být prázdné.

Pokud je Ukrást zámky zaškrtnuto, použijte přepínač --force.

Uvolnit zámek

svn unlock CESTA
     

Větev/značka

svn copy -m "LogMessage" URL URL
nebo
svn copy -m "LogMessage" URL@rev URL@rev
nebo
svn copy -m "LogMessage" CESTA URL
     

Dialogové okno Větev/Značka zkopíruje úložiště. K dispozici jsou 3 přepínače možností:

  • revize HEAD v úložišti
  • Určitá revize v úložišti
  • Pracovní kopie

, kterým odpovídají 3 varianty příkazového řádku výše.

Zpráva záznamu zde představuje obsah editačního pole zprávy záznamu. Může být prázdný.

Překlopit

svn info URL_Pracovní_Kopie
svn switch [-r rev] URL CESTA
     

Sloučit

svn merge [--dry-run] --force Z_URL@revN Do_URL@revM CESTA
     

Testovat Sloučení provede stejné sloučení s přepínačem --dry-run.

svn diff Z_URL@revN Do_URL@revM
     

Sjednocený rozdíl zobrazí operace porovnání, která bude použita k provedení sloučení.

Exportovat

svn export [-r rev] [--ignore-externals] URL Export_CESTA
     

Tento formulář se používá při přístupu z adresáře bez verze a adresář je použit jako cíl.

Exportování pracovní kopie na jiné místo se provádí bez použití knihovny Subversion, takže není odpovídající obdoba příkazové řádky.

Co TortoiseSVN dělá, je zkopírování všech souborů do nového umístění, zatímco zobrazuje průběh operace. Soubory/adresáře bez verze lze také volitelně exportovat.

V obou případech, pokud je zaškrtnuto Vynechat externí, použijte přepínač --ignore-externals.

Přemístit

svn switch --relocate Z_URL Do_URL
     

Vytvořit Úložiště Zde

svnadmin create --fs-type fsfs CESTA
     

Přidat

svn add CESTA...
     

Pokud vyberete adresář, TortoiseSVN nejprve prohledá rekurzivně položky, které mohou být přidány.

Import

svn import -m LogMessage CESTA URL
     

Zpráva záznamu zde představuje obsah editačního pole zprávy záznamu. Může být prázdný.

Obvinit

svn blame -r N:M -v CESTA
svn log -r N:M CESTA
     

Pokud používáte TortoiseBlame k zobrazit informací o obvinění, je soubor záznamu také požadován k zobrazení zpráv záznamu v popisku. Zobrazíte-li obvinění jako textový soubor, tato informace není zapotřebí.

Přidat do seznamu k ignorování

svn propget svn:ignore CESTA > dočsoubor
{upravit nové ignorovanou položku do dočasného souboru}
svn propset svn:ignore -F dočsoubor CESTA
     

protože vlastnost svn:ignore je často mnohořádková hodnota, je zde měněna prostřednictvím textového souboru, spíše než přímo v příkazovém řádku.

Vytvořit Záplatu

svn diff CESTA > záplatovýsoubor
     

TortoiseSVN vytvoří záplatový soubor ve formátu sjednoceného rozdílu porovnáním pracovní kopie s jeho základní verzí.

Použít Záplatu

Aplikování záplat je ošemetná věc, pokud není záplata a pracovní kopie ve stejné revizi. Naštěstí pro Vás, můžete použít TortoiseMerge, který nemá v Subversion žádnou přímou obdobu.

Příloha F. Detaily zavedení

Tato příloha obsahuje podrobnější diskusi o zavádění některých funkcí TortoiseSVN.

Překryv Ikon

Každý soubor a adresář má Subversion hodnotu stavu, jak je uvádí knihovna Subversion. V příkazovém řádku klienta, jsou zastoupeny jediným písmenem kódu, ale v TortoiseSVN jsou zobrazeny graficky pomocí překryvu ikon. Protože počet překryvů je velmi omezen, každé překrytí představuje jednu z několika hodnot stavu.

Konfliktní překrytí je používáno k označení konfliktního stavu, kde aktualizace nebo přepínač vyústí v konflikt mezi místními změnami a změny stáhnutými z úložiště. Je také používáno k označení stavu zablokováno, který může nastat, když operaci nebylo možné dokončit.

Změněný překryv představuje změněný stav, kde jste udělali místní změny, sloučený stav, kde změny z úložiště byly sloučeny s místními změnami a nahrazený stav, kde byl soubor smazán a nahrazen jiným se stejným názvem.

Překrytí Smazané představuje smazaný stav, kde je položka naplánována k smazání, nebo stav chybí, kde položka není přítomna. Přirozeně položka, která chybí, nemůže mít překrytí, ale nadřazený adresář může být označen, pokud jedna z jeho podřízených položek chybí.

Přidaný překryv je jednoduše používán k označení stavu přidán, kdy položka byla přidána do správy verzí.

Překryv V Subversion je používán k označení předmětu, který je v normálním stavu, nebo položka s verzí, jejíž stav není dosud znám. Vzhledem k tomu, že TortoiseSVN má uchovávací proces v pozadí ke shromažďování stavu, může trvat několik sekund, než je překryv aktualizován.

Překryv Potřebuje zámek dává najevo, že soubor má nastavenu vlastnost svn:needs-lock.

Uzamčený překryv se používá, když místní pracovní kopie drží zámek pro tento soubor.

Překryv Ignorovaný je používán k označení předmětu, který je ve stavu ignorován, ať už kvůli globálnímu vzoru ignorování, nebo vlastnosti svn:ignore v nadřazeném adresáři. Tento překryv je nepovinný.

Překrytí Bez verze je používán pro sdělení, že předmět je ve stavu bez verze. To znamená, že položka v adresáři s verzí, ale není samotná pod správou verzí. Tento překryv je nepovinný.

Pokud položka má Subversion stav žádný (Položka není v pracovní kopii), pak není zobrazeno žádné překrytí. Pokud jste se rozhodli zakázat překryvy Ignorován a Bez verze pak pro tyto soubory také nebudou uvedeny žádné překryvy.

Položka může mít pouze jednu hodnotu Subversion stavu. Například by soubor mohl mít místní úpravy a ve stejnou dobu by mohla být označena pro odstranění. Subversion vrátí jednu hodnotu stavu - v tomto případě smazáno. Tyto priority jsou definovány v rámci samotného Subversion.

Když TortoiseSVN zobrazuje stav rekurzivně (výchozí nastavení), jednotlivé adresáře zobrazují překryv odrážející jejich vlastní postavení a stav všech jejich podřazených položek. Pro zobrazení jednoho shrnujícího překrytí, používáme pořadí priorit uvedený výše k určení, který překryv použít, kde Konfliktní překryv má nejvyšší prioritu.

Ve skutečnosti, možná zjistíte, že ne všechny tyto ikony jsou ve Vašem systému používány. Je to proto, že počet překrytí povolených Windows je omezen na 15. Windows používá 4 a zbývajících 11 můžou být využívány v jiných aplikacích. Pokud není dostatek volných míst, TortoiseSVN se snaží být Dobrým Občanem (TM) a omezí svoje použití překryvu, aby jiné aplikace měli šanci.

Protože klienty Tortoise jsou k dispozici i pro jiné systémy pro správu verzí, vytvořili jsme sdílenou součást, která je zodpovědná za zobrazení překryvu ikon. Technické podrobnosti nejsou důležité. Vše, co potřebujete vědět je, že tato sdílená součást umožňuje všem klientům Tortoise používat stejné překryvy a tudíž omezení 11 volných míst není vyčerpáno tím, že se nainstaluje více než jeden klient Tortoise. Samozřejmě je tu jeden malý háček: všechny klienty Tortoise používají stejné překryvy ikon, takže není možné z překryvu zjistit, jaký systém pro správu verzí pracovní kopie používá.

  • Normální, Změněný a Konfliktní jsou vždy načteny a viditelné.

  • Smazán je načten pokud je to možné, ale vrátí se do Změněný, pokud není dostatek volného místa.

  • Pouze pro čtení je načten, pokud je to možné, ale vrátí se do Normální, pokud není dostatek volného místa.

  • Zamčený je načten, pokud je to možné, ale vrátí se do Normální pokud není dostatek volného místa.

  • Přidaný je načten, pokud je to možné, ale vrátí se do Změněný pokud není dostatek volného místa.

Příloha G. Jazykové balíčky a kontrola pravopisu

Standardní instalační program podporuje pouze pro angličtinu, ale můžete si stáhnout samostatné jazykové balíčky a slovníky pro kontrolu pravopisu po instalaci zvlášť.

Jazykové balíčky

The TortoiseSVN user interface has been translated into many different languages, so you may be able to download a language pack to suit your needs. You can find the language packs on our translation status page. And if there is no language pack available, why not join the team and submit your own translation ;-)

Každý jazykový balíček je zabalen jako .msi instalátor. Stačí spustit instalační program a postupovat podle pokynů. Po dokončení instalace bude překlad k dispozici.

The documentation has also been translated into several different languages. You can download translated manuals from the support page on our website.

Kontrola pravopisu

TortoiseSVN uses the Windows spell checker if it's available (Windows 8 or later). Which means that if you want the spell checker to work in a different language than the default OS language, you have to install the spell checker module in the Windows settings (Settings > Time & Language > Region & Language).

TortoiseSVN will use that spell checker if properly configured with the tsvn:projectlanguage project property.

In case the Windows spell checker is not available, TortoiseSVN can also use spell checker dictionaries from OpenOffice and Mozilla.

Instalátor automaticky přidá anglické slovníky USA a Velké Británie. Pokud chcete další jazyky, je nejjednodušší možností prostě nainstalovat jeden z jazykových balíčků TortoiseSVN. Tímto se nainstaluje příslušné soubory slovníku, stejně jako přeložené uživatelské rozhraní TortoiseSVN. Po dokončení instalace bude také slovník k dispozici.

Nebo si můžete nainstalovat slovníky sami. Pokud máte naistalováno OpenOffice nebo Mozilla, můžete tyto slovníky zkopírovat. Jsou umístěny v instalačním adresáři těchto aplikací. V opačném případě je potřeba stáhnout potřebné soubory slovníku z http://wiki.services.openoffice.org/wiki/Dictionaries.

Jakmile máte soubory se slovníkem, pravděpodobně je budete muset přejmenovat tak, aby názvy souborů měli pouze název jazyka. Příklad:

  • en_US.aff

  • en_US.dic

Pak je stačí zkopírovat do složky %APPDATA%\TortoiseSVN\dic. Pokud složka neexistuje, je třeba ji nejdříve vytvořit. TortoiseSVN také prohledává podsložku Languages ve složce své instalace (Standardně C:\Program Files\TortoiseSVN\Languages); zde jsou umisťovány soubory jazykových balíčků. Složka %APPDATA% ale má přednost, protože nevyžaduje správcovská oprávnění. Při příštím spuštění TortoiseSVN, bude kontrola pravopisu k dispozici.

Pokud nainstalujete více slovníků, TortoiseSVN používá tato pravidla pro výběr, které z nich použít.

  1. Podívejte se na nastavení tsvn:projectlanguage. Podívejte se na „Nastavení projektu“ pro informace o nastavení vlastností projektu.

  2. Není-li nastaven žádný jazyk projektu, nebo tento jazyk není nainstalován, zkuste jazyk odpovídající locale Windows.

  3. Pokud přesný jazyk Windows nefunguje, zkuste

    jazyk, napde_CH (de_DE (NPokud nic z v

Slovník pojmů

Přidat

Příkaz Subversion, který slouží k přidání souboru nebo adresáře do Vaší pracovní kopie. Nové položky jsou do úložiště přidány při odevzdání.

Základní revize

Aktuální základní revize souboru nebo adresáře ve Vaší pracovní kopii . Jedná se o revizi, v které soubor nebo adresář byl, při posledním spuštění získání, aktualizace nebo odevzdání. BASE revize se obvykle rovná revizi HEAD.

Obvinit

Tento příkaz je pouze pro textové soubory, okomentuje každý řádek pro zobrazení revize úložiště, v němž byl naposledy změněn a autora, který tuto změnu provedl. Naše GUI implementace se nazývá TortoiseBlame a také ukazuje datum, čas a zprávu odevzdání, když podržíte myš nad číslem revize.

Větev

Termín často používaný v systémech pro správu verzí pro popis co se stane, když se vývoj na určitém místě rozdělí a pokračuje po 2 samostatných cestách. Můžete vytvořit větev mimo hlavní linii vývoje, abyste mohli vyvíjet novou funkci, aniž byste hlavní linii učinili nestabilní. Nebo můžete rozvětvit stabilní verzi, na které uděláte jen opravy chyb, zatímco nový vývoj probíhá v nestabilním kmenu. V Subversion je větev zavedena jako laciná kopie.

Získat

Příkaz Subversion, který vytvoří místní pracovní kopii v prázdném adresáři stažením verzí souborů z uložiště.

Vyčistit

Citujeme z knihy Subversion: Rekurzivně vyčistí pracovní kopií, odstraní zámky a pokračuje v nedokončených operacích. Pokud někdy máte chybu pracovní kopie uzamčena, spusťte tento příkaz k odstranění starých zámků a dostaňte Vaši pracovní kopie zpět do použitelného stavu. Nezapomeňte, že v této souvislosti zámek odkazuje na zamknutí v místním souborovém systému, ne zamknutí úložiště.

Odevzdat

Tento příkaz Subversion slouží k předání změn v místní pracovní kopii zpět do úložiště, vytvářející novou revizi úložiště.

Konflikt

Když se změny z úložiště sloučí s místními změnami, někdy tyto změny nastanou na stejných řádcích. V tomto případě Subversion nemůže automaticky rozhodnout, kterou verzi použít a soubor je tak řečeno v konfliktu. Pro vyřešení konfliktu musíte upravit soubor ručně, než budete moci spáchat další změny.

Kopie

V Subversion můžete vytvořit kopii jednoho souboru nebo celého stromu. Ty jsou realizovány jako laciné kopie které působí trochu jako odkaz na původní kopii v tom, že nezabírají téměř žádný prostor. Zhotovení kopie zachová historii položky v kopii, takže můžete sledovat změny provedené dříve, než byla kopie vytvořena.

Smazat

Když odstraníte položku s verzí (a změnu odevzdáte), položka již v úložišti po odevzdané revizi neexistuje. Ale samozřejmě, že ještě existuje v předchozích revizích úložiště, takže můžete stále k ní mít přístup. Pokud je to nutné, můžete zkopírovat odstraněnou položku a vzkřísit ji úplně i s historií.

Porovnat

Zkratka pro Zobrazit Rozdíly. Velmi užitečné, pokud chcete přesně zjistit, jaké změny byly provedeny.

Exportovat

Tento příkaz vytvoří kopii adresáře s verzí, stejně jako pracovní kopie, ale bez místních adresářů .Svn.

FSFS

Vlastní backend souborového systému Subversion pro úložiště. Může být použit v sdílené síti. Výchozí pro úložiště od verze 1.2 a novější.

GPO

Objekt zásad skupiny.

revize HEAD

Poslední revize souboru nebo adresáře v úložišti.

Import

Subversion příkaz pro import celé hierarchie adresářů do úložiště v jedné revizi.

Zámek

Když si vezmete zámek na položku s verzí, označíte ji v úložišti jako neodevzdatelnou, s výjimkou pracovní kopie, kde byl zámek získán.

Záznam

Zobrazit historii revizí souboru nebo adresář. Také znám jako Historie.

Historie

Zobrazit historii revizí souboru nebo adresář. Také znám jako záznam.

Sloučit

Proces, při kterém změny z úložiště jsou přidány do Vaší pracovní kopie bez přerušení jakýchkoli změn, které jste již místně udělali. Někdy tyto změny nemohou být srovnány automaticky a pracovní kopie je tzv. v konfliktu.

Sloučení se děje automaticky při aktualizaci Vaší pracovní kopie. Můžete také sloučit konkrétní změny z jiné větve pomocí TortoiseSVN v příkazu Sloučit.

Záplata

Pokud pracovní kopie má změny pouze v textových souborech, je možné použít Subversion příkaz porovnat pro vytvoření jednoho souboru shrnující tyto změny ve formátu sjednoceného rozdílu. Soubor tohoto typu je často označován jako Záplata a může být poslán e-mailem někomu jinému (nebo do poštovního adresáře) a použít na jinou pracovní kopii. Někdo bez oprávnění k odevzdání může provést změny a předložit záplatový soubor, aby ho oprávněný vývojář mohl použít. Nebo pokud si nejste jisti provedenou změnou, může poslat záplatu ostatním k přezkoumání.

Vlastnost

Kromě Vašich adresářů a souborů Subversion umožňuje přidat i metadata s verzí - známá jako vlastnosti každému z Vašich adresářů a souborů s verzí. Každá vlastnost má název a hodnotu, podobně jako klíč v registru. Subversion má některé speciální vlastnosti, které používá vnitřně, jako je svn:EOL-style. TortoiseSVN má taky některé, jako například tsvn:logminsize. Můžete přidat vlastní vlastnosti s libovolným názvem a hodnotou, kterou zvolíte.

Přemístit

Pokud se Vaše úložiště přesune, snad proto, že jste ho přestěhovali do jiného adresáře na Vašem serveru, nebo název domény serveru se změnil, je třeba přemístit Vaši pracovní kopie tak, aby její URL úložiště odkazovalo na nové umístění.

Poznámka: měli byste používat tento příkaz pouze, pokud Vaše pracovní kopie odkazuje na stejné místo ve stejném úložišti, ale samotné úložiště se přesunulo. Za všech ostatních okolností, pravděpodobně budete muset místo toho použít příkaz Překlopit.

Úložiště

Úložiště je centrální místo, kde jsou data uložena a udržována. Úložiště může být místo, kde se nachází více databází nebo souborů pro distribuci po síti, nebo úložiště může být také místo, které je přímo přístupné uživatelům, aniž by museli cestovat po celé síti.

Vyřešit

Pokud jsou soubory v pracovní kopii ponechány po sloučení ve stavu konfliktu, musí být tyto konflikty vyřešeny člověkem pomocí editoru (nebo možná TortoiseMerge). Tento proces je označován jako Řešení konfliktů. Až toto skončí, můžete označit konfliktní soubory jako vyřešené, což jim umožní být odevzdány.

Vrátit

Subversion udržuje místní nedotčenou kopii každého souboru, jaký byl, když jste naposledy aktualizovali Vaši pracovní kopii. Pokud jste provedli změny a rozhodnete se, že je chcete vrátit, můžete použít příkaz vrátit, abyste se vrátili k původní kopii.

Revize

Pokaždé, když odevzdáte sadu změn, vytvoříte v úložišti jednu novou revize. Každá revize představuje stav stromu úložiště v určitém okamžiku v jeho historii. Pokud se chcete vrátit zpět v čase můžete úložiště prozkoumat, jaké bylo v revizi N.

V jiném smyslu, revize odkazuje na sadu změn, které byly provedeny, když byla tato revize vytvořena.

Vlastnosti revize (revvlast)

Stejně jako soubory mohou mít vlastnosti, může je mít i každá revize v úložišti. Některé speciální vlastnosti jsou přidány automaticky při vytvoření revize a sice: svn:Datum svn:autor svn:záznam které představují datum a čas odevzdání, respektive autora a zprávu záznamu. Tyto vlastnosti lze upravit, ale nemají verzi, takže každá změna je trvalá a nelze ji vrátit zpět.

SVN

Často používaná zkratka pro Subversion.

Název vlastního protokolu Subversion používaného serverem úložiště svnserve.

Překlopit

Stejně jako Aktualizovat na revizi změní časové okno pracovní kopie, aby se podívalo na jiné místo v historii, tak Překlopit změní prostorové okno pracovní kopie tak, aby ukazovalo na jinou část úložiště. To je zvláště užitečné při práci na kmeni a větvi, kde se liší jen několik souborů. Můžete mezi nimi svoji pracovní kopii překlopit a jen změněné soubory budou převedeny.

Aktualizovat

Tento příkaz Subversion stáhne poslední změny z úložiště do Vaší pracovní kopie, sloučí změny provedené ostatními s místními změnami v pracovní kopii.

Pracovní kopie

Toto je Vaše místní pískoviště, Oblast, kde budete pracovat na souborech s verzemi a obvykle sídlí na Vašem místním pevném disku. Můžete vytvořit pracovní kopii tím, že ji Získáte z úložiště a přivádíte své změny zpět do úložiště pomocí Odevzdat.

Rejstřík

Symboly

'pracovní kopie' bez verze, Export Pracovní Kopie Subversion
(+), Místní a Vzdálený Stav

C

částečné získání, Získání Pracovní Kopie
Často kladené otázky,
chválit, Kdo Změnil Který Řádek?
činnosti na straně serveru, Průzkumník Úložiště
číslo verze v souborech,
čistit, Vrátit změny zpět
CLI,
COM, ,

D

dočasné soubory, Import

I

IBugtraqProvider,
ignorovat, Ignorování Souborů a Adresářů
ikony, Překryv Ikon
import, Import dat do úložiště
import na místě, Import na místě
instalovat, Instalace
internetová stránka, Odkazy pro Získání

J

jazykové balíčky, Jazykové balíčky
jednotky SUBST, Nastavení Překryvu Ikon

K

klíčová slova, svn:keywords
klientské háky, Hákové Skripty na Straně Klienta
kliknutí pravým tlačítkem myši, Kontextové menu
Kniha Subversion,
konflikt, Řešení Kopírovat-Změnit-Sloučit, Řešení Konfliktů
konflikt stromu, Řešení Konfliktů
konflikty sloučení, Handling Conflicts after Merge
kontextové menu, Kontextové menu
kontrola nové verze, Přesměrovat kontrolu nové verze
kontrola pravopisu, Kontrola pravopisu
kontrola verzí,
kopie, Větvení/Značkování, Průzkumník Úložiště
kopírování souborů, Kopírování/Přesun/Přejmenování Souborů a Adresářů

M

maximalizovat, Maximalizace oken
Microsoft Word, Porovnávání Dokumentů Office
mimořádné soubory, Mimořádné soubory
monitor odevzdání,
monitor projektů,
msi, Nasazení TortoiseSVN pomocí zásad skupiny

P

položky kontextového menu, Zakázání položek kontextového menu
porovnání adresářů, Porovnat dvě revize souboru nebo adresáře
porovnání obrázku, Porovnávání snímků pomocí TortoiseIDiff
porovnání souborů, Porovnat dvě revize souboru nebo adresáře
porovnat, Zobrazit Rozdíly, Vytváření a Používání Záplat
porovnat revize, Porovnávání adresářů
porovnávání, Zobrazení rozdílů
pouze pro čtení, Zamykání
pracovní kopie, Pracovní kopie
prázdná zpráva, Přinutit uživatele zadat zprávu záznamu
přejmenování souborů, Kopírování/Přesun/Přejmenování Souborů a Adresářů
přejmenovat, Přesouvání souborů a adresářů, Průzkumník Úložiště, Přesunout/zkopírovat větší množství souborů najednou
překlady, Jazykové balíčky
překlopit, Získat nebo Překlopit...
překryvy, Překryv Ikon, Překryv Ikon
přemístit, Přemístit pracovní kopii
přesun, Přesunout/zkopírovat větší množství souborů najednou
přesunout, Přesouvání souborů a adresářů
přesunování souborů, Kopírování/Přesun/Přejmenování Souborů a Adresářů
přesunutý server, Přemístit pracovní kopii
přidání souborů do úložiště, Import dat do úložiště
přidat, Přidání nových souborů a adresářů
přidat verzi novým souborům, Přidání nových souborů a adresářů
příkazový řádek, Příkazy TortoiseSVN, Příkazy TortoiseIDiff, Příkazy TortoiseUDiff
příkazový řádek klienta,
přinést změny, Aktualizovat pracovní kopii změnami od ostatních
priorita překrytí, Překryv Ikon
Přístup, Lokální Přístup do Úložiště
prohlížeč serveru, Průzkumník Úložiště
prohlížeč úložiště, Integrace s Internetovými Prohlížeči úložiště
prohlížení na internetu, Integrace s Internetovými Prohlížeči úložiště
projekty dodavatele, Zahrnout společný podprojekt
proxy server, Nastavení sítě
průzkumník, Funkce TortoiseSVN
průzkumník úložiště, Průzkumník Úložiště

R

registry, Pokročilá nastavení
reorganizovat, Přesunout/zkopírovat větší množství souborů najednou
revize, Revize, Grafy Revizí
řídké získání, Získání Pracovní Kopie
Rozhraní Windows, Funkce TortoiseSVN
rozšířit klíčová slova, svn:keywords

T

táhnout-a-pustit, Táhnout a Pustit
táhnutí pravým tlačítkem, Táhnout a Pustit
TortoiseIDiff, Porovnávání snímků pomocí TortoiseIDiff
TortoiseSVN odkaz, Odkazy pro Získání

U

úložiště, Úložiště, Import dat do úložiště
UNC cesty, Lokální Přístup do Úložiště
unshelve, Shelving
upravit záznam/autora, Změna Zpráv Záznamu a Autora
URL úložiště změněna, Přemístit pracovní kopii
URL změněna, Přemístit pracovní kopii
úschova ověření, Ověření
úschova záznamu, Uchovávání záznamu