我有一个asp.net/C#应用程序,它使用subversion进行源代码控制。
我的应用程序会自动增加每个构建的AssembleVersion和AssemblyFileVersion,它就像魅力一样,并在站点的管理端显示构建号。
当我们进行部署时,我们会跟踪AssembleVersion和AssemblyFileVersion,但是,当出现问题并且我们需要回滚到某个版本时,我们不知道要在subversion中定位哪个版本。
我的想法很少:
任何帮助和建议将不胜感激
更新 选项“1”实际上是一个愚蠢的想法,因为这意味着每次我构建,所有文件都将被标记为更新,当我提交时,每个文件都将被更新
答案 0 :(得分:4)
答案 1 :(得分:4)
当我构建时,我将该版本号放在任何地方。
我唯一没有把它放进去的是我的咖啡,I take black。
所有这一切都让维护人员一目了然地知道代码来自哪里,无论他们是在查看网页,还是在资源管理器中查看其中一个构建的程序集的属性,或者其他什么
答案 2 :(得分:3)
如果碰巧经常构建标签,那么标签并不是很有用。也许找到一种方法来更新基于svn修订版的Assembly版本?还包括分支名称,因为它们共享修订版。
您应该能够在ASP.NET页面中提取程序集版本,并以页脚或其他方式以编程方式打印它。
答案 3 :(得分:2)
您可以使用AssembleVersion或AssemblyFileVersion标记Subversion主干,无论哪个最有意义。
您还可以跟踪Subversion版本号,就像您在部署时跟踪AssembleVersion和AssemblyFileVersion一样。
答案 4 :(得分:2)
在更新AssemblyVersion
和AssemblyFileVersion
后,将标记应用于源树。
答案 5 :(得分:2)
你可以“分支发布”。在创建发布版本之前,您可以对主干进行分支,然后在新分支上使用发行版本号创建标记。
+ release tag
/
+--------------------- release branch
/
----------+----------------------------------------------------- trunk
这将允许您跟踪SVN中的所有单个版本。它还允许您在可作为补丁发布的发布分支上进行单独的错误修复。然后可以将错误修复合并回主干。
+ + patch release tag
/ /
+-----------------+-+---- release branch
/ | merged fix into trunk...
----------+----------------------------------------------------- trunk
答案 6 :(得分:2)
标签/分支绝对是推荐的方法。
您还可以(或另外)在AssemblyInfo中包含svn修订号。一种方法是使用http://msbuildtasks.tigris.org
中msbuildtasks项目中的AssemblyInfo任务有关详细信息,请访问Google msbuild svn revision assemblyinfo
你可以然后没有标签/分支,因为你总是可以检查特定的修订,和/或从特定的修订创建一个分支。
答案 7 :(得分:0)
另一种选择是使用上次更改的修订版作为您的内部版本号。这意味着每次构建自动标记时。使用hudson / jenkins很容易,因为你有一个环境变量SVN_REVISION。问题是版本号变得非常大,关于1.0.0.20456与1.0.0.20489的走廊讨论是满口的。