2014-09-25 115 views
0

我一直使用SED(我忘了添加目录排除)意外破坏我的.svn目录,当我尝试更新或提交此得到幸福SVN错误:svn: Checksum mismatch for '.svn/text-base/foo.bar';只更新.svn目录

(开一个侧面说明,我希望svn信任服务器足以忽略本地文本库文件,如果有一个不匹配,而不是刚刚死亡)

我目前的解决方案是结帐到一个不同的目录,然后删除除了.svn使用:sudo find . -type f -not -iwholename "*.svn*" -exec rm -r {} \;然后只是递归地将这些文件cp回原始目录。

是否有反正使用svn来从服务器中取出.svn文件并替换当前的文件,或者我坚持检出,删除,然后粘贴?

+0

复制有关修理你的真正的问题是什么?为什么你一直用sed破坏你的.svn目录?解决这个问题,你不需要担心它。你永远不应该触摸.svn的内容! – Ben 2014-09-26 14:32:13

+0

原因不是编码问题(我知道如何排除目录),这只是我运行sed时一直忘记这么做。通知我说'意外'。 – TheBat 2014-09-26 15:30:21

+0

您使用的是什么版本的SVN?在SVN 1.8下我的工作副本中没有看到.svn/text-base。我尝试在.svn/pristine中破坏一些文件,相反,思考也许“svn cleanup”会修复一些问题,但实际上“svn update”在我的情况下没有错误地工作(尽管无论是更新还是清理都不会将“原始”文件还原到正确的状态)。对于它的价值,.svn/pristine下的文件没有与它们对应的工作副本数据中的文件相匹配的文件扩展名。 – Ben 2014-09-26 20:14:01

回答

0

Is there anyway using svn to just gab the .svn files from the server and replace the current ones

出于同样的WC它可以在某种程度上棘手,但我认为结帐新的空WC(只有.svn它DIR)是可以接受的解决方案。

我为了得到这样的厕所,你必须调用结账与--depth 'empty'参数和产生的.svn文件到破WC

+0

这只是设置结帐深度为0,所以没有一个孩子被下载。我可以用这个来编写一个小脚本来递归地工作,查看http://svnbook.red-bean.com/en/1.7/svn.advanced.sparsedirs.html – TheBat 2014-09-29 16:17:08