git-svn忽略Windows上的subversion配置文件(auto-props)

时间:2014-03-31 17:07:31

标签: windows svn config git-svn

这是我的第一个问题,我希望我没有做错任何事。

正如标题所示,我正在尝试在具有中央SVN存储库的项目上使用git-svn。 SVN存储库使用自动道具,如果未在本地SVN配置文件中正确设置,则拒绝提交。

我到处都读过,包括StackOverflow,git-svn足够智能读取和尊重svn配置文件,所以如果我已经正确配置了我的Subversion客户端,git-svn应该可以工作。不幸的是,情况并非属于我。

以下是我的SVN配置文件的内容,其中的位置是 C:\ Users [myusername] \ AppData \ Roaming \ Subversion \ config 。我删除了所有评论(只有评论)。

[auth]

[helpers]

[tunnels]

[miscellany]
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* *.swp ~*
enable-auto-props = yes
use-commit-times = yes

[auto-props]
*.e = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.c = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.h = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.cpp = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.y = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.py = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.ecf = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.xace = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.ace = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.ge = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.eant = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.bm = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.bat = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.sh = svn:keywords=Author Date ID Revision;svn:eol-style=native
*.xeb = svn:keywords=Author Date ID Revision;svn:eol-style=native
Mak* = svn:keywords=Author Date ID Revision;svn:eol-style=native
tcf = svn:eol-style=native
output = svn:eol-style=native
output? = svn:eol-style=native

如果我编辑此文件并将enable-auto-props设置为no,那么使用SVN提交工作完美,并且它停止工作(服务器拒绝它说没有设置所需的自动道具),所以这个是要编辑的正确文件,它正在被解析。遗憾的是,git-svn完全忽略了这一点,并且Dcommitting总是失败并显示相同的错误消息,如下所示:

ERROR from SVN:
A repository hook failed: MERGE request failed on '/[url omitted]/Src': Commit blocked by pre-commit hook (exit code 1) with output:
Props 'svn:keywords=author date id revision' missing (or not expected)
Props 'svn:eol-style=native' missing (or not expected)
Props issue on: /[url omitted]/some_file.cpp

对于我尝试提交相关扩展名的所有文件,此消息会重复多次。

我在一个评论中读到StackOverflow的答案,在Windows上可能有另一个Subversion配置文件的副本,位于" C:\ Users [myusername] .subversion \ config&#34 ;,但是这个不适合我。只是为了确定,我将配置文件复制到此路径并且没有任何更改。

我很惊讶这似乎不是一个常见的问题。我期待在互联网上找到大量的人问同样的问题,但事实似乎并非如此。当人们询问自动道具时,答案总是只是git-svn应该尊重SVN配置文件,通常后跟"谢谢,它有效!",所以很可能依赖于在我的安装中有些东西,但我不能真实地知道如何解决这个问题。

感谢您的阅读,并提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。猜测是git-svn忽略了我的配置,因为它在错误的位置寻找配置文件。我决定我想找到git实际存储 git 配置的位置,我在堆栈上发现命令git config --global --edit将执行此操作(它将打开一个编辑器,从中可以看到文件的位置位于)。

事实证明,与Subversion不同,git配置位于我的机器上的网络驱动器上,我的域用户配置文件存储在该驱动器上。我在该驱动器上找到了另一个SVN配置文件的副本,用正确的文件替换它,现在git-svn就像魅力一样。

即使我相信我的机器上的某些东西必须配置不当,这也解决了我的问题。