这又将是一篇水文
三大金刚
规范化之前,需要了解SVN的三大支柱目录:Trunk、Branches、Tags 它们共同构成了版本控制的三大支柱。
Trunk:主干线
Trunk是SVN中的主开发线,通常包含了项目的主代码库。所有的开发活动,包括新功能开发、Bug修复等,都围绕着Trunk进行。在SVN中,Trunk通常被命名为“trunk”或者“main”。
Branches:分支线
Branches是从Trunk中分离出来的独立开发线,用于进行并行开发、功能测试、发布准备等。当需要在Trunk之外进行特定的开发工作时,可以创建一个或多个Branches。例如,为了修复一个严重的Bug,可以在Trunk上创建一个Branch,然后在这个Branch上进行Bug修复工作,而不影响Trunk上的其他开发工作。
在SVN中,创建Branch非常简单,只需要通过命令或者图形化界面,将Trunk上的代码复制一份到新的Branch中即可。需要注意的是,Branch并不是Trunk的副本,而是指向Trunk的一个引用。这意味着,在Branch上所做的修改并不会影响到Trunk,反之亦然。
Tags:标记
Tags是SVN中的版本标记,用于标识项目的某个重要阶段或者发布版本。与Trunk和Branches不同,Tags通常是只读的,不允许在上面进行任何修改。一旦一个版本被打上了Tag,就表示这个版本的代码已经经过了严格的测试和验证,可以作为发布版本或者备份使用。
在SVN中,创建Tag也非常简单,只需要通过命令或者图形化界面,将需要标记的版本复制一份到Tags目录下即可。与Branches类似,Tag也不是一个独立的代码库,而是指向某个版本的引用。
Trunk、Branches和Tags的关系与应用
在SVN中,Trunk、Branches和Tags之间有着紧密的联系和协作关系。Trunk作为主开发线,是项目开发的核心;Branches用于进行并行开发和测试,保证Trunk的稳定性和连续性;Tags则用于标识项目的重要阶段和发布版本,为项目的发布和管理提供了便利。
在实际开发中,我们可以根据项目的需要,灵活地运用Trunk、Branches和Tags。例如,在项目初期,我们可以将所有开发工作都集中在Trunk上;随着项目的推进,我们可以根据需求创建多个Branches,进行并行开发和测试;当项目达到某个重要阶段或者准备发布时,我们可以为这个版本打上Tag,以便后续的管理和发布。
迁移
一般在svn服务器上创建三大目录;本地的TortoiseSVN 创建新仓库时,会自动创建这三大目录,在本地这三大目录一般不检出,而是单独检出某一分支来开发。
使用 svn mkdir 命令,直接在服务器上创建目录。
# -m 后面是提交信息
# {svn服务器仓库}:仓库URL,一般以svn://开头
svn mkdir {svn服务器仓库}/trunk -m "Create trunk directory"
svn mkdir {svn服务器仓库}/branches -m "Create branches directory"
svn mkdir {svn服务器仓库}/tags -m "Create tags directory"将现有项目文件移动到 trunk 目录
第一个传递现有目录,第二个传递目标目录,进行拷贝(速度会很快)。
svn move {svn服务器仓库}/ProjectSettings {svn服务器仓库}/trunk/ProjectSettings -m "Move ProjectSettings to trunk"
# ... 对你项目根目录下的所有文件和文件夹重复此操作 ...操作完以上的,可以直接更新仓库,不过一搬单独映射某一分支进行开发,svn switch 将本地工作副本指向新的 trunk 目录。
svn switch {svn服务器仓库}/branches/your-branch-name #检出某一分支
#或者
svn switch {svn服务器仓库}/branches/trunk #检出主分支强制切换:这个选项告诉 SVN:“我知道它们没有共同的祖先,但我已经确认过了,我清楚自己在做什么,请你强制进行切换。”
svn switch --ignore-ancestry {svn服务器仓库}C/trunk
评论