首页 文章

SVN在覆盖文件时未检测到更改

提问于
浏览
1

我已经成功地与SVN合作了几个星期但是我最近收到了我正在从我们的供应商处理的代码的更新版本 . 我用更新的文件覆盖了我的本地安装,并期望能够提交更新文件,然后其他人将获得更新版本 . 但是,当我覆盖我的本地文件时,SVN不会检测到文件已更新 . 如果重要,我正在使用Tortoise SVN .

更新:我没有复制更新代码的工作副本(源代码中没有.svn文件夹 . )但是,我注意到文件的最后修改日期比他们替换的日期更旧 - 这会是阻止SVN检测到变化?此外,大多数文件都使用ioncube加密 .

4 回答

  • 0

    本地svn数据位于工作副本的每个目录中(在每个目录下的.svn目录中) . 因此,如果您已将新代码中的目录复制到代码目录(包括子目录)中,则可能还复制了它们的.svn目录 . 这意味着svn无法知道它已被更改 .

    如果要对目录中的代码进行递归替换,则应确保粘贴到现有代码上的代码本身不是工作副本,或者已从.svn目录中删除 . 要获取存储库的非wc副本,您可以使用svn export .

    最新版本的subversion通过仅在wc根目录而不是在所有子目录中存储元数据来解决此问题 .

  • 0

    确保您没有覆盖.svn文件夹 .

    如果删除此文件夹或将其替换为其他文件夹,则会出现一些同步错误和/或svn完整性问题 .

    您可以做的(以及我通常对此类问题所做的事情)是清除项目文件系统中的所有.svn文件夹并重新提交所有内容 .

    请看一下这篇文章:http://thecrumb.com/2008/09/25/removing-svn-files-with-tortoisesvn/

    这一个:http://www.anyexample.com/linux_bsd/bash/recursively_delete__svn_directories.xml

  • 2

    我注意到文件的最后修改日期早于他们替换的日期

    像大多数其他人一样,我怀疑文件没有改变 . 但是,如果他们真的有,那么Subversion detect changes如果你touch文件要更新上次修改日期?

  • 0

    这些步骤帮助我做出承诺 . 为了解决这个问题,他们也可以帮助你 .

    • 在桌面上的空文件夹中签出您的svn存储库文件夹 . C:\Users\ömer\Desktop\SpringWebTest

    • 打开您签出的文件夹,然后选择并复制.svn文件夹并将其粘贴到项目工作区中 . C:\Users\ömer\workspaceLuna\SpringWebTest

    • 现在应该检测到更改,最后将更改提交到svn repository .

相关问题