Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

svn

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!

like image 703
Sam McAfee Avatar asked Jun 25 '09 15:06

Sam McAfee


People also ask

What are svn externals?

What are externals definitions? Externals definitions map a local directory to the URL of a versioned resource. The svn:externals property can be set on any versioned directory and its value is a multi-line table of subdirectories and absolute repository URLs.

How do I delete a local svn repository?

Right click the any folder and choose TortoiseSVN -> Repo Browser. Then point to your local repository in the URL field. Once open you could be able to browse the repo, and with a right click, delete the folder.

How remove checked out folder from svn?

Use TortoiseSVN → Delete to remove files or folders from Subversion. When you TortoiseSVN → Delete a file or folder, it is removed from your working copy immediately as well as being marked for deletion in the repository on next commit.

How do I view svn externals?

If you need to see all svn:externals in a directory structure, this is your huckleberry: svn propget -R svn:externals . Logging this here for my own future reference.


1 Answers

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.

like image 127
jason Avatar answered Sep 18 '22 15:09

jason