Jak zapisać hasło podczas korzystania z Subversion z konsoli

Zastanawiałem się, czy jest sposób, aby zapisać moje hasło Subversion podczas wykonywania operacji svn z konsoli. Konsola jest jedyną opcją, jaką mam. Kiedy próbuję wykonać dowolną akcję Subversion, np. svn commit, za każdym razem wyświetla monit o hasło do konta. Czy jest jakiś sposób, aby zapisać to hasło tak, że nie muszę go ponownie wpisywać za każdym razem?

Author: GargantuChet, 2010-05-24

10 answers

W ~/.subversion/config, prawdopodobnie masz store-passwords = no. Zmień je na yes (lub po prostu skomentuj, ponieważ domyślnie jest to yes), a następnym razem, gdy podasz hasło Subversion, powinien je zapisać.

Możesz chcieć upewnić się, że właściciel i uprawnienia ~/.subversion/config są poprawne(brak dostępu publicznego lub grupowego; 600).

 93
Author: Michael Mrozek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 08:38:45

To zależy od protokołu, którego używasz. Jeśli używasz SVN + SSH, klient SVN nie może zapisać hasła, ponieważ nigdy go nie dotknie - klient SSH poprosi Cię o to bezpośrednio. W takim przypadku można użyć klucza SSH i ssh-agent, aby uniknąć stałych monitów. Jeśli używasz protokołu svnserve lub HTTP(S), to klient SSH obsługuje Twoje hasło i może je zapisać.

 49
Author: Andrew Medico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 08:40:18

Spróbuj wyczyścić swój .subversion folder w katalogu domowym i spróbuj ponownie zatwierdzić. Powinien monitować o podanie hasła, a następnie zapytać, czy chcesz je zapisać.

 33
Author: Earlz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 08:39:26

Musiałem edytować ~/.subversion/servers. Ustawiłem store-plaintext-passwords = yes (wcześniej nie było). Udało się. Można to jednak uznać za niepewne.

 14
Author: hajamie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-02 15:57:49

Proszę zwrócić uwagę na następujący akapit z pliku ~/.subversion/servers:

Zarówno 'store-passwords' jak i 'store-auth-creds' mogą być teraz określone w pliku 'servers' w katalogu konfiguracyjnym. Wszystko określone w tej sekcji jest zastępowane przez ustawienia określone w pliku "serwery".

Jest to przynajmniej dla wersji SVN 1.6.12. Należy więc pamiętać, aby edytować plik servers również wtedy, gdy nadpisuje ~/.subversion/config.

 7
Author: Rusu Bogdan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 08:43:03

Jeśli używasz svn + ssh , możesz skopiować swój publiczny klucz ssh na zdalną maszynę:

ssh-copy-id user@remotehost
 6
Author: Michael Schmid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-04 13:42:23

Dla mnie (użytkownika Mac) problem polegał na tym, że keychain miał już zapisany wpis dla moich poświadczeń, ale prawa dostępu nie były właściwe.

Usunięcie wpisu w aplikacji key chain, a następnie odtworzenie go za pomocą svn rozwiązało problem.

 4
Author: trias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-13 09:14:28

Użycie zwykłego tekstu może nie być najlepszym wyborem, jeśli hasło jest używane jako coś innego.

Popieram przyjętą odpowiedź, ale nie zadziałała dla mnie - z bardzo konkretnego powodu: chciałem użyć albo kwallet, albo gnome-keyring. Próbowałem zmienić ustawienia, wszystkie cztery pliki:

/etc/subversion/config
/etc/subversion/servers
~/.subversion/config
~/.subversion/servers

Nawet po tym, jak wszystko zostało ustawione tak samo, z password-stores i nazwą KWallet (domyślnie może być źle, prawda?) nie zadziałało i ciągle pytało o hasło. Pliki w ~/.subversion miał uprawnienia 600.

Cóż, w tym momencie możesz spróbować sprawdzić jedną prostą rzecz:

which svn

Jeśli otrzymasz:

/usr/bin/local/svn

Wtedy możesz podejrzewać z dużym prawdopodobieństwem, że ten klient został zbudowany ze źródła, lokalnie, przez Twojego administratora(który może być tobą, jak w moim przypadku).

Subversion to paskudna bestia do kompilacji, bardzo łatwa do przypadkowego zbudowania bez wsparcia HTTP lub - jak w moim przykładzie - bez wsparcia dla zaszyfrowanych sklepów z hasłami (potrzebujesz albo Gnome lub KDE development files, i wiele z nich!). Ale skrypt ./configure Ci tego nie powie, a po prostu dostajesz mniej funkcjonalne polecenie svn.

W takim przypadku możesz wrócić do klienta, który przyszedł z Twoją dystrybucją, zwykle w /usr/bin/svn. Minusem jest to, że prawdopodobnie będziesz musiał ponownie sprawdzić kopie robocze, ponieważ nie ma komendy svn downgrade. Możesz skonsultować Linusa Torvaldsa , co w każdym razie myśleć o Subversion;)

 3
Author: Tomasz Gandor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 08:45:33

Niestety odpowiedzi nie rozwiązały problemu pytania o hasło dla ssh + svn z chronionym kluczem prywatnym. Po kilku badaniach znalazłem:

ssh-add

Narzędzie, jeśli masz komputer z Linuksem. Upewnij się, że masz zapisane klucze w /home/username/.ssh/ i wpisz to polecenie w Terminalu.

 1
Author: www,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 15:55:46

Używam klienta TortoiseSVN w systemie Windows i dla mnie ustawienie parametru store-passwords jako yes w %USERPROFILE%\AppData\Roaming\Subversion\config nie pomaga w przechowywaniu hasła.

Hasło zostało pomyślnie zapisane po usunięciu tego folderu (na wszelki wypadek zmiana nazwy):

%USERPROFILE%\AppData\Roaming\Subversion\auth

Środowisko:

Windows 7, TortoiseSVN 1.7.11 (Build 23600 - 64 bit, 2012-12-12t19:08:52), Subversion 1.7.8.

 0
Author: Anton Arkhipkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 08:46:49