Subversion状态符号“〜”是什么意思?
当我执行一个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
任何想法是什么意思? 似乎无法find它在谷歌或任何svn作弊表。
有趣的是,我只编辑main.m,但是有很多修改过的文件。 不知道为什么会这样。 任何人有任何使用SVN和XCode的技巧? 我应该只将我的源文件在版本控制下?
编辑: – 由已经在版本控制下的文件replace为另一种types的文件。 在这种情况下,strings.pbxstrings曾经是一个文件,现在成为一个目录。 故事的道德是不要把你的build立文件夹进入版本控制。
SVN书说:
Item被作为一种对象(文件,目录,链接)进行版本化,但被不同types的对象所取代。
所以也许它最初是一个单一的文件,但你把它改为一个目录,或者沿着这些线?
这是我做的:
如果该文件夹是testing
- mv Test Test1
- svn删除testing
- mv Test1testing
从
svn help status
'〜'版本的项目被某种不同types的项目所阻挡
我只看到这个文件权限已经改变,svn没有执行访问,我相信。
希望这可以帮助。
解决这个问题的最简单的方法是备份,然后删除具有这种状态的文件夹或文件,然后执行“svn up”:它不一定是一个被文件replace的文件夹,可能只是.svn文件夹丢失或损坏。
当您删除文件夹中的.svn文件夹(例如删除目录,然后再次创build相同的目录)时,或者用符号链接或具有相同名称的文件replace目录时,可能会发生这种情况。
假设它是一个名为“文件夹”的文件夹,可以通过在父文件夹中发出以下命令来解决此问题:
$ 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添加/删除和再次提交更改的问题
svn delete --keep-local x svn commit -m "del x" svn add x svn commit -m "blah"
有类似的问题,SVN抱怨锁。 以下是我们所做的:
- 备份文件
- 使用rm -r(linux)删除相关目录
- 冉svn清理目录
- 冉svn up – 强制在目录上
我只是想分享一下,这是在Joomla中安装扩展时经常遇到的问题。 扩展程序通过CMS安装,由apache拥有,无需编写任何组。 一般来说,下一步是将文件添加到SVN,但是如果你没有sudo或者更改文件权限,那么当SVN不能写入.svn目录时,SVN会失败。 这是简单的解决scheme。
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
这也可能是Windows下的符号链接的问题。 当你提交到SVN的符号链接,然后在Windows下检查出来,链接被改为常规文件,这也被报告为〜。
我经常在升级(例如)Joomla!,Wordpress或Drupal下的模块时有这个function。 有时。升级过程中会删除.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"
~ versioned item obstructed by some item of a different kind Second column: Modifications of a file's or directory's properties