Svn获得当前用户

时间:2010-01-07 19:11:11

标签: svn

如何获取在特定工作站上使用svn的当前用户?

我可以使用带有某些开关的svn.exe可执行文件来获取该信息。

感谢。

9 个答案:

答案 0 :(得分:24)

在Linux中,您将在主目录中找到以下文件:

  

〜/的.subversion / AUTH / svn.simple

在此文件中,您可以看到“当前登录的用户”。

答案 1 :(得分:9)

没有“使用svn的当前用户”这样的东西。每次提交SVN命令时,都会在命令提示符下显式提供凭据,或者通过保存的凭据(可能包括多个用户)隐式提供凭据。

答案 2 :(得分:8)

grep username ~/.subversion/auth/svn.simple/* --after-context=2 | tail -1

说明:

  1. Grep grep username ~/.subversion/auth/svn.simple/*中的文件会查找用户名

  2. --after-context=2在遇到用户名

  3. 后会打印+2行

    输出:

    username
    V 6
    Bhavik
    
    1. 仅打印用户名
      使用| tail -1会给我我的用户名,Bhavik
    2. 希望这能解释代码。

答案 3 :(得分:7)

在Windows中,它位于

%APPDATA%\Subversion\auth\

要查找此目录,只需转到run win-key + r ),粘贴上面的命令并点击 enter 或点击Run按钮。

对我来说,文件夹svn.simple中有一个文件。它是一个文本文件,它包含已保存的身份验证数据的信息。我有这样的事情:

...
K 8
username
V 6
kosta
END

答案 4 :(得分:5)

有多种方法可以找到存储的登录凭据:

  • 运行svn auth以查看SVN凭据存储(%APPDATA%\Subversion\auth)中缓存的凭据和证书。
  • 运行cmdkey以查看存储在Windows凭据管理器中的凭据。
  • 如果SVN服务器与Active Directory集成并支持集成Windows身份验证,则Windows登录凭据将用于身份验证,但不会缓存它们。您可以运行whoami来查找您的用户帐户名称。
顺便说一句,不要错过Michael Hackner's answer

  

没有"当前用户正在使用svn。"一切   提交SVN命令的时间,也提供凭证   显式地在命令提示符下或隐式地通过保存   凭证,可能包括多个用户。

答案 5 :(得分:1)

如果您使用的是SVN + SSH,那么给定工作站的用户用户名就在SVN的配置文件中。假设Windows工作站,此文件将位于C:\ Documents and Settings \\ Application Data \ Subversion文件夹中。然后,您可以编写一个脚本来获取此名称,并执行您需要的任务。

我认为这仅适用于SVN + SSH设置。它不能用于SVN的其他连接设置。

答案 6 :(得分:0)

如果您正在谈论保存的凭据:要么从日志中推断出来,要么提交某些内容(来自上述工作站/服务器),以便您可以看到日志所说的内容。

答案 7 :(得分:0)

已经建议的 svn auth 对我有用,但要获得 “最终” 确认,您可以使用您修改并运行的文件

svn info MODIFIED/FILE

svn log MODIFIED/FILE

并查看最后更改的作者:XXXX,或列出用户名的更改历史记录。

答案 8 :(得分:-1)

编辑:请注意,此答案仅适用于1.9之前的SVN版本。如果您使用SVN版本> 1.9,请尝试@ bahrep的answer

中描述的svn auth方法

这是我使用的bash脚本,我把它放在〜/ 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