已经很沮丧...尝试更新/提交/清理 Tortoise SVN 但总是收到有关原始文本丢失的通知。
在 SO 和网络上发现了一些帖子/问题,没有任何帮助:
原始 svn 基础文件丢失- 建议清理原始文件,在我的情况下,它是未找到的“原始文本”。
原始 svn-base 文件丢失-建议使用 smartSVN-单击“修改”->验证管理区域-在我刚刚下载的智能 SVN 中不再存在...
Netbeans和 Svn 中的错误:未找到原始文本 答案...
任何人 - 请帮忙?
已经很沮丧...尝试更新/提交/清理 Tortoise SVN 但总是收到有关原始文本丢失的通知。
在 SO 和网络上发现了一些帖子/问题,没有任何帮助:
原始 svn 基础文件丢失- 建议清理原始文件,在我的情况下,它是未找到的“原始文本”。
原始 svn-base 文件丢失-建议使用 smartSVN-单击“修改”->验证管理区域-在我刚刚下载的智能 SVN 中不再存在...
Netbeans和 Svn 中的错误:未找到原始文本 答案...
任何人 - 请帮忙?
Subversion 工作副本格式不是特别健壮,它时不时地被破坏并不奇怪。发生这种情况时,通常不值得努力修复它。如果svn cleanup
无法应对,最好:
考虑到 Subversion 是一个集中的版本控制系统,您不应该丢失更改列表之外的重要信息,因为其他所有信息都存储在存储库中。
我刚刚遇到了同样的问题。原始文本实际上存在于
.svn/pristine/09/09verylongnamereportedbysvncleanup.svn-base
通过检查它的内容,我可以追踪到
./local/foobar/somefile
另一种方法是直接访问 SVN 数据库:
sqlite3 .svn/wc.db
sqlite> SELECT repos_path FROM nodes WHERE checksum LIKE '%7685df22%';
path/to/the/file/that/got/corrupted
sqlite> .quit
删除文件(将其移动到其他地方,例如将其重命名为“.bak”),在该文件上运行 a svn cleanup
, asvn update
并查看应用先前保存的副本中的任何更改。
有一个简单的方法。对同一数据库/主干进行新的 SVN 结帐。之后转到损坏的数据库/找到 .svn 文件夹。将此文件夹重命名为 .svn_old(在“corrupted_database”目录中使用命令mv corrupted_database/.svn corrupted_database/.svn_old
)
现在转到“fresh_checkout”并找到 .svn 文件夹。使用命令将此文件夹复制到损坏的数据库cp -r fresh_checkout/.svn corrupted_database/
现在做cd corrupted_database; svn up
并检查它的工作。