Subversion状态符号“〜”是什么意思?

时间:2009-05-12 15:36:50

标签: svn xcode status

当我执行svn status时,我会得到一个波形符号。

这是在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

知道这意味着什么吗?似乎无法在谷歌或任何svn备忘单上找到它。

有趣的是,我只编辑了main.m,但是有很多修改过的文件。不知道为什么会这样。任何人有任何使用SVN和XCode的技巧?我应该只将我的源文件置于版本控制之下吗?

编辑 - 由已在版本控制下的文件替换为其他类型的文件引起的。在这种情况下,strings.pbxstrings曾经是一个文件,现在变成了一个目录。故事的道德是不要将您的构建文件夹置于版本控制中。

11 个答案:

答案 0 :(得分:87)

SVN Book说:

  

项目被版本化为一种对象(文件,目录,链接),但已被不同类型的对象替换。

所以也许它最初是一个单独的文件,但你把它改成了一个目录,或者沿着这些行的东西?

答案 1 :(得分:34)

这就是我所做的:

如果文件夹是Test

  1. mv Test Test1
  2. svn删除测试
  3. mv Test1 Test

答案 2 :(得分:15)

svn help status

'〜'版本化的项目受到某种不同类型项目的阻碍

我只看到过这样的文件权限已经改变,而且svn上没有执行访问权限。我很相信。

希望这有帮助。

答案 3 :(得分:12)

解决此问题的最简单方法是备份,然后删除具有此状态的文件夹或文件,然后执行“svn up”:它不一定是文件替换的文件夹,可能只是.svn文件夹是丢失或损坏。

答案 4 :(得分:12)

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

答案 5 :(得分:10)

当您删除文件夹中的.svn文件夹时(例如,当您删除目录,然后再次创建相同的目录时),或者使用符号链接或带有文件的文件替换目录时,可能会发生这种情况。同名。

假设它是一个名为a-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.

然后是svn添加/删除并再次提交更改的问题

答案 6 :(得分:3)

有一个类似的问题,SVN抱怨锁定。这就是我们所做的:

  • 备份文件
  • 使用rm -r(linux)
  • 删除了相关目录
  • 目录
  • 上的 svn cleanup
  • 目录中 svn up --force

答案 7 :(得分:3)

我只是想分享一下,这是在Joomla中安装扩展时经常遇到的问题。扩展通过CMS安装,由apache拥有,没有组写。通常,下一步是将文件添加到SVN,但如果不sudo或更改文件perms,则SVN在无法写入.svn目录时失败。这是简单的解决方案。

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

答案 8 :(得分:2)

Windows下的符号链接也可能存在问题。当您将符号链接提交到SVN然后在Windows下检查时,链接将更改为常规文件,这也会报告为〜。

答案 9 :(得分:2)

我在升级模块(例如Joomla!,Wordpress或Drupal)时经常这样做。有时,.svn目录会被升级过程删除。

# 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"

答案 10 :(得分:0)

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