由于云同步,TortoiseSVN 丢失了修订版
TortoiseSVN loses a revision due to cloud sync
我有一个基于文件的 SVN 存储库托管在云中。不知何故,我昨天晚些时候设法提交了修订版 5001、5002 和 5003,今天尝试提交 5004……只是让它坚持认为修订版 5001 不存在。我强烈怀疑我的云同步覆盖或删除了文件,但我找不到恢复丢失内容的依据。
很明显,在 repo/db/revs 中,所有高达 5000 的转速都存在,5002 和 5003 也是如此,但缺少 5001。我确切地知道这个 rev 是如何生成的——有什么方法可以从涉及的文件中重新生成它吗?我是否可以创建一个 repo 的副本,回滚到 5000,然后再次提交文件之类的?
更新:以下关于恢复到以前版本(例如 5000)的 TortoiseSVN instructions 不起作用 - 它们导致错误:没有这样的修订版 5001。这些说明建议不要使用 svnadmin/svndumpfilter
...但这看起来是唯一可行的选择。
答案很简单:使用 svnadmin dump
创建存储库的转储。由于转储过程从修订版 1 开始,它转储了所有有效的修订版,然后没有将无效的修订版添加到转储中。然后可以从转储创建一个新的存储库,并重新创建后续更改。
许多其他 svn 选项似乎从 HEAD 版本向后工作,导致它们在这种情况下失败。
我有一个基于文件的 SVN 存储库托管在云中。不知何故,我昨天晚些时候设法提交了修订版 5001、5002 和 5003,今天尝试提交 5004……只是让它坚持认为修订版 5001 不存在。我强烈怀疑我的云同步覆盖或删除了文件,但我找不到恢复丢失内容的依据。
很明显,在 repo/db/revs 中,所有高达 5000 的转速都存在,5002 和 5003 也是如此,但缺少 5001。我确切地知道这个 rev 是如何生成的——有什么方法可以从涉及的文件中重新生成它吗?我是否可以创建一个 repo 的副本,回滚到 5000,然后再次提交文件之类的?
更新:以下关于恢复到以前版本(例如 5000)的 TortoiseSVN instructions 不起作用 - 它们导致错误:没有这样的修订版 5001。这些说明建议不要使用 svnadmin/svndumpfilter
...但这看起来是唯一可行的选择。
答案很简单:使用 svnadmin dump
创建存储库的转储。由于转储过程从修订版 1 开始,它转储了所有有效的修订版,然后没有将无效的修订版添加到转储中。然后可以从转储创建一个新的存储库,并重新创建后续更改。
许多其他 svn 选项似乎从 HEAD 版本向后工作,导致它们在这种情况下失败。