SVN»Subversion a ukládání hesel

Subversion a ukládání hesel

Subversion a hesla

Autoři klientů pro Subversion předpokládají, že vývojář bude s nimi pravidelně (tj. několikrát za den) pracovat. Proto často ukládají jména a hesla na disk, aby je vývojář nemusel pokaždé zadávat. Pokud na jednom počítači pracuje více uživatelů (což je případ většiny počítačů ve škole), může to vytvářet problémy - změny mohou být odeslány pod jinou osobou či se je nemusí podařit odeslat vůbec, neboť uživatel, jehož jméno a heslo je uloženo na počítači nemusí mít práva zápisu do úložiště.

Řádkový klient, program svn

Začínám řádkovým klientem, který asi mnoho uživatelů přímo nepoužívá. Je však nepřímo použit v NetBeans či může být použít v Subclipse - pluginu pro Eclipse.

Řádkový klient si vytváří konfigurační adresář, konkrétně ve Windows je to adresář

C:\Documents and Settings\<uživatelské jméno>\Data aplikací\Subversion

v linuxu se vytváří v domovském adresáři podadresář

.subversion

V konfiguračním adresáři vytvoří řádkový klient podadresář auth, ve kterém jsou uloženy hesla (podadresář svn.simple) a případně certifikáty serverů (podadresář svn.ssl.server).

V podadresáři svn.simple může být více souborů - jeden soubor odpovídá jedné kombinaci jména, serveru a tzv. realmu uložiště. Soubor je textový, takže si ho můžete prohlédnout. Ve Windows je vlastní heslo v souboru uloženo zašifrované pomocí služeb operačního systému (může být nedostupné po změně hesla v operačním systému). V linuxu je heslo uloženo nešifrované.

Pokud chcete smazat uložené heslo, musíte tedy najít příslušný soubor v podadresáři auth/svn.simple, a ten smazat.

Pokud nechcete, aby se heslo ukládalo, musíte použít parametr --no-auth-cache u příkazu svn. Můžete zabránit ukládání hesla i globálně - v konfiguračním adresáři klienta subversion je soubor config, ve kterém můžete nastavit, aby se heslo nikdy neukládalo:

[auth]
store-auth-creds = no

TortoiseSVN

TortoiseSVN používá knihovny od řádkového klienta, a proto používá i stejné uložiště pro jména a hesla. V TortoiseSVN může jména a hesla smazat přes grafické rozhraní - volba Settings -> Saved data -> Clear authentication data.

NetBeans 5.5

NetBeans 5.5 používá na pozadí řádkového klienta, takže pravidla pro uložení hesla do uložiště odpovídají tomu, co je uvedeno u řádkového klienta.

Eclipse s pluginem Subclipse

Plugin Subclipse umí používat dvě různé knihovny pro vlastní přístup k uložišti - knihovnu JavaHL a knihovnu SVNKit. Defaultně se používá knihovna JavaHL, která se ptá na jméno a heslo velmi často (pokud heslo neuložíte na disk). Pro používání na sdíleném počítači (např. ve škole) je vhodnější používat knihovnu SVNKit, neboť po celou dobu spuštění Eclipse má jméno a heslo ve vnitřní paměti a stačí ho obvykle zadat jednou, aniž by se ukládalo na disk.

Používanou knihovnu můžete si můžete zvolit v nastaveních ( Windows -> Preferences -> Team -> SVN ). Na následující obrazovce je šipkou vyznačeno, kde lze zvolit používanou knihovnu.

JavaHL je to knihovna, kterou používá řádkový klient, doplněná o hlavičky pro Javu. Tj. pravidla pro uložení hesla jsou stejná jako u řádkového klienta.

Knihovna SVNKit je knihovna celá napsaná v Javě. Tuto knihovnu používají i další programy (SmartSVN, Subversive), každý ukládá hesla jinam. Konkrétně Subclipse využívá tzv. "keyring" soubor - soubor, který používá Eclipse pro uschování hesel a obdboně citlivých informací. K tomuto souboru je následující cesta:

ECLIPSE_HOME/configuration/org.eclipse.core.runtime/.keyring

Eclipse s pluginem Subversive

DODĚLAT

SmartSVN

DODĚLAT