题 Svn获得当前用户


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

我可以使用svn.exe可执行文件与一些开关来获取该信息。

谢谢。


27
2018-01-07 19:11


起源


使用最新的SVN客户端,您可以运行 svn auth。 - bahrep


答案:


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

〜/的.subversion / AUTH / svn.simple

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


24
2017-11-21 16:16



是。那里有一个奇怪的命名文件:851320a14c12593c4c03577412869669。当使用文本编辑器打开文件时,其中一个条目是:'username V 12 MartinBerger',其中可以看到谁登录。在这种情况下,我。 - Martin Berger
可以使用以下awk脚本从那里提取用户名: /^K / { key=1; val=0; } /^V / { key=0; val=1; } ! /^[KV] / { if(key) { kname=$1; } if(val && kname == "username") { print $1; val = 0; } }  把它放到svnuser.awk并运行如下: cat ~/.subversion/auth/svn.simple/* | awk -f svnuser.awk - Alexander Amelkin
非常感谢你... - VVB


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


8
2018-01-07 19:15



如果你跑 svn update,它显然是在运行 一些 用户。问题是如何知道用户是什么。 - Kip


在Windows中它位于

%APPDATA%\Subversion\auth\

要查找此目录,只需转到 run (双赢的关键+[R),粘贴上面的命令并点击 输入 或点击 Run 按钮。

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

...
K 8
username
V 6
kosta
END

7
2017-07-31 09:36



你不需要这个。赶紧跑 svn auth 使用最新的SVN客户端版本。 - bahrep


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

说明: 

  1. Grep文件 grep username ~/.subversion/auth/svn.simple/* 将寻找用户名

  2. --after-context=2 在遇到用户名后会打印+2行

输出:

username
V 6
Bhavik
  1. 仅打印用户名
    使用 | tail -1 会给我我的用户名,即 Bhavik

希望这能解释代码。


7
2017-08-21 06:41



你能解释一下你的代码吗? - Bulat
当然从〜/ .subversion / auth / svn.simple / *中的文件中查找用户名 - after-context = 2会在遇到用户名用户名V 6 Bhavik后打印+2行以获取用户名我们| tail -1会给我我的用户名,即Bhavik Hope,这解释了我的代码 - Bhavik Bhavsar
此解决方案的唯一问题是,如果您使用多个存储库,则只会列出最后一个存储库的用户名。 - Craig
所以这个人会得到所有这些: for file in ~/.subversion/auth/svn.simple/* ; do grep username $file --after-context=2 | tail -1; done - Georg Mavridis
你不需要这个。赶紧跑 svn auth 使用最新的SVN客户端版本。 - bahrep


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

  • svn auth 查看SVN凭证存储中缓存的凭据和证书(%APPDATA%\Subversion\auth)。
  • cmdkey 查看Windows Credential Manager中存储的凭据。
  • 如果SVN服务器与Active Directory集成并支持集成Windows身份验证,则Windows登录凭据将用于身份验证,但不会缓存它们。你可以跑 whoami 找出您的用户帐户名称。

顺便说一句,不要错过 迈克尔哈克纳的回答

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


4
2018-06-21 13:57





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

我认为这仅适用于SVN + SSH设置。它无法在SVN的其他连接设置中工作。


1
2018-01-07 19:39



谢谢,我找到的唯一文件是这个:C:\ Documents and Settings \ irfan \ Application Data \ Subversion \ auth \ svn.simple \ 1中的1d711cc713195841ccd6ab5d28737ce9 ...每个安装都不同但是可以完成.. 。 - Irfan Mulic


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


0
2017-12-07 17:06