svn - 如何将变更集从 hg 存储库导出到 svn 存储库

标签 svn git mercurial

我知道 mercurial 有 hgsubversion 扩展。但在我知道它是如何工作之前,我维护了两个独立的存储库,一个是 SVN 存储库,一个是 Hg 存储库。我最近在 Hg 存储库中进行了大部分更改,我需要将它们“推送”到 svn 存储库。

最直接的方法是从 svn 获取一个与 hg 同步的修订。

从那里,我更新到下一个修订版(从 Hg),然后提交它(到 svn)。对许多变更集重复这些步骤是相当不方便的。有没有更方便的方法来做到这一点?

如果可能,提供适用于 Windows 操作系统的解决方案。

问候,

非洲

最佳答案

如果您谈论的是线性系列的变更集(无 merge ),您可以使用 shell for 循环

for therev in $(seq $(hg id -n -r .) $(hg id -n -r tip)) ; do
  hg update $therev
  svn commit -m "$(hg log --template '{desc}' -r .)"
done

从 check out 修订到提示循环,并依次提交每个修订并保留提交消息。您可能需要在添加/删除文件方面做一些花哨的事情。

关于svn - 如何将变更集从 hg 存储库导出到 svn 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817702/

相关文章:

svn - 将 Subversion Server 从 1.7 升级到 1.8

ios - SmartSVN:如何从主干分支出工作副本

java - 有没有办法只对 VCS 中有更改的文件运行 checkstyle?

git - 如何重写 git 历史以匹配流行的 git 工作流程

java - JGit 中的子树推送

python - 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

mercurial - Mercurial 更新失败时如何使 Jenkins 构建失败

svn - Tortoise SVN - 将整个项目移动到文件夹

git - 使用 git 从谷歌代码克隆一个颠覆项目

version-control - 在 mercurial 中 merge 书签