代码之家  ›  专栏  ›  技术社区  ›  Srikar Doddi

是否有一个版本控制系统允许我们管理多个并行版本的代码并在运行时在它们之间切换?

  •  1
  • Srikar Doddi  · 技术社区  · 14 年前

    如果我想首先为已知用户的一个子集启用一个新的功能,是否存在任何自动化的框架系统来实现这一点?

    5 回复  |  直到 14 年前
        1
  •  2
  •   Andrew    14 年前

    也许不直接使用版本控制-您可能有兴趣了解Flickr如何有选择地部署功能: http://code.flickr.com/blog/page/2/

    And this guy talks about implementing something similar in a rails app: http://www.alandelevie.com/2010/05/19/feature-flippers-with-rails/

        2
  •  2
  •   yfeldblum    14 年前

    Most programming languages have if 声明。

        3
  •  0
  •   duffymo    14 年前

    我不知道“在运行时在它们之间切换”是什么意思。通常不会将可执行代码检查到SCM系统中。有一个单独的过程来检查、构建、打包和部署。这就是敏捷技术中持续集成和自动化构建的领域。

    像SBS这样的SCM系统允许你有标签和分支来进行并行开发。你总是可以自由地构建、打包和部署那些你认为合适的东西。

        4
  •  0
  •   Evan Plaice    14 年前

    据我所知没有。

    如果你想要一个有多个版本的版本控制系统,你可以在它们之间切换。查找您喜欢的SCM并查找分支。

    您可以使用命令行编写应用程序来更改SCM中的版本。

    要在运行时执行此操作,该功能必须是应用程序本身的一部分。

        5
  •  0
  •   zebediah49    14 年前

    这不是技术上的“运行时”,但它看起来是这样的。

    您的第一个其他选项是动态加载代码,但这非常依赖于语言,您需要指定。

    另一种方法是在工作的代码库中永久保存这两种代码(如果是完全复制的话,代码库的大小会翻一番),并在运行时切换。通过使用在两个分支之间共享的对象以及条件编译之类的东西,可以为两个目标使用相同的源文件,从而节省大量空间。