当我尝试从Subversion更新一些文件时,我收到错误:
org.tigris.subversion.javahl.ClientException:
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'
为什么我会这样?我该如何解决?
答案 0 :(得分:186)
如果您使用的是SVN 1.7+,则会有here所述的解决方法。
回顾一下:
svn update --set-depth empty
(注意:这会删除你的文件,所以先复制一份!)svn update --set-depth infinity
答案 1 :(得分:65)
修复它的最简单方法(如果没有很多更改)是将更改复制到另一个目录,删除项目签出的目录,然后再次签出项目。
然后将您的更改复制回来(不要复制任何.svn文件夹)并提交,然后继续。
答案 2 :(得分:6)
我有一个类似的问题。主要提供商是防病毒“FortiClient”(防病毒+ VPN CLient)。当我禁用它时 - 所有更新/结帐都是正确的
答案 3 :(得分:5)
我找到了一种更简单的方法来解决这个问题。 你不能直接从eclipse做到这一点。 步骤进行:
这将恢复.svn文件夹中的文本基本文件夹。更新错误时校验和不匹配将不会再出现。
答案 4 :(得分:1)
这发生在我使用Eclipse插件和同步。导致问题的文件没有本地更改(实际上自上次更新以来没有远程更改)。我为文件选择了“revert”,没有对文件进行其他修改,事情恢复正常。
答案 5 :(得分:1)
我有一个相同的错误但是对于一个文件。在IntelliJ IDEA中,我能够制作文件的副本,然后进入项目并删除有问题的文件,然后成功提交。然后,我创建了一个具有相同名称的新文件,并将内容复制回其中。我想你会失去修订历史,但确实有效。
答案 6 :(得分:1)
我找到了非常好的解决方案,已解决我的问题。诀窍是编辑svn DB(wc.db)。
我使用了来自http://sqlitebrowser.org/的sqlite工具。
答案 7 :(得分:1)
在使用此页面中的所有解决方案后,我正在使用Tortoise SVN,
我终于备份了问题文件。并使用
render() {
return (
<div>
{this.renderTableContent()}
</div>
);
}
renderTableContent() {
return(
<div>
<ul className="session__table">
{this.renderActiveSessionContent()}
{this.renderTableButton()}
</ul>
</div>
);
}
renderActiveSessionContent() {
if (this.state.activeSessions) {
this.state.activeSessions.map((session) => {
return(
<div>
<li className="sessionsharing__table__name">{session.UserName}</li>
<li className="sessionsharing__table__application">{session.DisplayName}</li>
<li className="sessionsharing__table__status">{session.Status}</li>
</div>
);
}
);
}
}
renderTableButton() {
return(
<div>
<li className="session__table__button">
<input type="button" className="session__button" onClick={this.JoinButton.bind(this)} value = "Text" />
</li>
</div>
);
}
删除其中的问题文件,然后更新本地文件夹,以便删除本地文件夹中的文件。然后复制回备份文件和Repo Browser
,然后我就可以成功更新了。
此方法的唯一缺点是将删除此文件的历史记录。
答案 8 :(得分:0)
要解决此问题,请按以下步骤操作:
如果仍然无效。试试这些。它只是一个解决方法:
这将从存储库获取最新版本的文件,所有冲突都将得到解决。
答案 9 :(得分:0)
在服务器上有一个类似的问题,但SVN目录非常大,不想删除和重新同步所以我只是在本地制作了一份文件,然后将其删除。更新成功并重新添加文件。
答案 10 :(得分:0)
尝试删除文件并从.svn目录下的文件条目中删除文件引用
答案 11 :(得分:0)
我遇到了类似的错误并修改如下:
(我的修复&#39;是基于一个可能或可能不正确的假设,因为我不太了解颠覆如何在内部工作,但它绝对适用于我)
我假设.svn \ text-base \ import.php.svn-base应该与最新的提交匹配。
当我检查文件时出现错误时,基本文件与存储库中的最新提交不匹配。
我复制了最新提交中的文本并将其保存在.svn文件夹中,替换了不正确的文件(如果我的假设错误,则制作备份副本)。 (文件被标记为只读,我清除了该标志,覆盖并将其设置回只读)
然后我能够成功提交。
答案 12 :(得分:0)
如果您有同事与您合作:
1)请他重命名导致问题的文件commit
2)您update
(现在您看到的文件名称无效,校验和无效)
3)将其重命名为原始名称
4)commit
(并请同事update
以初始状态取回文件名)
这解决了我的问题。
答案 13 :(得分:0)
我的解决方案是:
答案 14 :(得分:0)
1。&#39;更新回复&#39;只检查此项&#39;在目录下 2.update再次检查&#39;完全递归&#39;