使用svn + ssh时设置SVN用户名(Eclipse中的作者名称)

时间:2009-07-31 14:55:44

标签: eclipse svn

当我在Eclipse中提交更改时,svn将我的作者姓名记录为我第一次在Eclipse(Alok)中提交更改时输入的名称。按作者名称,我的意思是当您运行“svn log”或“svn blame”时显示的名称。

但是,当我从命令行提交更改时,Author Name被设置为我用来ssh到存储库的用户名(svnadmin)。有没有办法在使用svn + ssh时从命令行中独立于ssh用户名设置Author Name / svn username的等价物?我试过了

svn --username Alok ci 

但忽略此情况下的用户名,并将更改归因于svnadmin。

2 个答案:

答案 0 :(得分:2)

根据设计,您无法更改svn + ssh的用户名。如果可以的话,你可以假装其他人作为提交者 - 当SSH密钥通常会明确地将自己标识为提交者时。

因此,如果您希望使用svn + ssh显示不同的提交者名称,则需要在服务器上更改某些内容:

  1. 创建单独的远程用户,并将您的密钥放入authorized_keys文件中,以供您希望显示为提交者的用户使用。可替代地,
  2. 将command = lines放入svnadmin用户的authorized_keys文件中。该命令应为/usr/bin/svnserve -t --tunnel-user Alok;也可选择--root选项。

答案 1 :(得分:1)

一种解决方法是首先通过在hooks / pre-revprop-change中添加如下所示的shell脚本来启用修订标记的编辑

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"

if [ "$PROPNAME" = "svn:log" ]; then exit 0; fi
if [ "$PROPNAME" = "svn:author" ]; then exit 0; fi
exit 1

然后,在提交之后,您可以使用

更改svn:author
svn propset --revprop -r1234 svn:author Alok

这并没有解释eclipse如何在提交时设置svn:author而没有pre-revprop-change挂钩。这个解决方案有点令人不满意,因为它允许任何用户更改任何提交的svn:author,知道eclipse实际上在做什么会很好。