Подтвердить что ты не робот

Svn получить текущий пользователь

Как получить текущего пользователя, который использует svn на определенной рабочей станции?

Можно ли использовать исполняемый файл svn.exe с некоторым переключателем для получения этой информации.

Спасибо.

4b9b3361

Ответ 1

В Linux вы найдете следующий файл в своем домашнем каталоге:

~/.subversion/авт/svn.simple

В этом файле вы можете увидеть "в настоящее время зарегистрированный пользователь".

Ответ 2

Нет такой вещи, как "текущий пользователь, который использует svn". Каждый раз, когда отправляется команда SVN, учетные данные предоставляются либо явно в командной строке, либо неявно с помощью сохраненных учетных данных, которые могут включать несколько пользователей.

Ответ 3

В Windows он находится в

%APPDATA%\Subversion\auth\

Чтобы найти этот каталог, просто перейдите к run (win-key + r), вставьте указанную выше команду и нажмите enter или нажмите кнопку run.

Для меня был файл в папке svn.simple. Это текстовый файл, и он имеет информацию с сохраненными данными аутентификации. У меня есть что-то вроде этого:

...
K 8
username
V 6
kosta
END

Ответ 4

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
  1. Чтобы напечатать только имя пользователя
    использование | tail -1 даст мне мое имя пользователя i.e Bhavik.

Надеюсь, что это объяснит код.

Ответ 5

Существует несколько способов узнать сохраненные учетные данные:

  • Запустите svn auth, чтобы просмотреть учетные данные и сертификаты, кэшированные в хранилище учетных данных SVN (%APPDATA%\Subversion\auth).
  • Запустите cmdkey, чтобы просмотреть учетные данные, хранящиеся в диспетчере учетных данных Windows.
  • Если ваш SVN-сервер интегрирован с Active Directory и поддерживает встроенную проверку подлинности Windows, ваши учетные данные для входа в систему Windows используются для аутентификации, но они не кэшируются. Вы можете запустить whoami, чтобы узнать свое имя учетной записи пользователя.

Кстати, не пропустите Ответ Майкла Хакнера:

Нет такой вещи, как "текущий пользователь, который использует svn". каждый время отправляется команда SVN, учетные данные предоставляются либо явно в командной строке или неявно через сохраненные учетные данные, которые могут включать нескольких пользователей.

Ответ 6

Если вы используете SVN + SSH, то пользовательское имя пользователя для данной рабочей станции находится в файле конфигурации для SVN. Предполагая рабочую станцию ​​Windows, этот файл будет находиться в папке C:\Documents and Settings\\Application Data\Subversion. Затем вы можете написать script, чтобы получить это имя, и делать то, что вам нужно.

Я думаю, что это только для настройки SVN + SSH. Он не может работать в других настройках подключения для SVN.

Ответ 7

Если вы говорите о сохраненных учетных данных: либо вы выводите его из журнала, либо вы что-то совершаете (с указанной рабочей станции/сервера), чтобы вы могли видеть, что говорит журнал.

Ответ 8

Изменить: Обратите внимание, что этот ответ применяется только к версиям 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