我有几个项目具有非常大的重叠代码库。我们刚刚开始使用SVN,所以我想弄清楚我应该如何使用它。
问题在于,当我完成一个项目的任务时,我正在另一个项目上开始执行任务,但有一些重叠。通常还会有很多中断驱动的开发。所以,我的代码永远不会处于一个完全稳定的状态,我觉得我很乐于办理登机手续。
结果是我们并没有真正使用VC系统,这是一件非常糟糕的事情,我们都知道......那么,建议?
答案 0 :(得分:1)
签出代码的个人分支并合并更改。至少您将对自己的更改进行一些版本控制,以防您需要回滚。一旦您对分支所在的状态感到满意,请将该分支合并回主干。
您还可以查看每个任务的分支,而不是每个人的分支。如果有人更改了主干,您还可以将更改合并到主干中,并且您希望分支机构反映更改。
这是使用SVN的常用方法,尽管还有其他工作流程。我曾经在我害怕提交的项目上工作(我可能会破坏构建),因为我们没有有效地使用分支。
分支在帮助您的工作流程方面非常强大,使用它直到您对合并的想法感到满意为止。
编辑:'检出分支'是指在branches文件夹中创建分支,然后检出该分支。标准的svn存储库结构由根目录下的文件夹trunk,tags和branches组成。
答案 1 :(得分:1)
因此,我的代码永远不会处于一个完全稳定的状态,我觉得我很乐于办理登机手续。
为什么?
如果您的分支适合您的工作(例如,具有良好的命名约定),每个人都会知道它的HEAD并不总是稳定的。
在这种“工作”分支中,只需在路上放置一些标记以指示一些“稳定的代码点”(然后可以由任何要部署的测试人员查询)。
该工作分支上的任何其他版本仅用于记录更改,即使当前状态不稳定。
然后你将所有分支合并到一个应该代表稳定状态的分支上。
答案 2 :(得分:0)
在TFS中,您可以创建“货架集”(我不确定在其他源控制提供商中会调用它们)。当您搁置某些代码时,您将其保存到存储库,但不会将其保存。
这一点很重要的原因是,如果您正在处理Bug XXXX,并修复了一半的代码,但它不稳定且不能“检入”,但是您被分配到NewFeature YYYY,那么您应该不要继续使用相同的代码库。您应该'保存'您的Bug XXXX代码,然后将您的本地代码库返回到最新的签入代码,并实现NewFeature YYYY。
这样您就可以保持签到原状。您不必担心丢失您的工作,因为它仍然由存储库保存(因此,如果您的计算机迸发火焰,您不必泪流满面),并且您没有混合修复XXXX使用您的YYYY新代码。 然后,一旦你被要求回到XXXX(假设你已经在YYYY中检查过),你就可以取消搁置你的“架子”,然后向右跳回到你离开的地方。
答案 3 :(得分:0)
要么接受SVN中的代码不处于完全稳定状态并且无论如何都要检查它(并且每隔X天/周保留一次稳定和重构的时间,以便代码不会降低太多)。
或者强制您的团队以更加结构化的方式工作,只需最少的中断开发,这样您就可以检查好的代码。
第一个选项并不理想(但更好的是没有源代码控制),第二个选项可能是不可能的 - 没有第三个选项。
如果您没有时间将代码置于稳定状态,那么您肯定没有时间进行分支和合并。
答案 4 :(得分:0)
在像GIT这样的分布式源代码控制系统中,您将提交到本地存储库。只有在推送代码时,它才会“提交”到远程存储库。
通过这种方式,您可以更轻松地“安全”工作。