SVN拉分支

本文介绍了如何在SVN中创建和管理Branches与Tags,详细讲述了使用TortoiseSVN和Intellij IDEA进行拉取分支的操作步骤,强调了两者在版本控制系统中的作用和区别,并提供了相关参考资料。

之前使用github时候,感觉使用git拉分支非常简单。今天在公司使用SVN拉分支,有些懵逼啦。参考该博文如何在Intellij IDEA中拉SVN分支成功在Intellij IDEA中完成了SVN的分支创建。

关于SVN中的Branches与Tags概述


在版本控制的系统中,我们经常需要对开发周期中的单独生命线作单独的修改,这条单独的开发生命线就可以称为Branches即分支。分支经常用于添加新的功能以及产品发布后的bug修复等,这样可以不影响主要的产品开发线以及避免编译错误等。当我们添加的新功能完成后可以将其合并到主干中。

而Tags即标签主要用于项目开发中的里程碑,比如开发到一定阶段可以单独一个版本作为发布等,它往往代表一个可以固定的完整的版本,这根VSS中的Tag大致相同。

SVN中的Branches以及Tags经常容易混淆,因为在TortoiseSVN中创建方法是一致的,而且它们都是通过存储类似Linux中的lunch快捷方式一样,只是创建了指向某个版本的链接,而不会真正将此版本的内容复制到分支或者标签中,这样既可以节省空间,也可以很快速的创建。

为了便于创建分支和标签,我们习惯于将Repository版本库的结构布置为:/branches,/tags,/trunk。分别代表分支,标签以及主干。还有一点值得注意的是,SVN不推荐在创建的Tag基础上Revision,这种情况应用Branches,因为Tag一般保持不变不作任何修改。

使用TortoiseSVN拉分支


创建Branch分支或者Tag标签

推荐结构:

  • Test

    • branches
    • tags
    • trunk

      1. 首先将项目checkout到本地,然后选中该项目文件夹,点击右键选中【TortoiseSVN】-【Branch/tag】
      2. 在Copy(Branch/Tag)面板上,修改To path路径,建议只需将/trunk/修改成/branches/即可,并选中【Switch working Copy to New branch/tag】

操作完成后,返现本地的trunk文件夹的SVN属性的URL已经被Switch到创建的版本的地址上了。

对比trunk和branches下的文件,你可以发现代码一模一样。

修改分支和使用合并Merge功能

在branches分支下,开发新的功能,然后SVN commit提交代码。然后可以切换到trunk下,你会发现内容没有变化。这说明在分支中的修改不会影响到主干上。在branch分支代码上选择【TortoiseSVN】-【Merge】-【Merge a range of revisions】

使用Intellij IDEA中拉分支


  1. 在你trunk目录下,有一个你需要创建分支的releases项目
  2. 使用IDEA导入该项目,点击项目右键找到【Subversion】-【Branch or Tag】
  3. 在Create Branch or Tag面板上,填写拷贝信息【Copy From】。【Copy From】有两个选择
    • Working Copy: 本地拷贝
    • Repository Location: 远程拷贝(SVN上拷贝)
  4. 在Create Branch or Tag面板上, 填写拷贝信息【Copy To】。【Copy To】有两个选择
    • Branch or Tag: 拷贝到SVN上远程分支路径
    • Any Location: 可以拷贝到本地、远程都行
  5. 至此如果不报错的情况下,就代表拉分支成功,接下来找到分支的SVN地址,checkout下来就行啦

参考资料


关于SVN中的Branches与Tags

如何在Intellij IDEA中拉svn分支?

<think>我们正在处理用户关于SVN分支的问题。用户询问:"我想从SVN分支 请问svn checkout branch"。根据提供的引用,我们需要指导用户如何从SVN仓库中检出(checkout)一个分支。 引用[1]提到了对branch执行Commit,然后对trunk和branch都执行SVN Update,以及如何从branch合并到trunk。这说明了分支和主干的操作流程。 引用[2]提到了如何将tags和branches目录排除在svn up列表之外,但这里我们关注的是检出分支。 引用[3]是关于编码问题,如果遇到编码错误可以参考。 用户的需求是检出分支,所以我们需要解释如何使用svn checkout命令来分支。 步骤: 1. 确定分支的URL。在SVN中,通常有一个目录结构,例如: 项目根目录/ trunk/ (主干) branches/(分支) tags/ (标签) 2. 使用svn checkout命令,指定分支的URL到本地目录。 示例命令: svn checkout <分支的URL> [本地目录名] 如果没有指定本地目录名,则会在当前目录创建一个与分支URL最后一部分同名的目录。 例如,如果分支的URL是:http://svn.example.com/svn/myproject/branches/branch1 那么命令可以是: svn checkout http://svn.example.com/svn/myproject/branches/branch1 这会在当前目录下创建一个名为branch1的目录,并将分支的内容检出到该目录。 另外,如果用户已经检出了主干(trunk)或者整个项目,并想切换到分支,可以使用svn switch命令。但用户明确要求的是checkout分支,所以这里我们只介绍checkout。 注意:在检出分支之前,确保你知道分支的准确路径。 如果用户不知道分支的URL,可以使用svn list命令查看: svn list http://svn.example.com/svn/myproject/branches 这样可以看到branches目录下所有的分支。 另外,引用[3]提到编码问题,如果遇到编码错误,可以设置环境变量LC_ALL为UTF-8(如:export LC_ALL=en_US.UTF-8)或者检查本地编码设置。 因此,回答如下:</think>### 从SVN分支的操作指南 要从SVN仓库中检出(checkout)特定分支,需执行以下步骤: 1. **确认分支路径** 在SVN标准结构中,分支通常位于`/branches/`目录下。假设仓库URL为: `http://svn.example.com/svn/repo` 则分支路径可能为: `http://svn.example.com/svn/repo/branches/your_branch_name` 2. **执行检出命令** 在终端或命令行中使用以下语法: ```bash svn checkout http://svn.example.com/svn/repo/branches/your_branch_name ``` 此命令会将分支内容下载到本地当前目录,并创建同名文件夹(如`your_branch_name`)。 3. **指定本地目录(可选)** 若需自定义本地目录名: ```bash svn checkout http://svn.example.com/svn/repo/branches/your_branch_name my_local_folder ``` 4. **处理编码问题(如遇乱码)** 若出现编码错误(常见于中文环境),参考引用[^3]设置环境变量: ```bash export LC_ALL=zh_CN.UTF-8 # 临时解决方案 svn checkout ... ``` 永久方案需修改系统locale配置。 5. **验证检出结果** 进入本地目录并检查SVN状态: ```bash cd your_branch_name svn info # 查看分支URL确认路径正确 ``` > ⚠️ 注意事项: > - 确保您有分支的**读取权限** > - 分支名称需与仓库内完全一致(区分大小写) > - 大型仓库首次检出可能耗时较长[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值