Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

svn: clean way to replace external with local folder of same name

I have a repository checked out in various places. I have a folder X that is an external to another repository. I want X to be local. There are other questions but they don't seem to have run into my difficulties.

What I did is I edited the svn:externals and removed that line. Then I commited the repo. Then I took the folder, removed all the .svn entries in it (to make it a regular folder), and svn added it, then commited. This worked fine.

However, when I updated another checkout of the repo, I ran into problems. The first error was something like:

UUID mismatch: existing directory XXX was checked out from a different repository.

Ok, already svn up fails, but I try deleting the folder and re-updating. Now it manages re-get all of the contents, but now I get a new error:

Can't remove file XXX: Access is denied

I try updating again, and nothing happens. I delete a file within that folder and update again from the root, nothing happens. I delete the folder X, and nothing happens - so it seems to have just forgotten about it! My only recourse is to delete the root directory of X and re-svn up from a level down (since all this was also happening in a sub folder that was also an external).

Not good.. I don't want to have to do some manual rigamarole on all the sites where this repository is checked out. What to do?

like image 591
Claudiu Avatar asked Jan 13 '11 17:01

Claudiu


1 Answers

Maybe not the cleanest solution, but it works:

  • Remove the external folder in you local copy (DO NOT use svn rm folder)
  • Update with the version from the repository
like image 77
Paulo Fidalgo Avatar answered Sep 19 '22 23:09

Paulo Fidalgo