Как получить текущего пользователя, который использует svn на определенной рабочей станции?
Можно ли использовать исполняемый файл svn.exe с некоторым переключателем для получения этой информации.
Спасибо.
Как получить текущего пользователя, который использует svn на определенной рабочей станции?
Можно ли использовать исполняемый файл svn.exe с некоторым переключателем для получения этой информации.
Спасибо.
В Linux вы найдете следующий файл в своем домашнем каталоге:
~/.subversion/авт/svn.simple
В этом файле вы можете увидеть "в настоящее время зарегистрированный пользователь".
Нет такой вещи, как "текущий пользователь, который использует svn". Каждый раз, когда отправляется команда SVN, учетные данные предоставляются либо явно в командной строке, либо неявно с помощью сохраненных учетных данных, которые могут включать несколько пользователей.
В Windows он находится в
%APPDATA%\Subversion\auth\
Чтобы найти этот каталог, просто перейдите к run
(win-key + r), вставьте указанную выше команду и нажмите enter или нажмите кнопку run
.
Для меня был файл в папке svn.simple
. Это текстовый файл, и он имеет информацию с сохраненными данными аутентификации. У меня есть что-то вроде этого:
...
K 8
username
V 6
kosta
END
grep username ~/.subversion/auth/svn.simple/* --after-context=2 | tail -1
Объяснение:
Grep файл в grep username ~/.subversion/auth/svn.simple/*
будет искать имя пользователя
--after-context=2
будет печатать +2 после того, как он встретит имя пользователя
Вывод:
username
V 6
Bhavik
| tail -1
даст мне мое имя пользователя i.e Bhavik
.Надеюсь, что это объяснит код.
Существует несколько способов узнать сохраненные учетные данные:
svn auth
, чтобы просмотреть учетные данные и сертификаты, кэшированные в хранилище учетных данных SVN (%APPDATA%\Subversion\auth
).cmdkey
, чтобы просмотреть учетные данные, хранящиеся в диспетчере учетных данных Windows.whoami
, чтобы узнать свое имя учетной записи пользователя.Кстати, не пропустите Ответ Майкла Хакнера:
Нет такой вещи, как "текущий пользователь, который использует svn". каждый время отправляется команда SVN, учетные данные предоставляются либо явно в командной строке или неявно через сохраненные учетные данные, которые могут включать нескольких пользователей.
Если вы используете SVN + SSH, то пользовательское имя пользователя для данной рабочей станции находится в файле конфигурации для SVN. Предполагая рабочую станцию Windows, этот файл будет находиться в папке C:\Documents and Settings\\Application Data\Subversion. Затем вы можете написать script, чтобы получить это имя, и делать то, что вам нужно.
Я думаю, что это только для настройки SVN + SSH. Он не может работать в других настройках подключения для SVN.
Если вы говорите о сохраненных учетных данных: либо вы выводите его из журнала, либо вы что-то совершаете (с указанной рабочей станции/сервера), чтобы вы могли видеть, что говорит журнал.
Изменить: Обратите внимание, что этот ответ применяется только к версиям SVN до 1.9. Если вы используете версию SVN > 1.9, попробуйте метод svn auth
, описанный в @bahrep answer
Это bash script, который я использую, который я вложил в свою папку ~/bin/и назвал svn_whoami.sh:
#!/bin/bash
debug=false
for ((i=1;i<=$#;i++)) do
case ${!i} in
-h|--help)
programName=$( basename ${0} )
echo "Usage:"
echo " ${programName} [-h|--help] [-d|--debug]"
echo
echo "Example:"
echo " ${programName} --debug"
exit 0;
;;
-d|--debug)
debug=true;
;;
esac;
done;
if [ "${debug}" == "true" ]; then
echo "cat ~/.subversion/auth/svn.simple/* | grep -A6 username --color";
fi;
cat ~/.subversion/auth/svn.simple/* | grep -A6 svn:realmstring
Вывод:
$ svn_whoami.sh -d
cat ~/.subversion/auth/svn.simple/* | grep -A6 username --color
svn:realmstring
V 53
<http://your.1st.url.name.here:80> Authorization Realm
K 8
username
V 5
yourUserName
--
svn:realmstring
V 45
<http://your.2nd.url.name.here:80> Authorization Realm
K 8
username
V 5
yourUserName