手动更改后重新计算 SVN 转储中的校验和
Posted
技术标签:
【中文标题】手动更改后重新计算 SVN 转储中的校验和【英文标题】:Recalculate checksum in SVN dump after manual changes 【发布时间】:2010-10-07 23:00:14 【问题描述】:当我们将项目迁移到公共源托管时,我想从 SVN 存储库中删除一些“个人”信息。到目前为止,我在使用 svndumptool
和 svndumpfilter
删除路径或修订方面做得很好。但是,我也想从存储库中的特定文件中删除一些文本。
我通过对转储进行正则表达式手动删除了文本,效果很好,但是当我想使用转储时,我得到校验和不匹配。这显然是因为我更改了文件但没有更新校验和。
是否有任何工具可以重新计算转储中文件的校验和?或者在 svn 转储中是否有一个好的文件编辑工具(应该允许正则表达式替换)也更新校验和?
【问题讨论】:
简单路径:完全删除文件,重新插入为新副本。 你的意思是把它作为一个新版本添加到最后?不过,我想保持历史完整。 您也可以简单地运行sed '/Text-content-md5/d' dumpfile.txt | svnadmin load repo
来删除所需修订的校验和检查。
【参考方案1】:
好的,我不想等待更长时间的答案,所以我自己写了一个脚本,我将与你分享。它使用SvnDumpTool,或者更确切地说是它的库。要执行自定义操作,您需要编辑源代码(并且了解一点 Python)。包括一个简单的例子,我认为脚本提供的抽象非常好。
无论如何,希望它对你和我一样有用,尽管我花了很长时间才让它像这样工作:
SvnDumpToolEdit.py 在 Github 上。
【讨论】:
以上是关于手动更改后重新计算 SVN 转储中的校验和的主要内容,如果未能解决你的问题,请参考以下文章