В Subversion я могу быть пользователем, отличным от моего логина? - PullRequest
242 голосов
/ 02 января 2009

Я хотел бы знать, как заставить Subversion изменить имя, под которым отображаются мои изменения.

Я только начинаю использовать Subversion. В настоящее время я использую его для контроля версий на ноутбуке с XP, где я всегда захожу под именем своей жены. Я хотел бы, чтобы DB Subversion показывал изменения под моим именем.

Позже я скопирую БД, чтобы она была доступна для всего дома. Моя жена использует офисный компьютер, где она всегда заходит под моим именем. Я, вероятно, настрою его так, чтобы он автоматически проверял измененные документы ... желательно под ее именем.

В конце концов, я, вероятно, буду использовать его с машины linux под другим именем пользователя.

Есть ли способ изменить пользовательскую среду, чтобы изменить имя пользователя, которое вам называет Subversion? Я бы ожидал что-то вроде установки SVN_USERNAME='Mark', которая переопределяет, но обычно получает имя.

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

Ответы [ 13 ]

277 голосов
/ 02 января 2009

Большинство команд 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 может не работать для вашего хранилища.

69 голосов
/ 01 марта 2010

Для SVN через SSH попробуйте:

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

svn запросит у вас пароль user_name.

39 голосов
/ 30 ноября 2011

Вы можете установить имя пользователя по умолчанию через ~ / .subversion / servers:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Обратите внимание, что более старые версии svn не поддерживают его (например, 1.3.1 [sic!]).

34 голосов
/ 08 марта 2011
"svn co --username=yourUserName --password=yourpassword http://path-to-your-svn"

Работал для меня, когда на другой учетной записи пользователя. Вам будет предложено ввести имя пользователя / пароль еще раз. Вы должны войти в систему, как описано выше, один раз, и у вас все настроено на последующее время (если вы не перезагрузите компьютер).

12 голосов
/ 23 мая 2012

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

Host example.com
User jdoe
11 голосов
/ 02 января 2009

Subversion обычно запрашивает у меня «Subversion username», если мне не удается войти в систему с использованием моего имени пользователя. Поэтому, когда я ленив (обычно), я просто позволю ему спросить у меня мой пароль, и я нажму клавишу ввода, и дождусь запроса имени пользователя и использую мое имя пользователя Subversion.

В противном случае, решение Майкла - это хороший способ сразу указать имя пользователя.

7 голосов
/ 11 апреля 2013

Большинство ответов, кажется, для svn + ssh, или, кажется, не работают для нас.

Для доступа по http самый простой способ выйти из системы пользователя SVN из командной строки:

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

Наконечник шляпы: http://www.yolinux.com/TUTORIALS/Subversion.html

6 голосов
/ 02 января 2009

Использование Subversion с модулем Apache или svnserve. Я был в состоянии выполнить операции как несколько пользователей, используя --username.

Каждый раз, когда вы вызываете команду Subversion в качестве «нового» пользователя, в вашем каталоге $HOME/.subversion/auth/<authentication-method>/ будет кэшироваться новая запись для этого пользователя (при условии, что вы можете аутентифицироваться с правильным паролем или методом аутентификации для сервера, которым вы являетесь связаться с этим конкретным пользователем).

6 голосов
/ 02 января 2009

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

См. http://svnbook.red -bean.com / ru / 1.5 / svn-book.html # svn.serverconfig.choosing

2 голосов
/ 31 мая 2016

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

После этого, когда вы делаете все, что касается работы SVN, например, commit, rm и т. Д. Вам снова будет предложено ввести имя пользователя или пароль.

...