无法使用Tortoise提交文件夹

时间:2010-07-21 15:19:11

标签: svn tortoisesvn commit

在一个涉及创建新项目并在它们之间移动文件的大型重构之后,我在提交移动的文件夹(及其内容)时遇到了一个大问题。

该文件夹当前显示为已修改(即带有感叹号的红色覆盖)。当我尝试提交它时,我被告知我需要先更新工作副本。

当我尝试更新它时,我得到'目标路径'[位置]'不存在'。令人担忧的是,这是文件夹存在之前我移动它们的位置。它似乎试图从错误的位置更新它们。

所以,我陷入了“无法提交,无法更新”循环,我不知道如何摆脱它。

我认为必须发生的事情是我将包含.svn文件夹的文件夹复制到新位置。 .svn文件夹中的subversion内容仍然认为在与存储库通信时需要与旧位置连接。

有人可以帮忙吗?

由于

大卫

3 个答案:

答案 0 :(得分:0)

有时强制更新有效

svn up --force .

在命令行上

答案 1 :(得分:0)

在这种情况下,我通过删除文件夹中的.svn文件夹解决了这个问题。这意味着它们就像Tortoise的新文件夹一样,我能够提交它们。

答案 2 :(得分:0)

很高兴你能解决这个问题。我猜你删除“.svn”文件夹后必须再次“删除”该文件夹。这有一个令人遗憾的副作用,即吹走这些档案的历史。

将来,当使用Tortoise移动东西时,你应该记住它的most forgotten feature:右键单击 - 拖动。你应该养成使用Tortoise移动版本化文件和文件夹时使用右键单击拖动的习惯,因为右键拖动允许你“svn move”,“svn copy”或“svn add”你的文件/文件夹拖着。与Tortoise(以及所有svn客户端)合作的关键是要记住标准文件系统操作会混淆svn的地狱。您对文件执行的任何操作都必须通过相应的“svn”操作完成,以便svn知道跟踪更改并保留文件/文件夹的历史记录。

如果您在IDE中工作,我建议您使用IDE的svn插件,因为他们倾向于非常好地处理这些问题。在MS土地上,有VisualSVN,在java土地上有Subversive