gpt4 book ai didi

svn - 重命名项目的 Git-svn/hgsubversion 克隆

转载 作者:行者123 更新时间:2023-12-02 05:04:07 25 4
gpt4 key购买 nike

我有一个 SVN 项目,我想克隆到 Git 或 Mercurial。克隆到两个版本控制系统都很好,除了一个主要问题——我总是只得到最后的修订版,没有任何其他历史记录。

我可以清楚地看到问题的根源是最近重命名了SVN项目(重命名是最后一次修改,我唯一设法得到的)。使用 SVN,我可以毫无问题地查看项目背后的所有历史记录。

最奇怪的是,当我使用 git-svn clone 时,我可以看到它经历了无数次修改,据说是导入它们,但最后我仍然只得到一个修改。与 Git 不同的是,Mercurial 是反向工作的,它只采用最后一次修订并通过克隆完成。

此外,需要注意的是,最后一次重命名/移动 SVN 项目并不是唯一的。在此之前至少有两次其他重命名,我确实需要完整的项目历史记录,就像我使用 SVN 看到它一样。

最佳答案

想法

  • 因为不可能用 PEG 修订克隆不存在的 svn-URL

    hg clone http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings@16

    中止:HTTP 错误 404:未找到

即使

svn ls http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings@16
Hello.txt

您可以尝试克隆 repo,使用父 od 重命名目录作为根目录。你会得到很多与兄弟路径无关的变更集,但是(如果重命名是公平的 svn move)我希望,所有有问题的路径的变更集都在 repo 中:你只有干净的历史

  • 拆分与合并

转储 SVN-repo,用 svndumpfilter 将它分成单独的转储(转储每个更改的目录名称),加载转储到单独的 svn-repos,将每个 svn-repo 克隆到自己的 Mercurial repo(repo 不能有超过一个 subversion origin), pull repos to common, 修复历史

关于svn - 重命名项目的 Git-svn/hgsubversion 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com