What does the Subversion status symbol "~" mean?

SvnXcodeStatus

Svn Problem Overview


I am getting a tilde symbol when I do an svn status.

Here is the output of the project after editing it in XCode.

svn status
M      build/Currency_Converter.build/Currency_Converter.pbxindex/imports.pbxbtree
M      build/Currency_Converter.build/Currency_Converter.pbxindex/pbxindex.header
M      build/Currency_Converter.build/Currency_Converter.pbxindex/symbols0.pbxsymbols
~      build/Currency_Converter.build/Currency_Converter.pbxindex/strings.pbxstrings
M      main.m
//more changed files

Any idea what that means? Can't seem to find it on google or any of the svn cheat sheets.

Interestingly, I only edited main.m, but there are lots of modified files. I don't know why that would be. Anyone have any tips for working with SVN and XCode? Should I only be putting my source files under version control?

Edit: Caused by a file that was already under version control being replaced by a file of another type. In this case, strings.pbxstrings used to be a file and now became a directory. Moral of the story is don't put your build folder into version control.

Svn Solutions


Solution 1 - Svn

The http://svnbook.red-bean.com/en/1.8/svn.ref.svn.c.status.html">SVN Book says:

> Item is versioned as one kind of object (file, directory, link), but has been replaced by different kind of object.

So perhaps it was originally a single file, but you changed it to a directory, or something along those lines?

Solution 2 - Svn

Here's what i did:

If the folder is Test

  1. mv Test Test1
  2. svn remove Test
  3. mv Test1 Test

Solution 3 - Svn

From

svn help status

'~' versioned item obstructed by some item of a different kind

I have only seen this where the file permissions had changed and svn had no execute access on it I beleive.

Hope this helps.

Solution 4 - Svn

svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"

Solution 5 - Svn

The easiest way to fix this is to backup, then delete the folder or file that has this status and then do "svn up": it's not necessarily a folder relplaced by a file, it might be just that .svn folder is missing or corrupted.

Solution 6 - Svn

This can happen when you remove the .svn folder in a folder (by example when you remove a directory, and then you create the same directory again), or when you replace a directory with a symbolic link, or a file with the same name.

Supposing it's a folder called a-folder, you can fix this by issuing the following commands in the parent folder:

$ find a-folder -type d -name '.svn' -print0 | xargs -0 rm -Rf
$ svn up --force .
svn: Directory 'logs/.svn' containing working copy admin area is missing
$ svn up --force .
E    a-folder
...
Updated to revision n.

And then it's matter of svn adding/removing and commiting the changes again

Solution 7 - Svn

Had a similar issue, SVN was complaining about a lock. Here's what we did:

  • Backed up the files
  • Removed the directory in question with rm -r (linux)
  • Ran svn cleanup on the directory
  • Ran svn up --force on the directory

Solution 8 - Svn

I just want to share that this is an issue frequently encountered when installing extensions within Joomla. The extensions are installed through the CMS and are owned by apache with no group write. Generally the next step is to add the files to the SVN but if you don't sudo or change the file perms, then SVN fails when it can't write the .svn directory. Here's the easy solution.

mv foo foo-bak
svn up foo
svn revert foo

# just for good measure. Foo should not show up in the two following commands.
ls | grep foo
svn st | grep foo

mv foo-bak foo
svn add foo

Solution 9 - Svn

It may be also matter of symbolic links under Windows. When you commit symbolic link into SVN and then check it out under Windows, links are changed to regular files and this is also reported as ~.

Solution 10 - Svn

I often had this while upgrading modules under (eg.) Joomla!, Wordpress or Drupal. Sometimes the .svn directory get removed by the upgrading process.

# rename updated directory
mv foo foo.new

# restore the old directory
svn up foo

# merge / update the old directory with new items
# notice that the above command will preserve the obsolete files
# so you should do a diff -r in order to remove them
cp -r foo.new/* foo

# Add files commit, etc
svn add foo/*
svn delete foo/xx
svn commit -m "updated module"

Solution 11 - Svn

~ versioned item obstructed by some item of a different kind
    Second column: Modifications of a file's or directory's properties

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjergasonView Question on Stackoverflow
Solution 1 - SvnChad BirchView Answer on Stackoverflow
Solution 2 - SvnTuong LeView Answer on Stackoverflow
Solution 3 - Svnuser83632View Answer on Stackoverflow
Solution 4 - SvnsancelotView Answer on Stackoverflow
Solution 5 - SvndeadprogrammerView Answer on Stackoverflow
Solution 6 - SvnJorge MuñozView Answer on Stackoverflow
Solution 7 - SvnM.W. FelkerView Answer on Stackoverflow
Solution 8 - SvnCollin JamesView Answer on Stackoverflow
Solution 9 - SvnzbyszannaView Answer on Stackoverflow
Solution 10 - SvnMarc DruilheView Answer on Stackoverflow
Solution 11 - SvnNanhe KumarView Answer on Stackoverflow