如何修复SVN';工作副本文本库已损坏';?
在对我的svn回购协议进行了多次愉快的承诺之后,这段关系突然变坏了……svn翻了翻盖子,大喊:“工作副本文本库已损坏!” 这是什么原因造成的?我怎么修理它如何修复SVN';工作副本文本库已损坏';?,svn,repository,Svn,Repository,在对我的svn回购协议进行了多次愉快的承诺之后,这段关系突然变坏了……svn翻了翻盖子,大喊:“工作副本文本库已损坏!” 这是什么原因造成的?我怎么修理它 Working copy text base is corrupt svn: Commit failed (details follow): svn: Checksum mismatch for '~/blah/.svn/text- base/sumonet.py.svn-base'; expected: '548b9bb4b24bc580
Working copy text base is corrupt
svn: Commit failed (details follow):
svn: Checksum mismatch for '~/blah/.svn/text- base/sumonet.py.svn-base'; expected: '548b9bb4b24bc580ab8694c583b28013', actual: '8b2b3cf4615de3d8520ae4841b3b0a8b'
只需进行单独的新签出,并将您在旧工作副本中所做的更改复制到新副本中 对于较新的subversion版本,没有
.svn/text base/
目录。.svn
存储在工作根目录下的.svn/pristine
下,错误消息如下所示:
Sending README
Transmitting file data .svn: E155017: Commit failed (details follow):
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of '/home/user/tmp/svntest/README':
expected: 1f9167bc01e5bc9bfcb928ff03d6700a
actual: e0a1692ff5cab91e3e3a0d02dabe0251
svn: E200003: Delta source ended unexpectedly
您可以通过在上使用bash脚本来修复它。
它将用新的svn基文件替换损坏的svn基文件
@siddhadev脚本应该可以工作,但对于那些喜欢手动执行的人:
lastworkingrev.txt
sha1sum lastworkingrev.txt
Find查找subversion原始文件-命名“SHA1_CHECKSUM.svn base”
并用lastworkingrev.txt的内容覆盖它
执行SVN清理小组->清理。这就是错误所在
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of : '/home/.../exampleFileCorrupted.cpp'
....
对我有效的清晰解决方案:
注意:将您的文件复制到SVN环境之外的其他文件中。
cp exampleFileCorrupted.cpp ~/Desktop/
然后如下所示:
cp~/Desktop/examplefilecorrude.cpp.
svn添加示例文件损坏。cpp
您将看到:一个示例filecorrupted.cppsvn提交-m“提交消息”
让我知道这是否有用 我也有同样的问题,但之前的答案都没有帮助。在我的例子中,Subversion存储库的版本是1.6,但我已经允许IntelliJ在1.7版签出。除“svn:E200014:基本校验和不匹配”错误外,没有显示版本不匹配只需检查具有正确版本的新树即可解决此问题。在使用筛选我的转储后出现此问题
cp exampleFileCorrupted.cpp ~/Desktop/
修复了删除md5校验和
sed-i'/Text-copy-source-md5/d'eias_only.dmp
但是,可能会有一些后果…删除现有副本并重新检查您的问题将得到解决 这对我很有用:
svn rm --keep-local THE_CORRUPTED_FILE
svn add THE_CORRUPTED_FILE
svn ci
我尝试了上面的一切,清理不起作用。SVN建议我签出一份新的副本。但是这个项目太大了,我修改了太多的代码,比较会花费很多时间。 这是我解决问题的方法,每一次改变都是如此
我学会了不相信我的工作目录处于版本控制之下。当我准备提交时,我执行递归diff并将更改复制到签出目录中。这样,如果SVN阻塞,我所做的就是rm-Rf签出并执行新签出,然后重复copy命令
我不是来找解决办法的。我来找这种古怪行为的原因,却一无所获。即使我是唯一使用分支并从命令行执行所有操作的人,这种情况也会发生,我比Eclipse或任何其他界面更信任命令行。这种情况使我想离开svn,转到mercurial或git。签出新副本,然后覆盖损坏的文件(*.svn base)我刚刚签出的一个也能工作。如果你有很多更改的文件,你可以从旧的工作拷贝/备份位置rsync:rsync-av--delete-during--exclude.svn。这就是为什么我把svn留在后面,改成git的原因。对于大型回购或许多更改来说,这太过分了。您所要做的就是复制受影响的文件,然后svn--强制删除受影响的文件,提交,svn添加副本,提交,完成。请参阅其他响应以了解具体步骤。这并没有为我解决问题,我必须替换subversion pristine文件。(参见my和@siddhadev答案)这是唯一对我有效的解决方案。“我试过其他的,但都没有用。”迈克尔·利金斯说,这是一个严重的错误。我只认真使用过环绕和TFS,它们似乎都比SVN好。对我不起作用。恢复有问题的文件并提交工作。但是,一旦我复制回有问题的文件并再次尝试提交,就会再次抛出相同的错误。@Tanayamitsah如果这是文本文件,则可以尝试仅复制文件的内容(ctrl+c、ctrl+v)或在命令行中,只需“svn cleanup”。不幸的是,这并没有解决我的问题:(我已重命名文件夹中的文件,然后单击“更新”按钮(因此,从SVN中删除了该文件),然后重新命名并提交该文件,就像提交一个新文件一样。在我的情况下,这种情况是由防病毒程序的假阳性导致的,该程序会自动删除一个“受感染的”文件我已经编译了可执行文件.Upvote,因为这是一个有效的解决方案,显然比排名更高的任何一个答案都要好。因为这样的问题,不得不吹走一个回购目录并重新开始,这很烦人,所以