hum*_*der 13 svn version-control trunk project
有一个(希望很小)关于SVN和检查回购的问题.基本上我看到有关要检查什么以及何时检查的相互矛盾的教程和建议.有些人会说:
svn co http://my.repos.com/project my_project
...而其他人说:
svn co http://my.repos.com/project/trunk my_project
我什么时候想直接抢占整个项目的主干?在过去,我从来没有遇到任何问题,但我不确定是否有一种方式比另一方更好.
最好.
Jer*_*NER 10
通常一个subversion存储库有3个主目录:
Trunk是代码的最新分支.
通常会创建分支,以便开发您在主干中不需要的特定功能.
标签就像后备箱的保存点.
如果您在项目的根目录进行结账,您将获得所有分支,所有标签和主干.这可能会导致大量数据.
例如,如果标记了每个代码版本,您将获得所有过去版本的源代码!
我希望这能帮到您
杰罗姆瓦格纳
关于此,还有其他几点需要注意.
tags
树(和它通常是一个树)中包含的代码在特定时间点的假设不变的快照; 这不是您想要更改的内容,因为大多数部署都将基于标记tags
树中提交更改而不是仅仅复制到树中,则大多数Subversion客户端都会抱怨trunk
是一个特殊情况下的目录branches
; 唯一重要的区别是它预计包含主要的开发路径正如其他人所指出的那样,通常没有理由检查整个项目,因为大多数时候你只在主干和一个或两个分支上工作,整个项目可能占用大量的磁盘空间.主要开发"分支"通常是您唯一需要的东西.
这是一个真实的例子.我们的团队针对主干执行所有代码更改.当我们需要alpha(预先完成)版本时,我们只需标记主干.一旦我们针对给定版本点击"代码完成",我们就会创建一个代码冻结分支,我们会在其中进行所有版本更改.beta,RC和GA版本都是从该分支标记的.如果我们需要修补GA版本,则针对分支完成补丁并合并到主干.这样,如果我们需要修补特定的内容,我们就不必担心新的代码会泄漏到经过测试和批准的GA中.它还允许我们在代码冻结后立即开始处理下一版本的软件.
此外,如果有一个"侧面项目"是主干的带外项目,您可以为其创建一个分支,并在准备好时将其合并.
有些团队喜欢为每个bug创建一个分支,有些团队直接在trunk上工作(就像我的一样).如果你的团队做了每个分支的错误,我永远不会检查整个项目.除此之外,我会看到很多我不关心的代码.
另外,关于存储库管理的一点@humble_coder
- 大多数Subversion工具在分支/标记管理方面都非常容易使用.例如,TortoiseSVN有一个存储库浏览器,允许你很容易地复制东西(创建分支和标签),甚至svn命令行工具可以用来做与原子操作相同的事情(我们实际上有一个脚本创建alpha标签,代码冻结分支或冻结后释放标签).
希望这可以帮助!
归档时间: |
|
查看次数: |
5417 次 |
最近记录: |