Home > 软件应用 > TortoiseSVN branch/tag switch Relocate的区别

TortoiseSVN branch/tag switch Relocate的区别

将之前先明确两个概念,工作副本就是本地的代码的目录,工作目录就是SVN服务器端的与本地工作副本相对应的目录。

Branch/Tag是将当前工作目录保存一个类似快照的东西到版本库,此版本一般是发行版(Release)或者里程碑意义的,它并不会将当前工作副本的改变上传。在TortoiseSVN中Branch/Tag的目录路径需要指令文件夹的名称。branch_tag_hint switch是转换当前工作副本对应的工作目录,一般是从trunk工作目录转向tag工作目录,或者从tag转回来,switch的类似update,将switch的目标工作目录的文件更新到本地,一般会产生很多冲突。

Relocate是当代码仓库的访问路径(服务器的计算机名称修改,或IP地址变更,URL变更),而此时已检出修改的工作副本(working copy)没有变更,若此时直接提交(commit),肯定不能成功,因为此提交地址对应的svn服务器不存在了。TortoiseSVN为我们提供了重定位工作副本的功能(TortoiseSVN → Relocate),此指令扫描.svn文件夹中的所有条目,改变条目的url(服务器地址)为新输入的地址。

重定位操作可能的原因:

a) 服务器的IP地址已更改

b) 协议已更改(比如从http://改为 https://)

c) 版本库在服务器的路径已更改

在TortoiseSVN的帮助说明中说明重定位是极少使用的操作,但对于在本地小型内网开发的,由于重装系统,服务器主机变动,重定位应用还是比较多的。

Categories: 软件应用 Tags: ,
  1. June 6th, 2011 at 08:34 | #1

    也可以这么说,目录也是一个完整的路径,包含变更的服务器地址。只是relocate只对自己本地的工作副本有效,其它人机器上的工作副本还需要relocate一下

  2. fouding
    June 5th, 2011 at 14:33 | #2

    不错的文章。
    一个问题:
    引用:
    “若此时直接提交(commit),肯定不能成功,因为此提交地址对应的svn服务器不存在了。TortoiseSVN为我们提供了重定位工作副本的功能(TortoiseSVN → Relocate)”

    此处是否应为:“提供了重定位工作 目录 的功能”?

  1. No trackbacks yet.