在一个涉及创建新项目并在它们之间移动文件的大型重构之后,我在提交移动的文件夹(及其内容)时遇到了一个大问题。
该文件夹当前显示为已修改(即带有感叹号的红色覆盖)。当我尝试提交它时,我被告知我需要先更新工作副本。
当我尝试更新它时,我得到'目标路径'[位置]'不存在'。令人担忧的是,这是文件夹存在之前我移动它们的位置。它似乎试图从错误的位置更新它们。
所以,我陷入了“无法提交,无法更新”循环,我不知道如何摆脱它。
我认为必须发生的事情是我将包含.svn文件夹的文件夹复制到新位置。 .svn文件夹中的subversion内容仍然认为在与存储库通信时需要与旧位置连接。
有人可以帮忙吗?
由于
大卫
答案 0 :(得分:0)
有时强制更新有效
svn up --force .
在命令行上
答案 1 :(得分:0)
在这种情况下,我通过删除文件夹中的.svn文件夹解决了这个问题。这意味着它们就像Tortoise的新文件夹一样,我能够提交它们。
答案 2 :(得分:0)
将来,当使用Tortoise移动东西时,你应该记住它的most forgotten feature:右键单击 - 拖动。你应该养成使用Tortoise移动版本化文件和文件夹时使用右键单击拖动的习惯,因为右键拖动允许你“svn move”,“svn copy”或“svn add”你的文件/文件夹拖着。与Tortoise(以及所有svn客户端)合作的关键是要记住标准文件系统操作会混淆svn的地狱。您对文件执行的任何操作都必须通过相应的“svn”操作完成,以便svn知道跟踪更改并保留文件/文件夹的历史记录。
如果您在IDE中工作,我建议您使用IDE的svn插件,因为他们倾向于非常好地处理这些问题。在MS土地上,有VisualSVN,在java土地上有Subversive。