简体   繁体   中英

How do I properly remove an svn:externals and replace it with a local (non-external) copy of the same directory?

I realize there are similar questions on this topic, but I still cannot find the answer for my specific case. I have a project that I inherited from another team's repo. We did an "svn switch --relocate" to redirect our checked out copies to our server, instead of theirs. But, they still have an svn:externals for a subdirectory and it still points to one of their other repositories.

How do I properly remove the external and replace it with a local version of that directory? I tried just deleting the external directory and replacing it with local copy and checking it in, but when 'svn up' at the project root, it complains that that directory is "locked". What am I doing wrong?

Oh, and I don't have a lot of gui tools for this installed. I am just doing it on the command line. Thanks!

In the root of your working copy:

svn propedit svn:externals .

You should see a file in your editor of choice that has lines like this:

path/to/extenal http://url/of/repo

If you remove that line, then run a commit/update, it should remove the external definition from that path, and unlock the path.

You may need to run a svn cleanup if it complains.

I came across this problem in order to do it through eclipse you can do the following Go to the root folder where your external is present and right-click Team>Show properties>

you should see a name value pair with name as svn:external and value as the external repository. Right click and you can see remove option which will remove the link.

you might have to do an svn:update or clean up after that .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM