Чи можу я бути користувачем, який не є моїм іменем для входу у програму Subversion?


253

Я хотів би знати, як домогтися Subversionзмінити ім’я, під яким відображаються мої зміни.

Я тільки починаю використовувати Subversion. Зараз я використовую його для контролю версії коду на ноутбуці XP, де я завжди входив під іменем дружини. Я хотів би, щоб у підривному БД відображалися зміни під моїм іменем.

Пізніше я копіюю БД, щоб вона була доступною для всього будинку. Моя дружина використовує офісний комп'ютер, де вона завжди входить під моїм іменем. Я, мабуть, налаштував це так, щоб він автоматично перевіряв змінені документи ... бажано під її ім’ям.

Зрештою я, ймовірно, буду використовувати його з машини Linux під іншим іменем.

Чи є спосіб змінити середовище користувача, щоб змінити ім'я користувача, до якого вас закликає Subversion? Я б очікував щось подібне до налаштувань, SVN_USERNAME='Mark'які б перекривали, однак зазвичай вони отримують назву.

Оновлення: Схоже, --usernameпрапор, на який звертався Майкл, працює над тим, щоб змінити ім'я, про яке повідомляється "svn stat", навіть для локального файлу: сховища. Крім того, він липкий, тому не потрібно вказувати його для наступної команди. Я навіть перезавантажився, і він все ще використовував "--username"значення попереднього завантаження.

Відповіді:


280

Більшість команд Subversion мають --usernameможливість вказати ім’я користувача, яке ви хочете використовувати в сховищі. Subversion запам'ятовує останнє ім’я користувача та пароль для сховища, використовувані у кожній робочій копії, що означає, серед іншого, що якщо ви користуєтеся, svn checkout --username myuserвам більше не потрібно вказувати ім’я користувача.

Як каже Каміль Кісієль , коли Subversion отримує доступ до сховища безпосередньо з файлової системи (тобто URL-адресу сховища має форму file:///path/to/repoабо file://file-server/path/to/repo), він використовує дозволи вашої файлової системи для доступу до сховища. А під час підключення через тунелювання SSH ( svn+ssh://server/path/to/repo), SVN використовує ваші дозволи FS на сервері , як це визначено вашим входом у SSH. У цих випадках svn checkout --usernameможе не працювати для вашого сховища.


Дякую за швидку відповідь. Прапор --username видається дуже липким, навіть через перезавантаження. І він прекрасно працює на моєму файлі: сховищі.
ринки

70

Для svn over ssh спробуйте:

svn list svn+ssh://[user_name]@server_name/path_to_repo  

svn запропонує вам user_nameввести пароль.


1
Не працює з
іменами

4
https://user_name@.../pathне працював для мене (cygwin), але --usernameпрацює чудово.
zelanix

44

Ви можете встановити ім'я користувача за замовчуванням через ~ / .subversion / серверів:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Зауважте, що старіші версії svn не підтримують його (наприклад, 1.3.1 [sic!]).


37
"svn co --username=yourUserName --password=yourpassword http://path-to-your-svn"

Працював для мене, коли на іншому обліковому записі користувача. Однак вам буде запропоновано знову ввести ім'я користувача / пароль. Вам потрібно увійти, як зазначено вище, один раз, і все буде налаштовано на наступні періоди (якщо ви не перезавантажите машину).


4
Будьте обережні, подаючи пароль у командному рядку. Кожен, хто зможе побачити список процесів на пристрої, зможе побачити пароль у списку процесів. Штраф для однокористувацької системи, але не дуже хороший для багатокористувацької системи.
відбійник

12

Якщо для використання з svn + ssh потрібно вказати ім’я користувача, окрім вашого користувача, просто додайте запис у свій .ssh / config файл :

Хост example.com
Користувач jdoe

man ssh_config розповість вам про це. Я ще не знайшов способу зробити цю динаміку (наприклад, на основі змінної середовища).
bbaassssiiee

11

Subversion зазвичай запитує у мене "Ім'я користувача Subversion", якщо воно не вдається використовувати моє ім'я користувача, що увійшов. Тож, коли я лінуюсь (як правило), я просто дозволю, щоб він запитав мене про свій пароль, і я натисну клавішу Enter, і зачекаю, коли підкаже ім'я користувача та скористатись моїм іменем Subversion.

В іншому випадку рішення Майкла - це хороший спосіб точно вказати ім’я користувача.


1
Я вважаю це кращою відповіддю, оскільки він працює для всіх SVN-команд (замовлення, фіксація тощо), де прапор --username здається або не існує, або трохи відрізняється для різних команд ...
edwardsharp

7

Більшість відповідей, здається, стосуються svn + ssh або, здається, не працюють для нас.

Для доступу до http найпростіший спосіб виходу з SVN користувача з командного рядка:

rm ~/.subversion/auth/svn.simple/*

Порада для капелюхів: http://www.yolinux.com/TUTORIALS/Subversion.html


6

Я вважаю, що якщо ви використовуєте метод file: // для доступу до вашого сховища субверсії, ваші зміни завжди виконуються у користувача, який отримує доступ до сховища. Вам потрібно використовувати метод, який підтримує автентифікацію, наприклад http: // або svn: //.

Дивіться http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing


6

Використання Subversion за допомогою модуля Apache або svnserve. Мені вдалося виконати операції, як користуються декілька користувачів --username.

Кожен раз, коли ви викликаєте команду Subversion як "нового" користувача, у вашому $HOME/.subversion/auth/<authentication-method>/каталозі з'явиться новий запис, кешований для цього користувача (якщо припустити, що ви можете встановити автентифікацію за допомогою правильного пароля або методу аутентифікації для сервера, з яким ви звертаєтесь до цього конкретного користувача) .


2

Якщо ви використовуєте svn + ssh для підключення до сховища, то єдине, що вас аутентифікує та авторизує, - це ваші ssh-дані. ВСЕ інше ігнорується. Ваше ім'я користувача буде зареєстровано в підривному режимі саме так, як це встановлено у вашому ssh-з'єднанні. Відмінне пояснення цього є на jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

Перейдіть на сторінку ~/.subversion/auth/svn.simple/*, і ви побачите список файлів, який містить інформацію про ваш обліковий запис користувача svn. Просто видаліть усі інші, які вам не потрібні.

Після цього, коли ви робите що-небудь, що стосується роботи SVN, наприклад, виконувати, rm тощо. Вам знову буде запропоновано ввести ім’я користувача або паролі.


-1

TortoiseSVN завжди вимагає ввести ім'я користувача. (якщо ви не скажете це не робити)


Ні, це не так. Принаймні, не на 1.9.5 для Linux.
drkvogel

За замовчуванням воно використовує локальне ім'я користувача, що не завжди є тим, що потрібно під час підключення до віддаленого сховища.
drkvogel

-3

Я вважаю, що ви можете встановити SVN_USERзмінну середовища для зміни свого імені користувача SVN.


3
Чи можете ви надати посилання на це? Я здійснив пошук і знайшов лише svn_username, який є виправленням, який хтось зробив, і я не можу сказати, чи потрапив він у основну лінію чи ні ... Я би подумав, що знайшов би інші звернення, якщо так.
ринки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.