svn - 使用版本控制使多个代码分支保持最新

标签 svn version-control mercurial branch dvcs

我希望有人能够帮助我更好地理解这种情况下的版本控制。目前我们正在考虑实现 VisualSVN 或 Mercurial,但希望首先弄清楚我们的策略。

我是一个两人开发团队的一员,致力于移植和维护定制的 CMS 系统。我们希望保持一个“稳定”的分支,并且每个分支都根据需要拥有自己的开发分支。

我们不确定每个客户是否需要自己的定制(模板、样式表等)。我希望这些是稳定的分支。理想情况下,我们希望有一种方法来确保对稳定版所做的任何更改(例如将开发分支 merge 回来或添加修补程序)都会推送到客户分支。

  • 有没有办法确保这些客户分支始终自动转发到最新的变更集?

  • 我们是否可以选择在初始分支操作后排除某些文件(例如 *.css)推送到客户端分支?

看到这个,您将能够进入每个客户分支并从稳定中提取, merge 最新的更改。如果我们最终有很多客户分支,是否有更好的方法来做到这一点?

我发现一些问题似乎提供了很好的建议

如果我的观点倒退,我深表歉意,但我们将不胜感激所有建议。

最佳答案

  • Is there a way to ensure that these customer branches always get automatically brought forward to the most recent changeset ?

您可以通过转到分支、从稳定中拉出并 merge 来完成此操作。

  • Can we choose to exclude certain files (such as *.css) from getting pushed to the client branches after the initial branch operation ?

不, merge 时不会排除此类文件。相反,您应该构建您的文件,以便拥有一个基本文件 - 称之为 base.css - 然后你就有 client.css这是一个附加样式表。这样你就可以覆盖 base.css 中的内容在client.css根据需要您将获得最新版本的base.css当您与稳定分支 merge 时。

您通常可以使用同一系统来处理需要根据每个客户端进行更改的其他文件:配置文件和主题。

Looking at this you'd be able to go into each customer branch and pull from stable, merging the latest changes in. In the event that we end up with lots of customer branches, is there a better way to do this ?

不,这就是它的工作原理。当然,您可以编写此脚本以使其更加方便并降低出错的风险。

关于svn - 使用版本控制使多个代码分支保持最新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9097639/

相关文章:

svn - 如何获取按上次更改日期/版本排序的 Subversion 工作区中所有文件的列表?

linux - 在 Linux 和 Mac 的命令行上使用 svn。如何绕过用户名和密码

version-control - 如何从 http ://hub. darcs.net 处的标签分支?

git - 使用git推送到存储库时权限被拒绝

version-control - 是否有在补丁队列之间移动补丁的命令?

mercurial - 如何减小 Mercurial hg store 的大小。 Hg 存储大小超过 5GB,服务器在克隆前超时

android - Tortoise SVN 突然停止显示 "exclamation"图标或 "differences"

svn - Subversion 中的单个文件合并

mercurial - SourceTree HG 失败 - AttributeError : 'NoneType' object has no attribute 'islocalrepo'

mercurial - 如何使用 Mercurial 进行基于变更集的 merge ,而不是基于文件的 merge ?