如何在使用git-svn创建的Git仓库中设置Subversion属性?
我想要编辑svn:external
、svn:ignore
和svn:executable
的版本,但是唯一的方法似乎是通过Subversion客户端进行检出。有没有办法在不用两次检出(一次用于Git,一次用于Subversion属性)的情况下编辑svn属性?
如何在使用git-svn创建的Git仓库中设置Subversion属性?
我想要编辑svn:external
、svn:ignore
和svn:executable
的版本,但是唯一的方法似乎是通过Subversion客户端进行检出。有没有办法在不用两次检出(一次用于Git,一次用于Subversion属性)的情况下编辑svn属性?
git svn
进行proset。splbio
):
git-svn
:支持git-svn propset
此更改允许
git-svn
支持设置subversion属性。在提交到要求设置属性的subversion repo时手动设置属性非常有用,而无需将您的更改集移动到单独的subversion checkout以设置props。
需要指出的是:除非文件也有内容更改,否则代码不支持添加props。
这在测试用例中得到了证明。
因此,正如在t/t9148-git-svn-propset.sh
中所看到的那样,现在可以工作:
git svn propset "$1" "$2" "$file"
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"
git-svn
不支持 Subversion 属性。当我遇到这个问题时,通常会有两个检出副本。
在 BUGS 部分,git-svn
文档中提到了这一点:
我们忽略所有的 SVN 属性,除了 svn:executable。任何未处理的属性都会被记录到
$GIT_DIR/svn/<refname>/unhandled.log
文件中。
svn.exe
或使用TortoiseSVN的Repo-browser
在存储库中设置它们。 - florisla我开始着手制作一个补丁,以支持git svn propset
,具体内容请参考:git svn propset support
git svn
,因此不打算继续开发它了... - David Fraser如果您不想进行整个svn checkout来设置属性(我的远程repo非常大),您也可以使用svnmucc。
这是我的命令,用于将一行添加到svn:ignore中,请替换URL、DIR和VALUE。
svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR
svnmucc -U "$(git svn info | egrep '^URL\:' | cut -d' ' -f2-)" propset svn:global-ignores PATTERN DIRECTORY
(例如,将DIRECTORY替换为.
)。 - Tatsh
git svn propset
仅支持 Git 2.3.0(2015年2月),请参见下面的答案。 - VonC