制作小写路径并包含在 SVN 转储中

Posted

技术标签:

【中文标题】制作小写路径并包含在 SVN 转储中【英文标题】:Make lowercase path and includes in SVN dump 【发布时间】:2014-04-29 14:09:42 【问题描述】:

我有一个 C++ 项目库,我正在准备从 Windows 到 Linux 的端口。同时我需要通过 svn dump 重新组织存储库。

我想使用 SED 将 svn 转储中的所有文件名和目录设为小写,然后再次重新创建 SVN 存储库。

也许我也可以使用 svn dump 和 SED 将所有 #include "something.h" 设为小写,但在这种情况下我应该忽略校验和。无论如何,我可以通过一些不区分大小写的目录比较工具来比较新存储库和旧存储库的结果。

我应该如何使用 SED 处理 svn dump 以使所有文件名和目录(包括)小写?

我希望它应该是这样的 Can I use Regular expression in svndumpfilter include statement?,但我不太了解 SED 和正则表达式。

转储需要从

....
Node-path: trunk/Something/Anything.cpp
Node-action: add
Node-kind: dir
Prop-content-length: 10
Content-length: 10
PROPS-END
...

...
Node-path: trunk/something/anything.cpp
Node-action: add
Node-kind: dir
Prop-content-length: 10
Content-length: 10
PROPS-END
...

还有属性Node-copyfrom-path,也需要改一下。

【问题讨论】:

请添加一些示例数据和相同的预期输出,以更好地帮助您。 【参考方案1】:

最后,我使用 SED 管理了这项工作。以下示例仅适用于中继:

sed -b -e "s#^\(Node.*path\): \(trunk/.*\)$#\1: \L\2#" repo.dump > repolower.dump

【讨论】:

以上是关于制作小写路径并包含在 SVN 转储中的主要内容,如果未能解决你的问题,请参考以下文章

手动更改后重新计算 SVN 转储中的校验和

svnadmin 只转储文本,没有二进制文件

SVN 转储/重新加载具有历史记录的特定版本

试图读取包含整数的文件并存储在整数向量中,但我不断收到“分段错误(核心转储)”错误

过滤然后将转储的 SVN 存储库转移到 riouxsvn

当我在存储库中丢失一些修订时,如何转储所有 svn 数据?