.net - nuget中功能分支的版本控制策略

标签 .net git nuget nuget-package

我们正在构建一个由多个存储库组成的系统。其中一些很常见。该解决方案是使用 .net 技术、nuget 和 jenkin 服务器构建的。

我们计划引入版本控制。所有二进制文件都应具有产品版本,例如 Major.Minor.Patch.Build。

我们将在我们的 CI 服务器上有一个专用的 Nuget 服务器,我们将在其中发布常见项目的内部包。同样,我们将在开发人员的本地计算机上创建一个 nuget 服务器。

这是问题场景:

支持一位开发人员正在处理一个长期运行的功能分支。并且此功能需要跨多个分支(包括公共(public)分支)进行更改。开发人员将为这两个存储库创建功能分支并开始处理它们。

由于我们将有一个构建功能分支的工作(每当完成任何提交或在 CI 服务器上提出 pull 请求时),CI 服务器将在集中式 nuget 服务器上为公共(public)存储库创建一个 nuget 包。

如果生成的 nuget 包具有相同的版本(与之前的版本相同),它将替换现有的包。

所以版本应该不同。我们可以增加以前版本的任何部分,比如构建部分,或者我们可以在版本号的末尾附加 -featureName。应该首选哪一个?

如果我们也在开发机器上做这两件事中的任何一件,开发人员每次在分支之间切换时都必须更改包引​​用。因此,理想情况下,开发机器上生成的包应该替换以前的包。但同样在这种情况下,开发人员在分支之间切换,他将必须确保构建适当的通用包。

请为这种情况提出任何标准解决方案。

感谢 Advnace

最佳答案

我们采用了一个非常简单的解决方案 - 这可能对我不知道的较大团队有一些限制,但这对我们的小团队有效。

将 .nuspec 文件中的版本更改为具有分支名称。例如:

  • 1.0.60-enumfix 这是在 enumfix 分支上
  • 1.0.61-enumfix
  • 1.0.59-新功能
  • 1.0.60-dev 这是我们的开发分支
  • 1.0.60(这是我们的主人)
  • 2.3.80-whocares

你明白了

在 nuget 包管理器中安装包时选中“允许预发布” 如果需要,删除或取消列出 nuget 预发布分支版本。

关于.net - nuget中功能分支的版本控制策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749691/

相关文章:

python - GitPython - 使用 ssh key 克隆 - 主机 key 验证失败

c# - 使用 PrincipalSearcher.FindAll() 时发生内存泄漏

c# - jQuery 是在 C#.net 环境中处理用户交互的最佳方式吗?

git - Git 别名中的管道?

nuget - 使用特定框架版本的NuGet安装软件包

c# - Oracle 数据访问 FileNotFound : Oracle. DataAccess.Common.Configuration.Section.xsd

使用 VSTS 进行 NuGet 自动版本控制

c# - ServiceStack路由设计

c# - sizeof() 等同于引用类型?

git:从镜像树中删除远程分支