gpt4 book ai didi

svn - 将代码与两个Subversion存储库同步

转载 作者:行者123 更新时间:2023-12-04 04:01:42 26 4
gpt4 key购买 nike

首先介绍一下背景知识:

  • 我正在使用远程SVN存储库中的“基本”代码,而不是在我的控制之下。该代码还没有被标记,所以我总是需要跟上主干。
  • 出于多种原因(最重要的是,我们对代码的本地扩展具有“小众”的本性,并旨在解决使用该代码的项目中的特定问题),我无法使用远程存储库以对我在本地所做的任何修改进行版本控制。
  • 我有一个本地SVN存储库,当前正在其中进行“本地”版本控制。

  • 我面临的问题:我不知道是否存在一种使代码同时与两个存储库同步的好方法。也就是说,我想保留“远程”版本信息(以便我可以在将来的更改中合并),但是我也想同时拥有“本地”版本信息(即,在同一目录结构中) 。

    目前,我正在使用两个不同的目录来执行此操作,这两个目录都包含相同的代码,但是每个目录都包含不同的版本信息。显然,这是相当大的开销,特别是因为两个目录中的代码需要独立同步。

    有没有办法在Subversion中做到这一点?或您对解决此问题的替代方法有何建议?

    最佳答案

    我使用git svn进行了此操作,并在git存储库中完成了开发工作。远程开发是在subversion中完成的。我制作了一个Subversion版本库的git svn克隆,并将其推送到一个真正的git版本库。一个cronjob一次又一次运行“git svn rebase && git push”,以创建Subversion存储库的git镜像。

    为了合并Subversion更改,我在本地git副本中有2个远程对象-“本地开发”源和“from subversion镜像”源。每当需要时,我都可以将更改从Subversion镜像合并到我们的开发树中。本地更改不受影响,它们分开存在并且不会弄乱svn镜像。

    我使用gitosis设置和管理git存储库。步骤将是这样的(从内存中,可能是错误的):

    # set up the mirror
    git svn clone -s $SVN
    git remote add origin git@$MACHINE:svnmirror.git
    git push
    # + cron job to do git svn rebase && git push every N hours/minutes

    # set up the local working copy for development
    git clone git://$MACHINE/svnmirror.git
    # that's an anonymous, read only clone
    # no push to the svn mirror for developers - only cronjob user can push there
    git remote add newproject git@$MACHINE:myproject.git
    git push newproject
    # now do the real deal
    git clone git://$MACHINE/myproject.git
    # hack hack hack
    git push # origin master not needed
    git remote add svnmirror git://$MACHINE/svnmirror.git
    git merge svnmirror/master
    git push

    关于svn - 将代码与两个Subversion存储库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/320759/

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