kakyo
kakyo

Reputation: 11600

svn checkout fail due to a folder named .svn in my tree

My question is similar but different from this one: TortoiseSvn error : the same name as the administrative directory

I use git-svn as client and I had a test data which contains a fake .svn folder in the data tree. This got dcommitt'ed to svn. Now when I try to checkout a fresh working copy using svn co, I got error:

svn: E155000: Failed to add directory '/MyRepo/TestData/Root/.svn': object of the same name as the administrative directory

I've tried to delete that folder and dcommitt'ed again. But it didn't help.

UPDATE

I figured something out.

I was on a feature branch where I removed the .svn folder (only one file under) using:

git rm /MyRepo/TestData/Root/.svn/file
git commit

Then I switched back to my development branch, merged the feature branch in, and finally checked in:

git checkout develop
git merge --squash feature
git commit
git svn dcommit

I'm surprised that this, however, didn't merge in the .svn removal change. I double checked my ~/.gitignore, ~/.gitignore_global, repo's .gitignore. They didn't include .svn, actually that should be irrelevant since my checkin worked for .svn folder all the time.

Can someone explain what happened here???

UPDATE 2

Seems that re-checking in the git rm change from my development branch still doesn't solve the issue. svn co still fails at the same place with the same error.

Upvotes: 0

Views: 775

Answers (1)

kakyo
kakyo

Reputation: 11600

I found the cause and the solution.

The git change had to be the removal of the file .svn/file. git automatically removes the .svn folder from the local git repo. But folders are a first-class citizen in svn. so The .svn folder didn't get removed when doing git svn dcommit.

I ended up having to do

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

to remove that folder separately. After that I can svn co normally.

Problem solved.

Upvotes: 4

Related Questions