已经很沮丧...尝试更新/提交/清理 Tortoise SVN 但总是收到有关原始文本丢失的通知。
在SO和网络上发现了一些帖子/问题,没有任何帮助:
原始 svn-base 文件丢失 - 建议清理原始文件,在我的情况下,这是找不到“原始文本”。
原始 svn-base 文件丢失 - 建议使用 smartSVN - 单击“修改”->验证管理区域 - 我刚刚下载的 smart SVN 中不再存在该区域...
还有 Netbeans 和 Svn 中的错误:未找到原始文本 没有答案...
有人请帮忙吗?
我刚刚遇到了同样的问题。原始文本实际上存在于
.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”),对该文件运行
svn cleanup
、svn 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
并检查其工作情况。
我已经在新文件夹中进行了全新的检查,并将丢失的原始文件从那里复制到无法工作的原始副本目录中。看起来工作正常。