[英]How do I change the default author and committer in the Eclipse Git plugin?
[英]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 Perpective
的SVN 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.