Používání Subversion v NetBeans
Zde jsou popsány pouze základní operace ve vztahu k úložišti (checkout projektu, commit, update) a základní operace nad pracovištěm (add, delete, rename/move). Na stránkách subversion.netbeans.org je k dispozici tutoriál včetně prezentace ukazující modul pro Subversion v akci.
Před používáním Subversion v NetBeans je potřeba doinstalovat podporu pro Subversion. Existují dvě varianty:
1. Import projektu do Subversion
V situaci, kdy projekt ještě není v úložišti, je nejvhodnější postup vytvořit projekt v NetBeans, nahrát do projektu již existující soubory (balíčky), a poté nahrát tento projekt do úložiště.
Zde uvedený postup nefunguje, pokud je oddělený popis projektu od zdrojových souborů, tj. pokud vytvoříte projekt "with existing sources".
|
Po vytvoření projektu označte (zvýrazněte) projekt, který chcete nahrát do úložiště (pokud budete mít označenu pouze část projektu, např. nějaký balíček, nahraje se do úložiště pouze uvedený balíček). Poté buď v menu Versioning nebo přes volbu Versioning v kontextovém menu u projektu, vyberte volbu Import into Subversion Repository.
Vlastní import se skládá ze tří kroků:
- Přihlášení k úložišti (Subversion Repository).
- Určení složky v úložišti, do které se projekt nahraje (Repository Folder). Složka nemusí existovat.
- Vlastní import souborů do úložiště (Files to Import).
1.1 Přihlášení k úložišti
Na první obrazovce je potřeba zadat cestu k úložišti a přihlašovací údaje.
1.2 Určení složky v úložišti
Na druhé obrazovce se vybírá složka v úložišti, do které se mají nahrát soubory:
Cestu můžete zadat "ručně", nebo přes procházení úložiště (Browse). Při zobrazení okna obsahu úložiště NetBeans nezobrazí aktuální strukturu úložiště, je nutné zabalit celou adresářovou strukturu a poté ji znovu rozbalit. Pomocí tlačítka Into a new Folder lze zadávat nové adresáře v úložišti.
1.3 Odeslání souborů
Před odesláním souborů je vhodné zkontrolovat, zda jsou v seznamu všechny soubory, které patří do projektu. Pokud ne, tak máte pravděpodobně založen projekt s oddělenými zdrojovými soubory. V tomto případě doporučuji přerušit import a vytvořit projekt znovu.
2. Checkout projektu ze Subversion
V menu Subversion (pokud není menu k dispozici, tak nemáte dobře nainstalovánu podporu Subversion v NetBeans) vyberte volbu Checkout (jiné nejsou na začátku ani k dispozici). Poté se objeví obrazovka s dotazem na URL k úložišti na přihlašovací údaje:
Po určení části úložiště lze procházet strukturu úložiště - tlačítko Browse - poté se Vám zobrazí samostatné okno, ve kterém můžete procházet strukturu úložiště:
Po stažení by se měl automaticky přidat do seznamu projektů nový projekt - převezme se název a parametry z úložiště. Pokud projekt v úložišti nebyl založen v NetBeans (nejsou v úložišti soubory týkající se NetBeans projektu jako je adresář nbproject), tak Vás NetBeans většinou požádají o založení nového projektu. Pokud chcete odeslat informace o NetBeans projektu do úložiště, zkuste ho vytvořit v adresáři, do kterého jste stáhli projekt ze serveru. Pokud nechcete odesílat do úložiště informace o NetBeans projektu, musíte vytvořit projekt typu "with existing sources".
3. Odeslání změn na server (commit)
4. Vytvoření záložky (tag) či větve (branch)
V této části si NetBeans nehrají na obvyklé pojmy z jiných systémů na správu verzí - volba se jmenuje prostě Copy. V podstatě můžete vytvořit kopii jakékoliv části (tj. souboru či adresáře s obsahem a případnými podadresáři) a umístit ji téměř kamkoliv v rámci úložiště. Doporučuji se ale držet zvyklostí pro projekty a vytvářet záložky a větvě. V případě záložek se provede kopie trunku (tj. toho co máte v pracovišti) do nového adresáře pod adresářem tags příslušného projektu.
Při kopírování si můžete zvolit, zda odkud budete kopírovat (z části úložiště či obsah pracovní kopie na počítači) a kam budete kopírovat. Při volbě cíle je nutno zvolit adresář v úložišti, kam se má udělat kopie (kde se má umístit značka) - obvykle se dopíše část cesty, neboť se vytváří nový adresář (např. textovaVerze či prvniVerze). Před odesláním si zkontrolujte cílovou cestu - většinou je vhodně zatrhnout volbu Skip selected Folder and copy only its Contents.
5. Vložení dalších souborů do projektu
Nejjednodušší postup je v nějakém správci souborů (Průzkumník ve Windows, Total Commander a další) označit soubory/adresáře a přes "Drag and drop" je přesunout do příslušného balíčku v projektu zobrazeného v NetBeans.
Upozornění - pomocí správce souborů nedělejte přímo úpravy v pracovišti, tj. nemažte soubory, nepřejmenovávejte soubory, nepřesouvejte soubory. Mohlo by to vést k výrazným problémům ve vztahu k úložišti.
6. Řešení problémů se Subversion v NetBeans
6.1 Není dostupná podpora pro Subversion
Pokud nemáte správně nainstalovaného klienta pro Subversion, zobrazí se Vám upozornění, nabízející dvě řešení:
- Instalace integrovaného klienta pro Subversion (doporučená volba)
- Stažení řádkového klienta
Je potřeba nainstalovat klienta pro Subversion (modul či řádkový klient). V případě 64-bitových Windows Vista je nutné nainstalovat řádkového klienta.
6.2 Požadován CleanUp
Pokud se nedokončí commit či update, zůstanou na lokálním disku uloženy zámky. Při opakovaném pokusu o commit či update začnou NetBeans hlásit chybu s tím, že je potřeba provést operaci cleanup. Bohužel jsem v NetBeans nenašel možnost provedení této operace a je nutné to udělat jiným klientem pro Subversion.
Pokud máte nainstalován TortoiseSVN, najděte pomocí správce souborů adresář s projektem, přes druhé tlačítko myši z kontextového menu spusťte TortoiseSVN a v něm najděte volbu Clean up.
Pokud máte řádkového klienta, v adresáři s projektem zadejte příkaz:
svn cleanup
Za 'svn cleanup' lze též zadat adresář, ve kterém je umístěn projekt:
svn cleanup d:\projekt\adventura
Bohužel v některých situacích operace cleanup není úspěšná. Potom nezbývá nic jiného, než udělat nový checkout projektu z úložiště a v něm udělat změny, které jste udělali na původním pracovišti.
6.3 Přesun projektu do jiného úložiště
Pokud má projekt již připojeno nějaké úložiště (tj. proběhl import do úložiště či checkout z úložiště), tak není jednoduché přiřadit k projektu jinou adresu úložiště. Jsou dvě situace:
- přesunutí v rámci jednoho úložiště - nejjednodušší cesta je zkopírovat projekt v rámci úložiště, zrušit projekt na lokálním počítači a stáhnout (checkout) projekt z nového úložiště. Můžete též zkusit volbu "Switch to Copy". Původní umístění je možné v úložišti "smazat" (prohlásit, že v aktuální revizi se nebude zobrazovat). Toto není možné udělat přes NetBeans, ale je nutné použít jiného klienta pro Subversion.
- přesunutí do jiného úložiště - je potřeba oddělit projekt od úložiště přes exportování. Tato volba není dostupná v NetBeans (či jsem ji nenašel) a je potřeba to udělat v jiném klientovi Subversion (pro Windows doporučuji TortoiseSVN, lze použít i řádkového klienta). Poté lze projekt importovat do nového úložiště.
7. Menu, volby, pomocné okno pro zobrazení změn
Volby pro Subversion jsou dostupné přes menu v horní liště. Některé volby v menu jsou kontextově závislé, tj. závisí na tom, zda máte zrovna aktivní soubor, balíček či celý projekt:
Volby spojené se Subversion se též nabízejí na pravé tlačítko u souborů a balíčků v okně projektu. U souborů to jsou tyto volby:
- Show Changes - umožňuje zobrazit změny v pracovišti v samostatné okně (otevře se v dolní části obrazovky). Tuto volbu má význam použít u celého projektu či u balíčku, aby se zobrazili změny v celém projektu či aspoň v části projektu.
- Diff - otevře se velké okno, ve kterém se porovnávají verze souboru. Lze porovnat aktuální verzi s verzí staženou do pracoviště (tj. jak byla před úpravami) i s verzemi na serveru. Pokud volbu zadáte nad projektem či na balíčkem, lze v okně vybírat jednotlivé změněné soubory k porovnání.
- Update - aktualizace pracoviště či části pracoviště (např. balíčku či konkrétního souboru) dle stavu na serveru. Doporučuji vždy aktualizovat celé pracoviště (celý projekt).
- Commit - odeslání změn na server. Lze opět odeslat všechny změny v projektu či pouze v části projektu. Doporučuji vždy vybrat celý projekt a odeslat všechny změny v projektu.
- Create Copy, Switch to Copy, Merge Changes from Branch - práce s větvemi a značkami. Vytvoření značky je popsáno výše, ostatní volby patří mezi pokročilé.
- Show/Hide Annotations - pro konkrétní soubor zobrazí změny v historii, je vidět revize, ve které došlo ke změně i kdo změnu uložil do úložiště.
- Search History - tato nejen zobrazí přehled o změnách u příslušného souboru či projektu, ale umožňuje ve změnách vyhledávat (dle zprávy, dle autora commitu, dle času), porovnávat různé verze souborů (diff), vrátit se k některé z předchozích verzí (revert).
- Revert - volba umožní vrátit nejen změny na pracovišti, ale vrátit se i k předchozím verzím uloženým na serveru (dle čísla revize).
- Resolv Conflicts
Ukázka okna se změnami (Show Changes na celém projektu):
Ukázka okna s anotacemi (Show Annotations):
Okno pro vrácení se k předchozí verzi (Revert):