如何修复SVN"工作副本文本库已损坏"?

Nie*_*Wet 31 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: '548b9bb4b24bc580ab8694c583b28013', actual: '8b2b3cf4615de3d8520ae4841b3b0a8b'
Run Code Online (Sandbox Code Playgroud)

kal*_*ger 36

这是错误.

svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of : '/home/.../exampleFileCorrupted.cpp'
....
Run Code Online (Sandbox Code Playgroud)

为我平稳工作的清晰解决方案:

注意: 将文件复制到SVN环境之外的其他文件中.

cp exampleFileCorrupted.cpp ~/Desktop/
Run Code Online (Sandbox Code Playgroud)

然后按照以下说明

  1. cd到您有损坏文件的路径 (后面指示的文件:文本库的校验和不匹配)
  2. svn rm --force exampleFileCorrupted.cpp

    您将看到:D exampleFileCorrupted.cpp

  3. 将您保存的文件复制到您所在的SVN文件夹中的第1点之前:

    cp ~/Desktop/exampleFileCorrupted.cpp .

(不要错过最后一点,这意味着'复制在这里')

  1. 添加到svn:svn add exampleFileCorrupted.cpp

    您将看到:exampleFileCorrupted.cpp

  2. 提交更改:svn commit -m "Commit Message"

如果这有帮助,请告诉我.

  • Upvote因为这是有效的,并且比任何更高排名的答案明显更好.由于这样的问题,不得不吹掉一个repo目录并重新开始是令人讨厌的,所以接受的答案实际上是一个糟糕的"解决方案".所以这个答案更好,你最终只有一个提交,就好像什么都没有出错一样. (2认同)

gec*_*kos 19

这对我有用:

svn rm --keep-local THE_CORRUPTED_FILE
svn add THE_CORRUPTED_FILE
svn ci
Run Code Online (Sandbox Code Playgroud)

问候,

  • 简单有效,应该是最佳答案 (4认同)

小智 16

  1. 在其他地方复制有问题的文件,
  2. 删除并提交存储库中的文件,
  3. 将您的文件复制到SVN并提交


khm*_*ise 15

只需进行单独的新结账,然后将您在旧工作副本中所做的更改复制到新工作副本中.

  • 这种事情让我想要抛弃svn并转向mercurial或git. (33认同)
  • 检查一个新的副本,然后用我刚签出的文件覆盖损坏的文件(*.svn-base). (5认同)
  • 对于一个大型回购或许多变化来说,这太过分了.您所要做的就是复制受影响的文件,然后svn --force删除受影响的文件,提交,svn添加副本,提交,完成.有关确切步骤,请参阅其他回复 (3认同)

sid*_*dev 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
Run Code Online (Sandbox Code Playgroud)

您可以使用https://gist.github.com/siddhadev/5814802上的bash脚本来修复它.它将用一个新的文件替换损坏的svn-base文件.