Java»Net Beans Subversion

Net Beans Subversion

Používání Subversion v NetBeans

obsah

Import projektu do úložiště
Checkout projektu z úložiště
Odeslání změn do úložiště
Vytvoření záložky (tag) či větve (branch)
Vložení dalších souborů do projektu
Řešení problémů se Subversion v NetBeans
Menu, volby, pomocné okno pro zobrazení změn

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 si přečtěte informace o adresářové struktuře projektů v Javě.




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ů:

  1. Přihlášení k úložišti (Subversion Repository).
  2. Určení složky v úložišti, do které se projekt nahraje (Repository Folder). Složka nemusí existovat.
  3. 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í:

  1. Instalace integrovaného klienta pro Subversion (doporučená volba)
  2. 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):