在我的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: '548b9bb4b24bc580ab8694c583b28013', actual: '8b2b3cf4615de3d8520ae4841b3b0a8b'
答案 0 :(得分:34)
这是错误。
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of : '/home/.../exampleFileCorrupted.cpp'
....
为我平稳工作的明确解决方案:
注意: 将您的文件复制到SVN环境之外的其他文件中。
cp exampleFileCorrupted.cpp ~/Desktop/
然后按照以下说明:
svn rm --force exampleFileCorrupted.cpp
您将看到:D exampleFileCorrupted.cpp
使用以下内容复制您在中的SVN文件夹中的第1点之前保存的文件:
cp ~/Desktop/exampleFileCorrupted.cpp .
(不要错过最后一点,这意味着在这里复制')
使用svn add exampleFileCorrupted.cpp
您将看到:exampleFileCorrupted.cpp
提交更改:svn commit -m "Commit Message"
如果这有帮助,请告诉我。
答案 1 :(得分:16)
这对我有用:
svn rm --keep-local THE_CORRUPTED_FILE
svn add THE_CORRUPTED_FILE
svn ci
此致
答案 2 :(得分:15)
只需单独进行新的结帐,然后将您在旧工作副本中所做的更改复制到新的工作副本中。
答案 3 :(得分:15)
答案 4 :(得分:7)
对于较新的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
您可以使用https://gist.github.com/siddhadev/5814802处的bash脚本来修复它。 它将用一个新的文件替换损坏的svn-base文件。
答案 5 :(得分:3)
@siddhadev脚本应该适用于那些喜欢手动执行的人:
lastworkingrev.txt
sha1sum lastworkingrev.txt
find . -name "SHA1_CHECKSUM.svn-base"
查找subversion pristine文件,并使用lastworkingrev.txt
答案 6 :(得分:2)
我遇到了同样的问题但以前的答案都没有帮助。就我而言,Subversion存储库版本为1.6,但我允许IntelliJ在版本1.7中签出。除了" svn:E200014:基本校验和不匹配之外,没有任何版本不匹配的迹象"错误。 只需使用正确的版本检出新树即可解决问题。
答案 7 :(得分:0)
做一个SVN清理小组 - >清理。
答案 8 :(得分:0)
使用https://github.com/jasperlee108/svndumpfilterIN
过滤转储后出现此问题已修复删除md5校验和...
sed -i '/Text-copy-source-md5/d' eias_only.dmp
然而,可能会有一些后果......
答案 9 :(得分:0)
删除现有副本并重新检查您的问题将得到解决。
答案 10 :(得分:0)
我尝试了以上所有内容,清理无效。 SVN建议我签出一份新副本。但是这个项目太大了,我改变了太多的代码,比较会花费很多时间。 这是我解决问题的方法,每次更改都保留。
答案 11 :(得分:0)
我已经学会了不相信我的工作目录受版本控制。当我准备提交时,我会执行递归diff并将更改复制到签出目录中。这样,如果SVN窒息,我所做的只是rm -Rf结账并进行新的结账,然后重复复制命令。
我没有来这里寻找解决方案。我来找这个片状行为的原因并没有发现任何东西。即使我是唯一一个使用分支并从命令行执行所有操作的人,也是如此,我比Eclipse或任何其他界面更信任。