Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SVN External Folders and Files show up as 'non-versioned'

I am an SVN noob that has been given the job of investigating some issues with our SVN externals in a project.

Using TortoiseSVN I have made my way to the root directory of the project and selected 'commit'. After wating a couple of hours (it is a really big project) I have noticed that many of the directories which are pulled into the project as externals are listed as non-versioned, regardless of whether or not the Show externals from different repositories box is selected.

Extra Info

  • I am not using svn:ignore on the directories.
  • Only some of the svn:external directories are effected by this issue, not all of them.
  • The folders/files that I am talking about were put there using svn:externals in the format of '[relative path in the repository] [Directory]' Then pulled into the project using svn:update.

Why is this happening?

like image 696
StevenP Avatar asked Nov 30 '25 20:11

StevenP


1 Answers

Solution

The problem is caused by introducing new directories to store svn:externals that are not part of any project or external in the working copy.

For example: say I have project ProA that contains directories dirB and dirC. I also have another project called ProD, which I want to add as an External to ProA's *dirC* folder within a subdirectory named 'Externals'.

I check out ProA and on its svn:externals property I add ProD to the directory ProA/DirB/Externals/ProD

Because the folder 'Externals' exists in neither project, after I update ProA, and the externals are added, ProA/DirB/Externals/ProD is an unversioned directory!

Fix To fix this, all that needs to be done is make sure the 'Externals' folder is part of either ProA or ProD ! I.e Committing the 'Externals' directory alone, solves the problem.

like image 151
StevenP Avatar answered Dec 03 '25 14:12

StevenP



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!