多项目版本控制的最佳实践

8
我有几个项目,它们有一个非常大的代码重叠部分。我们最近才开始使用 SVN,所以我正在努力弄清楚应该如何使用它。
问题是,当我完成一个项目的任务时,我就会开始另一个项目的任务,两个项目之间有一些重叠。而且通常也有很多中断驱动的开发。因此,我的代码从来没有处于完全稳定的状态,我感到舒适并进行检查。
结果是,我们实际上没有真正使用版本控制系统,这是非常糟糕的事情,我们都知道...那么,有什么建议吗?
5个回答

1

查看代码的个人分支并合并更改。至少您将拥有自己更改的某些版本控制,以防需要回滚。一旦您对分支的状态感到满意,请将该分支合并回主干。

您还可以为每个任务检出一个分支,而不是为每个人单独检出一个分支。如果有人更改了主干,并且您希望您的分支反映这些更改,则还可以从主干向您的分支合并更改。

这是使用SVN的常见方法,尽管还有其他工作流程。我曾经参与过一些项目,在那里我害怕提交(可能会破坏构建),因为我们没有有效地使用分支。

分支在帮助您的工作流程方面确实非常强大,请使用它直到您对合并的概念感到舒适。

编辑:“检出分支”是指在您的分支文件夹中创建分支,然后检出该分支。标准的svn存储库结构包括根目录下的trunk、tags和branches文件夹。


1
所以,我的代码从来没有处于我感到舒适的完全稳定状态。
为什么呢? 如果您的分支适合您的工作(例如具有良好的命名约定),则每个人都知道其HEAD并不总是稳定的。 在这种“工作”分支中,只需沿途放置一些标记以指示一些“稳定的代码点”(然后可以通过任何测试人员查询以进行部署)。 该工作分支上的任何其他版本都只是用于记录更改,即使当前状态不稳定。
然后稍后将所有内容合并到一个应表示稳定状态的分支上。

0
在TFS中,您可以创建“Shelf Sets”(我不确定其他源代码控制提供商会如何称呼它们)。当您将一些代码搁置时,您将其保存到存储库中,但不进行检查。这很重要的原因是,如果您正在处理Bug XXXX,并且修复了其中一半的代码,但它不稳定且无法“检入”,但您被分配到NewFeature YYYY,则不应继续使用相同的代码库进行工作。您应该“搁置”您的Bug XXXX代码,然后将本地代码库返回到最新的已检入代码,并实现NewFeature YYYY。
这样,您就可以保持您的检入是原子性的。您不必担心失去您的工作,因为它仍由存储库持有(因此,如果您的计算机突然燃起火焰,您不必哭泣),并且您不会将您对XXXX的修复与YYYY的新代码混合在一起。然后,一旦您被要求回到XXXX(假设您已经检入了YYYY),您只需取消搁置您的“shelf set”,并在离开的地方立即回到其中。

0

要么接受 SVN 中的代码并不完全稳定,无论如何都要提交它(并保留每 X 天/周进行稳定和重构的时间,以便代码不会太过恶化)。

或者强制你的团队采用更有结构的方式进行最小干扰开发,以便你可以提交好的代码。

第一种选择并不理想(但比没有源代码控制好),第二种可能是不可能的——没有第三种选择。

如果你没有时间将代码变得稳定,那么你肯定没有时间一直进行分支和合并。


问题在于我们是一家只有7人(其中2名工程师)的公司,所以我们真的负担不起那么多的结构化开销。此外,“团队”只有我一个人。 - Brian Postow

0
在像GIT这样的分布式源代码控制系统中,您将提交到本地存储库。只有当您推送代码时,它才会“提交”到远程存储库。
通过这种方式,更容易在工作之间“安全”保存您的工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接