代码之家  ›  专栏  ›  技术社区  ›  James S

如何建立公共SVN存储库的私有分支?

svn
  •  5
  • James S  · 技术社区  · 15 年前

    我想创建一个公共SVN存储库的私有分支。

    通过这个,我的意思是有一个公共的开源(codeplex)存储库,我需要对它进行自己的定制更改。这些更改不会被重新接受到树中。我想:

    • 签入我对自己的源代码管理所做的更改,以便保存它们并对其进行版本控制。
    • 保留一些与原始的链接,这样我就可以轻松地合并“官方”更改。

    我知道Git可以做到这一点,但我不知道如何用SVN做到这一点。

    如果不可能,我该如何做上面的一些方面——比如在我的存储库中完全接管代码,并保留一个“干净”的官方目录树副本,在那里我可以轻松地区分这两个目录树?

    谢谢, 詹姆斯

    8 回复  |  直到 15 年前
        1
  •  9
  •   Stephen C. Steel    15 年前

    此问题的最佳解决方案是 Version Control with Subversion 在本节中 vendor branches . 使用svn export命令将外部svn宿主项目的快照作为供应商放置转储到本地svn工作区。

        2
  •  5
  •   Gordon Childs    15 年前

    谷歌Git SVN。对我来说效果很好。

        3
  •  1
  •   sbi    15 年前

    您可以导出要从中分支的修订,将其导入到您自己的存储库中,然后进行相应的工作。稍后,您可以将原始导入的修订版和头部之间的差异合并到主repo中。

    是的,这是一根拐杖。你为什么不试试Git Svn?

        4
  •  1
  •   Avdi    15 年前

    你不能。我看到这个问题有两种不同的解决方法:

    1. 使用带有SVN集成的DVC,如BZR SVN或Git SVN。这些集成专门为您希望保留本地分支但仍然能够通过SVN与上游源交互的情况而设计。

    2. 使用 Piston . 活塞自动将供应商源代码树添加到您的项目中,这样您就可以进行自己的更改,并定期从源报告中提取和合并更新。

        5
  •  1
  •   Alex Martelli    15 年前

    一个可以帮助的工具是 svnsync (尽管如其他人所建议的那样转移到DVC中可能更可取)。

        6
  •  1
  •   Steven Lyons    15 年前

    正如其他人所说,使用与Subversion一起工作的分布式版本系统可能是最好的选择。Git的另一种选择是 Mercurial 其中之一 options ,hgsubversion或hgsvn。这确实是两者之间的个人选择,但是如果你是一个经常颠覆的用户,那么Mercurial可能更可取。它有一个类似于Subversion的命令行,如果您在Windows上,则为TortoiseHg,类似于TortoiseSvn。

        7
  •  0
  •   basszero    15 年前

    我想你已经两次回答了你自己的问题。

    使用DVC或保留一份干净的副本并合并到您自己的SVN报告中。

        8
  •  0
  •   liori    15 年前

    另一个工具是 tailor ( http://wiki.darcs.net/Tailor )它可以在多种重新定位类型之间移动更改。如果您习惯于进行Subversion,那么您甚至可以使用来自上游的更改和您的私有更改来创建本地SVN服务器,并在本地服务器发生更改时使用CodePlex的更改来更新它们。