Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用svn时解决此问题?_Svn_Zend Studio - Fatal编程技术网

如何在使用svn时解决此问题?

如何在使用svn时解决此问题?,svn,zend-studio,Svn,Zend Studio,我实际上是在IDE:zend studio中玩这个,它嵌入了svn工具,但我认为eclipse应该是一样的,甚至svn工具本身也是一样的 假设svn中有一个目录a,请执行以下操作以复制: 将A重命名为A2(在IDE之外),然后在IDE中刷新A,它就会消失 刷新IDE中名为P的A2的父目录,然后出现A2 将A2重命名回A,然后刷新P,它报告:刷新所选资源时出现问题:A2/.svn[in]不存在 现在如何解决这个问题?这实际上不是SVN应该如何工作的。对SVN中包含的目录结构、文件等的更改必须通过I

我实际上是在IDE:zend studio中玩这个,它嵌入了svn工具,但我认为eclipse应该是一样的,甚至svn工具本身也是一样的

假设svn中有一个目录a,请执行以下操作以复制:

  • A重命名为A2(在IDE之外),然后在IDE中刷新A,它就会消失
  • 刷新IDE中名为PA2的父目录,然后出现A2
  • A2重命名回A,然后刷新P,它报告:
    刷新所选资源时出现问题:A2/.svn[in]不存在

  • 现在如何解决这个问题?

    这实际上不是SVN应该如何工作的。对SVN中包含的目录结构、文件等的更改必须通过IDE或其他支持SVN的应用程序完成,而不是在文件系统本身上完成(即通过Windows资源管理器)


    SVN实际上跟踪其文件系统的更改,当您使用SVN“控制器”时,会导致整个事情不同步。

    Josh是正确的。在SVN存储库中移动或重命名文件时,必须使用SVN来执行此操作,这是绝对必要的
    Svn move
    Svn rename
    (后者是前者的别名)的语法非常简单。陆龟VN也支持该操作。通过这种方式,下次其他用户尝试执行SVN操作时,程序将看到存储库已更改。如果在结构更改时不告诉存储库,您会像这样混淆它

    要解决此问题,我将:

  • 查看您的存储库的全新副本
  • 将文件夹(A或A2)从存储库中复制出来以保存数据
  • Svn删除
    A或A2
  • Svn提交
  • 将A或A2复制回存储库
  • Svn添加
    A或A2
  • Svn提交

  • 当它不同步时,我如何手动恢复?我尝试用存储库替换,但仍然不起作用…因为svn可以恢复文件系统中的所有信息,我想可能有一种解决方案可以通过修改一些文件来修复它?我不知道。我从不直接处理.svn目录或存储库。我认为尝试这样做太冒险了。我肯定有办法,但是编辑.vn文件夹中的文件是不可能的。它们只是文本文件,与您大部分签出的版本相同。另一方面,存储库有很多校验和。编辑可能会使SVN认为存储库已被篡改,不可信。您可以尝试删除主文件夹下目录中的所有.svn文件夹,然后尝试更新
    svn
    。我怀疑那会起作用。正如我所说,最好的办法是签出一份新的副本,然后从损坏的副本中复制所需的文件。“修复”是从一些好的方面开始的。但是项目太大,无法完全签出…是否可以只重新签出其中的一部分?您可以尝试只签出P.或P的父项。关键是要从一个新的文件夹结构开始,你知道SVN认为它很好。对于现有的repo,P的.svn认为A2是一个未版本化的文件夹,但A2的.svn认为它仍然是一个。因此,根据您运行svn命令的上下文,最终会得到不同的结果。在这一点上,您可能已经尝试了几种方法来“修复”问题,因此您的签出不一致,因此不可靠。你不能仅仅解决现有结帐中的问题,因为你对SVN撒了太多谎。扔掉它。