我的问题与此类似但不同: TortoiseSvn error : the same name as the administrative directory
我使用git-svn
作为客户端,我有一个测试数据,其中包含数据树中的假.svn
文件夹。这得到dcommitt'ed
到svn。现在,当我尝试使用svn co
签出新的工作副本时,我收到错误:
svn: E155000: Failed to add directory '/MyRepo/TestData/Root/.svn': object of the same name as the administrative directory
我试图删除该文件夹并再次提交。但它没有帮助。
更新
我想出了什么。
我在一个功能分支上,我使用以下命令删除了.svn
文件夹(只有一个文件):
git rm /MyRepo/TestData/Root/.svn/file
git commit
然后我切换回我的开发分支,合并了功能分支,最后签入:
git checkout develop
git merge --squash feature
git commit
git svn dcommit
然而,我很惊讶这并没有合并.svn删除更改。
我仔细检查了我的~/.gitignore
,~/.gitignore_global
,repo的.gitignore
。他们没有包含.svn
,实际上这应该是无关紧要的,因为我的签名一直在.svn
文件夹中工作。
有人能解释一下这里发生了什么吗?
更新2
似乎重新检查我的开发分支的git rm
更改仍然无法解决问题。 svn co
仍然在同一个地方失败并出现同样的错误。
答案 0 :(得分:4)
我找到了原因和解决方案。
git更改必须删除文件.svn/file
。 git自动从本地git仓库中删除.svn文件夹。但文件夹是svn中的一等公民。所以在执行git svn dcommit
时没有删除.svn文件夹。
我最终不得不做
svn del http://mysvnserver/MyRepo/TestData/Root/.svn -m "Remove .svn folder"
单独删除该文件夹。之后我可以正常svn co
。
问题解决了。