35

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

svn:external就我而言,我想编辑 和 的svn:ignore版本 svn:executable

但是,这样做的唯一方法似乎是与 subversion 客户端签出。有没有一种方法可以编辑 svn 属性而无需两次检查存储库(一次用于 git,一次使用 svn 用于属性)?

4

5 回答 5

27

注意:git 2.3.0(2015 年 2 月)支持带有git svn.
请参阅Alfred Perlstein ( )提交 83c9433splbio

git-svn: 支持git-svn propset

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

当提交到需要设置属性而不需要将变更集移动到单独的 subversion checkout 以设置 props 时,手动设置属性非常有用。

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

因此,如 中所示t/t9148-git-svn-propset.sh,这现在有效:

git svn propset "$1" "$2" "$file" 
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"
于 2015-02-01T21:21:24.627 回答
17

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

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

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

于 2009-08-13T11:46:14.103 回答
5

开始在git svn propset这里开发一个补丁来支持:git svn propset support

于 2009-09-10T16:01:22.043 回答
3

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

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

于 2012-05-13T00:26:55.723 回答
2

你也可以使用svnmucc,以防你不想有一个完整的 svn checkout 只是为了设置道具(我的远程仓库真的很大)。

这是我添加一行到 svn:ignore、替换 URL、DIR 和 VALUE 的命令。

svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR
于 2014-10-23T16:43:29.007 回答