我有一个文件(mapViewController.m),它在svn中但我无法对其进行更改。我试图将文件复制到别处,然后更新。该文件没有附带更新,所以我将其复制回来。然后我无法对其进行更改。
这很难解释什么是错的......因为我不知道。
答案 0 :(得分:14)
所有SVN问题的经验法则是当您无法解决问题时,请将新副本签出到新目录(如果可能)
尝试重新结帐,然后替换文件然后提交。
此外,请确保您不必先锁定该文件。
听起来有点像你忘记在文件上做svn add
(或Turotiose SVN - > Add)。 SVN确实识别目录,但不会自动在其中添加文件。您必须首先添加文件(通过您的subversion客户端),然后提交它以将其置于subversion中。
答案 1 :(得分:6)
我遇到了同样的问题。我忘记更新我的工作副本并尝试提交我的更改。 所以,我对该特定文件而不是整个目录进行了更新:
svn update filename
svn commit
它有效。
答案 2 :(得分:1)
听起来你正在做一些根本性的错误。也许您在没有最初检出文件的情况下尝试提交更改,或者您尝试import
而不是commit
。无论如何,我建议您阅读位于here的文档,这将使您很快开始使用SVN。
答案 3 :(得分:1)
我今天遇到了同样的错误,原因是我试图添加一个已存在于服务器上的文件(添加不更新)。我所做的是将我的版本保存到一个不相关的目录,更新到最新的版本,然后使用我在本地保存的那个更改给定的服务器文件,并进行更改。
答案 4 :(得分:0)
我已经解决了改变工作副本深度的类似问题。 我使用TortoiseSVN,有命令:
1)上下文菜单→更新项目到修订版....深度:仅此项目
2)上下文菜单→更新项目到修订版....深度:完全递归
来自存储库的所有文件都来自第二个文件。
答案 5 :(得分:0)
当我从branche X合并时,这个问题很常见 - > Y,
通常对我来说有什么用(来自Eclipse):
- 制作文件/文件夹(A)的副本
- 从工作仓库中删除文件/文件夹
-update
-copy文件/文件夹来自(步骤A)
-Commit。