How to set Subversion properties with git-svn

2019-03-12 04:19发布

Is there a way to set subversion properties on a git repository that was created by git-svn?

In my case, I want to edit the version of svn:external, svn:ignore and svn:executable.

However, the only way to do so seems to involve a check-out with the subversion client. Is there a way to edit svn properties without having to check out the repository twice (one time for git and one time with svn for the properties)?

5条回答
做自己的国王
2楼-- · 2019-03-12 04:27

git-svn does not support Subversion properties. When I run into this problem, I usually end up having two checkouts.

This is mentioned in the git-svn documentation under BUGS:

We ignore all SVN properties except svn:executable. Any unhandled properties are logged to $GIT_DIR/svn/<refname>/unhandled.log

查看更多
Fickle 薄情
3楼-- · 2019-03-12 04:48

Note: git 2.3.0 (February 2015) supports proset with git svn.
See commit 83c9433 by Alfred Perlstein (splbio):

git-svn: support for git-svn propset

This change allows git-svn to support setting subversion properties.

It is useful for manually setting properties when committing to a subversion repo that requires properties to be set without requiring moving your changeset to separate subversion checkout in order to set props.

There is a nit to point out: the code does not support adding props unless there are also content changes to the files as well.
This is demonstrated in the testcase.

So, as seen in t/t9148-git-svn-propset.sh, this now works:

git svn propset "$1" "$2" "$file" 
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"
查看更多
来,给爷笑一个
4楼-- · 2019-03-12 04:48

It's possible, just clone your SVN repository with SmartGit. It translates svn:executable, svn:externals and svn:ignore to executable, .gitsvnextmodules and .gitignore. So you can modify them and push back that will result in corresponding properties modification.

If you have an access to your SVN server you may install SubGit into it. It translates svn:executable and svn:ignore on the server side providing a Git interface to your SVN repository.

查看更多
forever°为你锁心
5楼-- · 2019-03-12 04:49

Started working on a patch to support git svn propset here: git svn propset support

查看更多
仙女界的扛把子
6楼-- · 2019-03-12 04:52

You can also used svnmucc, in case you don't want to have a whole svn checkout just to set props (my remote repo is really big).

Here's my command for adding a line to svn:ignore, replace URL, DIR, and VALUE.

svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR
查看更多
登录 后发表回答