管理SVN标签和主干

管理SVN标签和主干,svn,Svn,几周前,我将所有的源代码移植到SVN回购协议中,并真正开始看到它的神奇之处。我现在有一个非常简单的问题,它将在很大程度上说明我的SVNing方法 我为一位客户在现场工作了3周,在ProjA的后备箱上工作。就在我离开之前,我在“ProjA/tags/release-09.11.17”(邮戳版本号)下创建了主干的一个分支,这样我就可以得到它们的精确版本,以便紧急修复bug 刚才客户打电话给我,确认了一个简单的数学错误,我修复了它。我想知道如何更新我们的回购协议,我看到有几种选择: 1) 提交对Pro

几周前,我将所有的源代码移植到SVN回购协议中,并真正开始看到它的神奇之处。我现在有一个非常简单的问题,它将在很大程度上说明我的SVNing方法

我为一位客户在现场工作了3周,在ProjA的后备箱上工作。就在我离开之前,我在“ProjA/tags/release-09.11.17”(邮戳版本号)下创建了主干的一个分支,这样我就可以得到它们的精确版本,以便紧急修复bug

刚才客户打电话给我,确认了一个简单的数学错误,我修复了它。我想知道如何更新我们的回购协议,我看到有几种选择:

1) 提交对ProjA主干的更改,并删除“ProjA/tags/release-09.11.17”

2) 提交对ProjA和“ProjA/tags/release-09.11.17”的更改

3) 提交对ProjA的更改,为今天的“ProjA/tags/release-09.11.19”创建一个新标记,并删除旧标记“ProjA/tags/release-09.11.17”

在我看来,所有这些都有其优点/缺点。在接下来的几周里,ProjA将看到很多发展,客户说,直到我再次回到网站上才会看到


想法和理由?谢谢

如果您不希望主干中的任何更改被释放,我将更改ProjA/tags/release-09.11.17,然后将这些更改合并到主干中

如果您不希望主干中的任何更改被释放,我将更改ProjA/tags/release-09.11.17,然后将这些更改合并到主干中

我相信SVN福音是正确的/tags用于完成您所做的事情——标记代码处于已知状态的特定时刻。我认为您要做的是在/branchs/client中创建一个分支,然后您可以使用来自主干的合并来保持最新。您还可以将已盖销的版本复制到/tags上,以帮助记忆。

我相信SVN的福音是/tags就是为了完成您所做的事情——标记代码处于已知状态的特定时刻。我认为您要做的是在/branchs/client中创建一个分支,然后您可以使用来自主干的合并来保持最新。您还可以将已盖销的版本复制到/tags,以帮助记忆。

我建议您将更改提交到发布分支,并从发布分支重新部署代码。然后,您可以将分支更改合并回主干,以备将来发布


使用该方法,您将保持发布代码的完整性,但也要确保修复程序进入未来的版本。

我建议您将更改提交到发布分支,并从发布分支重新部署代码。然后,您可以将分支更改合并回主干,以备将来发布

使用这种方法,您可以保持发布代码的完整性,但也可以确保修复程序进入未来的版本。

删除标记是个坏主意(至少从我所知道的标记/分支来看是这样)。标签会在以后的某个日期提供给你参考——把它想象成一个及时的书签。如果您想找到放入该版本中的代码,标签将始终在那里


如果您想基于该标记启动一个新的开发分支,您可以始终使用
svncp
。您可以在那里提交您的更改,进行一些测试,然后将其标记为后续版本发布,这就是它——您不能更改您已经发布的内容。之后,您可能希望将修复程序移植回您的主干。根据您在合并信息方面设置的内容(通过
svnmerge.py
或核心svn样式元数据),以及您在分支中实际需要做的工作量,这可能是微不足道的,也可能是您的一大难题

我的建议是尽量避免实际提交标签(而不是最初创建的标签)。

删除标签是个坏主意(至少从我所知道的标签/分支来看是这样)。标签会在以后的某个日期提供给你参考——把它想象成一个及时的书签。如果您想找到放入该版本中的代码,标签将始终在那里


如果您想基于该标记启动一个新的开发分支,您可以始终使用
svncp
。您可以在那里提交您的更改,进行一些测试,然后将其标记为后续版本发布,这就是它——您不能更改您已经发布的内容。之后,您可能希望将修复程序移植回您的主干。根据您在合并信息方面设置的内容(通过
svnmerge.py
或核心svn样式元数据),以及您在分支中实际需要做的工作量,这可能是微不足道的,也可能是您的一大难题


我的建议是尽量避免实际提交到标记(而不是它的初始创建)。

我认为您是在向后看,如果有正在进行的、重叠的、打包的更改,首选的方法是在分支中进行这些编辑。Bug修复,短期补丁将进入主干

在处理长期项目时,可以将错误修复合并到分支中,以便于分支最终合并回主干中


因此,您的紧急修复程序将进入主干,并合并到branch/release 09.11.17中。

我认为您是在向后看,如果有正在进行的、重叠的、打包的更改,首选的方法是在分支中进行这些编辑。Bug修复,短期补丁将进入主干

在处理长期项目时,可以将错误修复合并到分支中,以便于分支最终合并回主干中


因此,您的紧急修复程序将进入主干,并合并到分支/release 09.11.17中。

如果您不想在
ProjA/tags/release-09.11.17
ProjA之间进行所有更改/trunk@HEAD
即将发布
ProjA/tags/release-09.11.XX
(带有