如何恢复被另一个文件替换的文件的 SVN 历史记录?
How to recover SVN history of a file which is replaced with another one?
我已经搜索过这个问题并找到了 question 但我找不到任何合适的解决方案。
我正在使用 PhpStorm 开发一个在 SVN 下的项目。
我用另一个文件替换了一个文件,如下所示:
- 复制文件:file.php、file1.php;
- 重命名文件:file.php -> file0.php、file1.php -> file.php;
- 提交 file.php(新文件);
现在我看不到这个文件替换前的历史了。
有什么方法可以恢复SVN中的文件历史或者恢复到之前的状态?
我刚刚执行了您提到的所有步骤,当我 运行 svn log file.php
或 svn log file0.php
时,我看到了所有历史记录。问题是您很可能没有使用 SVN 命令,或者您在没有使用 SVN 客户端的情况下删除或替换了文件。
使用正确的 svn copy
和 svn rename
命令,您将看到复制或重命名操作之前的所有历史记录。
我找到了一种可能的解决方案:
如果项目在运行组中,那么我们需要找到组中没有更新丢失文件的人,因此,有丢失文件的未更新版本。
这个未更新的文件包含我们丢失了它的 SVN 历史的主文件的所有历史。
因此,我们可以使用新代码提交这个未更新的文件,所有历史记录将再次出现在 SVN 中。
我已经搜索过这个问题并找到了 question 但我找不到任何合适的解决方案。 我正在使用 PhpStorm 开发一个在 SVN 下的项目。 我用另一个文件替换了一个文件,如下所示:
- 复制文件:file.php、file1.php;
- 重命名文件:file.php -> file0.php、file1.php -> file.php;
- 提交 file.php(新文件);
现在我看不到这个文件替换前的历史了。
有什么方法可以恢复SVN中的文件历史或者恢复到之前的状态?
我刚刚执行了您提到的所有步骤,当我 运行 svn log file.php
或 svn log file0.php
时,我看到了所有历史记录。问题是您很可能没有使用 SVN 命令,或者您在没有使用 SVN 客户端的情况下删除或替换了文件。
使用正确的 svn copy
和 svn rename
命令,您将看到复制或重命名操作之前的所有历史记录。
我找到了一种可能的解决方案:
如果项目在运行组中,那么我们需要找到组中没有更新丢失文件的人,因此,有丢失文件的未更新版本。
这个未更新的文件包含我们丢失了它的 SVN 历史的主文件的所有历史。
因此,我们可以使用新代码提交这个未更新的文件,所有历史记录将再次出现在 SVN 中。