113

当我执行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 曾经是一个文件,现在变成了一个目录。故事的寓意是不要将您的构建文件夹放入版本控制中。

4

11 回答 11

88

SVN 书说:

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

所以也许它最初是一个文件,但是你把它改成了一个目录,或者类似的东西?

于 2009-05-12T15:38:08.157 回答
34

这是我所做的:

如果文件夹是测试

  1. mv 测试测试1
  2. svn 删除测试
  3. mv Test1 测试
于 2011-11-09T06:13:12.953 回答
15

svn help status

'~' 版本化的项目被不同类型的项目阻碍

我只看到文件权限已更改且 svn 对它没有执行访问权限的地方,我相信。

希望这可以帮助。

于 2009-05-12T15:39:58.560 回答
13
svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"
于 2013-06-06T13:09:48.197 回答
12

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

于 2009-09-04T16:33:07.040 回答
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 添加/删除并再次提交更改的问题

于 2010-12-30T01:06:55.527 回答
3

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

  • 备份了文件
  • 使用 rm -r (linux) 删除了有问题的目录
  • 在目录上运行svn cleanup
  • 在目录上运行svn up --force
于 2012-01-04T22:03:19.193 回答
3

我只想分享这是在 Joomla 中安装扩展时经常遇到的问题。扩展是通过 CMS 安装的,并且归 apache 所有,没有组写入。通常下一步是将文件添加到 SVN,但如果您不 sudo 或更改文件权限,则 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
于 2012-05-24T20:49:15.337 回答
2

这也可能是 Windows 下的符号链接问题。当您将符号链接提交到 SVN 并在 Windows 下检查它时,链接将更改为常规文件,这也报告为 ~。

于 2009-11-09T14:58:11.477 回答
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"
于 2016-05-17T10:25:57.747 回答
0
~ versioned item obstructed by some item of a different kind
    Second column: Modifications of a file's or directory's properties
于 2013-07-08T10:19:30.120 回答