创建分支时,选择以下内容有什么含义?
从以下位置在存储库中创建副本:
答案 0 :(得分:4)
简而言之:
根据创建分支的目的,您通常会选择前两个选项之一。第三种选择可能不太常用。
如果您想为特定目的进行一些探索性开发,或者您想开始为特定客户或其他东西创建不同版本,您可以从HEAD分支。如果您需要修补以前发布的软件版本,您可以从过去分支。
答案 1 :(得分:1)
存储库中的HEAD修订 SVN使用最高编号的版本,以及最后上传的版本。
对存储库进行特定修订 您可以选择您想要的修订版本。
工作副本 像它一样的修订版现在在你的本地工作空间中(没有投入)。
答案 2 :(得分:1)
HEAD将使分支成为存储库的最新提交版本的副本。
特定修订将导致分支在存储库的特定时间点成为副本。
工作副本会根据您的工作副本的最新版本创建一个分支,然后同时承诺所有“正在进行”的更改。
编辑: 选择工作副本的示例。
您使用最新版本的主干更新您的工作副本,以开始进行一些小的更改。
几小时后你意识到这份工作比你预期的要大,你应该创建一个分支。
此时从工作副本创建分支,然后有效地创建分支,就像您在开始时一样。
答案 3 :(得分:1)
如果您的目录结构如下所示......
您的中继网址为:http://example.com/repos/project/trunk
,您可以:
从HEAD创建一个名为beta
的新分支,如下所示:
svn copy http://example.com/repos/project/trunk http://example.com/repos/project/branches/beta
这将立即在存储库中创建新分支,并且不会对您的本地副本执行任何操作。
从旧版本 n 创建一个名为ancient
的新分支,如下所示:
svn copy -r n http://example.com/repos/project/trunk http://example.com/repos/project/branches/ancient
这与 1 完全相同,但使用的是特定版本。
从本地副本创建一个名为alpha
的分支,假设您当前的目录为trunk
:
cd ../
svn cp trunk branches/alpha
这将生成您请求的副本,但会在本地执行。根据SVN的书,这是不鼓励的,因为它比在存储库服务器上复制(复制操作基本上是免费的)需要更长的时间。
当您输入svn help copy
:
警告:为了与以前版本的Subversion兼容, 使用两个工作拷贝路径(WC-> WC)执行的拷贝不会 联系存储库。因此,默认情况下,它们可能不会 传播来自副本源的合并跟踪信息 到目的地。
根据我的经验,通常使用 1 。 2 用于某些罕见的情况,涉及早期分支的复杂补丁, 3 永远不会有用(根据文档,速度慢且可能很危险)。所以坚持使用 1 ,除非你有令人信服的理由使用其他两个中的一个。