繁体   English   中英

如何更改访问SVN信息库的默认作者?

[英]How do I change the default author for accessing a SVN repository?

我想将默认的SVN用户名更改为新名称。 我尝试了此链接中建议的解决方案( 如何更改用于访问本地SVN信息库的默认作者? ),但是它不起作用。

我可以使用Subversive客户端通过命令行和Aptana访问SVN存储库。

编辑 :此答案是关于如何在日志中更改作者,而不是如何设置默认作者。 我将解决方案留在这里,因为它仍然可以帮助撤消过去的几次提交,如果作者不是正确的提交。

编辑2 :钩子脚本示例和.bat文件的信息。


您不需要提供太多详细信息,所以我们不得不猜测,我的第一个想法是关于用来验证更改的挂钩脚本。 在这种情况下,您的客户端不是问题,这是服务器配置问题。

确保pre-revprop-change挂钩脚本(在服务器上的<repository>/hooks目录中)可由服务器执行并允许更改作者。

这是C语言中的示例:

#include <stdio.h>

int main(int argc, char *argv[])
{
int i;
 char *repos = argv[1];
 char *rev = argv[2];
 char *user = argv[3];
 char *propname = argv[4];
 char *action = argv[5];

 if (!strcmp(action, "M") && !strcmp(propname, "svn:log")) return 0;
 if (!strcmp(action, "M") && !strcmp(propname, "svn:author")) return 0;
 fprintf(stderr, "Changing revision properties other than svn:log or svn:author is prohibited");
 return 1;
} 

如果您的SVN服务器在Linux上,您还可以简单地将随每个存储库自动创建的pre-revprop-change.tmpl文件重命名为pre-revprop-change ,并为其赋予服务器可执行权限。 允许作者和日志更改应如下所示:

#!/bin/sh

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

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log or svn:author is prohibited" >&2
exit 1

对于Windows:

@echo off
REM pre-revprop-change.bat hook script
if "%4" == "svn:log" exit /b 0
if "%4" == "svn:author" exit /b 0
echo "Changing revision properties %4% is prohibited" >&2
exit /b 1

如果它不起作用,则可能是由于COMSPEC或PATH变量的服务器帐户没有正确的值,或者也可能是挂钩脚本的权限。 检查此链接以获取更多详细信息

CollabNet上还有其他钩子脚本示例。

有关更多详细信息,请参见《 带Subversion版本控制》在线书以及此处的内容 (请参阅下一节)。

对于Eclipse(但应与Aptana等基于Eclipse的IDE一起使用):

SVN PerpectiveSVN Repository视图中,只需转到所需存储库的Location Properties ,然后在Authentication框中更改凭据。

从现在开始应该会改变您的作者。

如果要重写历史记录,则必须使用类似RedGlyph的解决方案。

Subversion 1.4.x在默认的pre-revprop-change文件中仅允许svn:log。 将Eclipse与Subversive svn插件一起使用时,这可能会导致问题。

解决魔术错误说明

禁止更改svn:log以外的修订版属性

在svn命令之后。 要解决此特定问题,请添加

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi

来自上面的RedGlyph解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM