如何使用git-svn设置Subversion属性

时间:2009-08-13 11:36:06

标签: svn git git-svn collaboration

有没有办法在git-svn创建的git存储库上设置subversion属性?

在我的情况下,我想要修改svn:externalsvn:ignore的版本 svn:executable

然而,这样做的唯一方法似乎是涉及到subversion客户端的签出。有没有办法编辑svn属性而无需两次检出存储库(一次用于git,一次用svn作为属性)?

5 个答案:

答案 0 :(得分:22)

注意:git 2。3。0(2015年2月)支持git svn的proset 请commit 83c9433Alfred Perlstein (splbio)

  

git-svn:支持git-svn propset

     

此更改允许git-svn支持设置subversion属性。

     

在提交需要属性的subversion repo时手动设置属性非常有用,而无需将变更集移动到单独的subversion结帐以设置道具。

     

有一点需要指出:代码不支持添加道具,除非文件也有内容更改
  这在测试用例中得到证明。

所以,正如t/t9148-git-svn-propset.sh中所见,这现在有效:

git svn propset "$1" "$2" "$file" 
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"

答案 1 :(得分:17)

git-svn不支持Subversion属性。当我遇到这个问题时,我通常最终会有两个结账。

这在BUGS的git-svn文档中提到:

  

我们忽略除svn:executable之外的所有SVN属性。任何未处理的属性都会记录到$GIT_DIR/svn/<refname>/unhandled.log

答案 2 :(得分:5)

开始处理支持git svn propset的补丁:git svn propset support

答案 3 :(得分:3)

有可能,只需使用SmartGit克隆您的SVN存储库。它将svn:executable,svn:externals和svn:ignore转换为可执行文件,.gitsvnextmodules和.gitignore。因此,您可以修改它们并推回,这将导致相应的属性修改。

如果您有权访问SVN服务器,则可以在其中安装SubGit。它在服务器端转换svn:executable和svn:ignore,为你的SVN存储库提供Git接口。

答案 4 :(得分:2)

您还可以使用svnmucc,以防您不想只设置道具(我的远程仓库非常大)。(/ p>)

这是我向svn添加一行的命令:ignore,replace URL,DIR和VALUE。

svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR