背景是,我基本上是VSS的用户,即视觉源安全。我曾经在那里创建分支,这样:我在VSS中有一个名为0.75的文件夹,即版本号,所有代码文件都驻留在其中。当团队完成0.75的工作时,我创建一个名为0.76的分支(文件夹)并将所有代码从0.75分支到0.76。我还撤销了0.75的所有权限,以便代码被冻结,没有人可以在旧分支中进行更改。所有都开始使用0.76然后。
问题是,我想要在SVN龟中完全相同的解决方案,但我无法做到。这是令人困惑的,因为文件夹" Trunk"包含当前的所有代码,即在我的情况下在0.75文件夹中的代码。我应该在哪个文件夹中创建0.76,即下一个分支,在Trunk,Branch或Tag中?以及如何从0.75文件夹撤销所有团队的权利?
答案 0 :(得分:2)
答案取决于你的目标。当没有trunk
文件夹时,许多Subversion工具会被破坏或需要被告知。它不是一成不变的,但它是一个常见的惯例,就像你对VSS所拥有的一样,每个人都在不断创建新的分支。
在Subversion中,您不需要创建新的文件夹。相反,您始终使用trunk/
。每个人都这样做。没有锁定文件。周期。
新版本准备就绪后,您将trunk
“复制”到branch/0.76
。因此,工作流完全相反:您始终在单个文件夹中工作(并且永远不会撤销权限),该文件夹名为trunk/
。
客户和消费者始终从branches/
获取仅包含稳定版本的最新版本。
现在这可能会导致各种问题。如果您想保留工作流程,我的建议如下:创建另一个顶级文件夹,例如users/
。每个开发人员都有自己的文件夹。这样就会给我们users/asma/
和users/digulla
。
我们都独立处理我们的文件夹。合并时,我们决定是谁做的。假设你做到了。然后我会告诉你我的“开发者分支”的修改是稳定的。
然后在某个地方检查主干,将您的更改合并到主干。完成后,您还可以将我的更改合并到trunk
。这个版本进入测试阶段。当我们修复错误时,我们会在工作分支中执行这些操作。然后将它们合并到trunk
。
当trunk
准备发布时,会在branches/
中制作一份副本,并为其指定新版本。
也就是说,您可能希望跳过Subversion并直接转到像Mercurial或Git这样的DVCS。它们使合并和分支几乎无痛,特别是与VSS或SVN相比。