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.