你如何为你的项目进行版本控制?

14

我知道微软在版本控制中使用以下格式:主版本号.次版本号.生成号.修订号。

当“开发人员”想要展示软件有大幅度的变化并且无法保证向后兼容时,主版本号会被更改。这可能是对代码进行了重大的改写。

次版本号代表着显著的增强,旨在保持向后兼容性。

生成号表示小的变化,例如对同一源代码的重新编译。

修订号用于修复安全漏洞,应该完全可互换。生成号和修订号都是可选的。这些信息基于MSDN Version Class

您是如何为自己的项目进行版本控制的?您采用这种方式的原因是什么?

12个回答

7

在我工作的地方,我们通常使用主版本号.次版本号[.维护版本号[.构建版本号]]的格式,但似乎每个项目略有不同。

主/次版本号与你提到的相同。维护版本号会因小型(错误)修复而增加,构建版本号会在每次构建服务器运行时增加。


4
我个人喜欢使用一种方案,重点关注项目/产品用户可以期望的向后兼容性级别:
1.0 之前:
0.0.1 = 首个发布
0.-.X = 向后兼容更新
0.X.0 = 不兼容的更新
1.0 之后:
-.-.X = 没有界面更改的更新
-.X.0 = 具有向后兼容界面添加的更新
X.0.0 = 不兼容的更新
以兼容性为版本号的中心点,使用户更容易判断是否可以期望平稳且安全的升级,特别是如果产品是一个库。

自从我写下这个答案以来,话题已经进入了语义化版本控制的范畴:http://semver.org/ - Chris Vest

2

我经常看到Xyz,其中X是发布号后的年份,yz是该年份的月份。例如,201表示发布后的第2年的1月份。例如,产品在五月份发布,其第一个发布号为105。次年二月份发布的版本为202。


2

通常我们根据当前的发布日期(YYYY.MM.DD.*)对项目进行版本控制,并让构建号自动生成。例如,如果我们今天发布了一个版本,它将是2008.9.26.BUILD。


1

我使用major.minor.point.revision的版本号,其中point表示仅修复bug的发布版本,revision表示代码库的版本。这种方式简单易用且效果良好。


1

我只使用主版本号和次版本号。由于我是一个单独的开发者(偶尔会得到帮助),在开发一个大多数人并不关心小修复的 Web 应用程序时,我只需在添加新功能时迭代次要版本,并在进行重大更改/升级时使用主版本号。否则,对于版本号来说,我会忽略小修复(尽管如果需要自己参考,我会有 Subversion 修订号)。


1

我经常处理许多较小的项目,我个人发现这很有用。

PatchNumber.DateMonthYear

这是用于小型基于Web的工具,用户可以查看最后更新时间和更新频率。

PatchNumber是发布的版本数量,其余部分用于向用户展示发布日期。


1

主版本.次版本.补丁.构建 其中补丁是热修复或补丁发布。

如果您可以让QA参与并使用SVN,则可以将svn HEAD修订版作为构建号。这样,每个构建都描述了它来自源代码控制的位置以及构建中包含的内容。这意味着您将拥有具有间隔的构建(1.0.0.1、1.0.0.34...)


1

Major.Minor.BugFix.SVNRevision

例如:3.5.2.31578

  • SVN版本号可以让你确定代码是否已经发送给客户端,确保修复了bug。
  • 它还有助于在应用程序出现错误时找到正确的PDB文件。只需在构建服务器上匹配SVN版本号,将PDB文件复制到EXE位置,打开调试器,即可获得崩溃堆栈跟踪。

0

我只有一个数字。第一版是001。第二版的第三个测试版是002b3,以此类推。这只是为了个人使用,目前我实际上没有任何“发布”的东西,所以这都是理论。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接