Ste*_*ini 5 svn version-control bazaar
在svn领域长时间露营之后,我开始使用集市.我之前也有过使用cvs的经验,偶尔也会使用标签.
使用svn,一旦发布版本,就可以将trunk的svn副本执行到标记中,例如svn copy trunk tags/1.2.0.在集市中我创建了相同的存储库结构,但缺少bzr复制选项和bzr标记的存在让我思考.
事实是,我发现标签要么难以使用,要么无用.如果我使用标签,我基本上将我的主干作为唯一目录,当我达到里程碑时,我会标记它.然后,当达到新的里程碑时,我会继续开发和标记.这使以下任务复杂化:
因此,我在bzr中使用相同的svn repo结构,并且每次都执行主干的物理副本.这意味着在这种安排中我没有看到任何真正使用bzr标记命令.为什么我应该用版本号标记整个repo修订版,如果它包含每个版本的所有修订版?
有谁能请指出我在使用和理解bzr回购标签时做错了什么?
编辑
因此,据我所知,每个版本都有不同的bzr分支(独立分支,来自主干通过bzr分支).它就像svn,只是你没有把根目录放在存储库中.我还是没有真正看到标签的任何特殊原因,除了事实,如果你说foo-1.0.0 foo-1.0.1 foo-2.0.0 foo-2.1.0 trunk
假设我总是在分支之前标记版本,trunk将为所有这些版本添加标签,而foo-2.0.0在其标签中将包含foo-1.0.0,但不包括foo-1.0.1,因为它是从foo-1.0分支的0.0.
我仍然没有真正看到拥有和使用标签的必要性.我的标签隐含在我为该分支选择的目录名中.我对特定版本号并不感兴趣,我只是对它进入特定目录感兴趣.
vez*_*ult 12
什么是bzr中的标签?
标签只是一个易于记忆的特定修订手柄.您可以参考您的标记david@hrcsb.org-20090420170402-eql4vzvcifkz4fwy,而不是尝试记住或修改19721:
bzr export -r tag:foo-1.0.0.0 release-foo-1.0.0.0.tar.gz trunk/
Run Code Online (Sandbox Code Playgroud)
我如何管理bzr中的版本?
听起来好像你将你的版本视为单独的开发线(又名:分支),所以我建议你标记你的主干,这样你就知道从哪里分支并创建单独的发布分支:
bzr tag -r 1234 -d trunk/ foo-1.0.0.0
bzr branch -r 1234 trunk/ release-1.x
Run Code Online (Sandbox Code Playgroud)
当您为1.x版本执行错误修正时,可以在release-1.x分支中执行它们,标记每个版本:
bzr tag -r 1255 -d release-1.x/ foo-1.0.0.1
bzr export -r tag:foo-1.0.0.1 release-foo-1.0.0.1.tar.gz release-1.x/
Run Code Online (Sandbox Code Playgroud)
您的目录结构可能如下所示:
fooproj/
release-1.x/
release-2.x/
trunk/
Run Code Online (Sandbox Code Playgroud)
好吧,基本上,你不应该尝试复制SVN目录结构.我不知道为什么SVN会这样,但基本上标签只是bzr存储库中某个时间点的标记.当你想对标签进行差异化时,可以这样做
bzr diff -r tag:TAG_NAME
Run Code Online (Sandbox Code Playgroud)
所以每当你发布一个版本时,只需标记它并在你的路上.没有什么特别的东西可以将东西移到特定文件夹或任何东西
我建议你开始使用单独的分支而不是标签来表示你想要回到的东西,比如代码的2.0.x行,所以你有2.0.x的分支,然后是2.0的标签其中.0和2.0.1.
另外,请查看http://bazaar-vcs.org/Specs/Tagging
| 归档时间: |
|
| 查看次数: |
2429 次 |
| 最近记录: |