2017-02-15 63 views
0

假设在主干中我们有一个具有以下层级的文件夹;中继的分支子文件夹

Code 
    Server Code 
    Client Code 
    Helper Apps 

因此,如果开发人员只需要做一个改变Client Code,是不是不行了他分支只有这个文件夹然后合并主干完成时?

回答

0

是的,这是可能的。在颠覆中有一条规则:“文件夹是文件夹是文件夹”。意思是“trunk”或“branches”或“subfeaturetestspike12”只是颠覆的文件夹。你可以用任何文件夹做任何事情 - 它们没有区别。即使是“标签”也只是一个文件夹。通常你必须做点什么来防止在这里提交。

所以在你的情况下,你只能复制(或分支)客户端代码文件夹,然后再合并。或者创建一个新文件夹,从客户端代码复制一个文件,并且只有一个文件的分支。 Subversion没有什么区别 - 因为一个文件夹是文件夹......等等。合并实质上是从一个分支(文件夹)到另一个分支(文件夹)重复更改

请记住,合并时创建部分分支可能有点危险 - 因为分支没有完全构建整个事物,而只是部分分支。在Apache有一些做法,例如:https://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html

+0

如果我去创建整个树干的分支,将空间问题或SVN只是跟踪文件的变化,并没有一个全新的副本? –

+0

没有空间不是问题。创建分支(或文件夹的副本)时,Subversion会创建懒惰副本。可能每个分支额外增加4 kB。它也非常快,因为它只创建一个新的参考(当然,如果人们检查中继并重新提交到别处:这将创建一个完整的新副本)。 – wemu

+0

感谢您的解释。还有一个问题。因此,如果让我们说我们有一个文件夹代码,并且其中有两个文件夹助手应用程序和客户端代码,是否建议/可以接受为每个文件夹创建中继和分支文件夹,即助手应用程序和客户端代码? –