svn externals not working

2019-07-14 05:29发布

问题:

I don't claim to know anything about svn, but I thought I understood how externals work.

I'm making a new project and i want my lib folder to have an external to some other project (svn location). I've done this plenty of times before and never had an issue, am I just having a Friday moment?

  1. I created the following folders:

    /myproj

    /myproj/lib

    under a folder already checked out.

  2. I svn added and committed them, then updated the parent folder to make sure everything was good.

  3. I right clicked -> tortoise -> properties on the lib folder and added my svn external to the path I want (which definitely exists): "MyExternalFolderName http://path.to/svn/location"
  4. i committed the lib folder
  5. when i update the lib folder, usually id expect to see it update the external, but nothing happens. it just says "completed."

What have I forgotten?

Edit: countless reboots, recheckouts and reinstalled have not fixed it.

回答1:

There is a known bug in TortoiseSVN 1.6.1 where the depth of a newly added folder is set to "empty".

This results in update not working, unless you explicitly update the problematic folder once with the "TortoiseSVN - Update to Revision..." dialog where you can set the depth back to "fully recursive".

edit: TortoiseSVN 1.6.2 has just been released



回答2:

I don't think you have forgotten anything. I think this is a bug in Tortoise; maybe a caching issue.

Do a clean checkout of your repository and it will start working after that.



回答3:

number 3:

the property format is:

http://repo/svn/location    MyExternalFolderName

I always advise to use the ^ symbol instead of http://repo/svn because that is a lot easier, works well and is a lot easier to type.



回答4:

Thanks for your help but it looks like TortoiseSVN-1.6.1.16129-win32-svn-1.6.1 is bugged. Great. Their tigris site is also down. Brilliant. 2.5 hours wasted.

Worked around it by making the folder structure and externals i need through the repro browser.



回答5:

If you are using Sparse Directory checkout (custom selection of files), try following command:

svn update --depth=infinity svn_dir_name

If you don't have command line tools available try

TortoiseSVN -> Update to revision... -> Update Depth = Fully recursive, Make depth sticky = turn off

More details here.