0

我的问题与此类似但不同: TortoiseSvn 错误:与管理目录同名

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仍然在同一个地方失败并出现同样的错误。

4

1 回答 1

4

我找到了原因和解决方案。

git 更改必须是删除文件.svn/file。git 会自动从本地 git 存储库中删除 .svn 文件夹。但是文件夹是 svn 中的一等公民。所以 .svn 文件夹在执行 .svn 时没有被删除git svn dcommit

我最终不得不做

svn del http://mysvnserver/MyRepo/TestData/Root/.svn -m "Remove .svn folder"

单独删除该文件夹。之后我就可以svn co正常使用了。

问题解决了。

于 2013-07-11T19:27:13.200 回答