我们有两个回购,一个开发和一个生产。它是构建的,以便测试事物进入开发阶段,然后合并到生产中,现在有时人们忘记合并,它们变得不同步。查找开发回购中不在生产回购中的所有更改的最佳方法是什么?
答案 0 :(得分:1)
我不会合并所有内容,而是复制开发版本以获得新分支。这个新分支是当前的生产版本并被冻结。您可以在其中进行错误修正,并在分支和开发之间合并某些功能。一段时间后,开发(主干)和生产(分支)安静地不同,然后再次复制。
这意味着,主干是主人,每个人都在努力。每个分支都是您的软件版本,应该是稳定和冻结的。除此之外,您可以复制分支以尝试解决问题,如果您对结果感到满意,请将其合并到主干中。
我认为以上是最佳实践并广泛使用。但是,一些敏捷方法可能会反对这种情况; - )
答案 1 :(得分:0)
查看目录A的生产版本。查看目录B的开发版本。将A中文件顶部的所有文件复制(注意不要复制.svn子目录)。然后执行svn status或svn diff来查看更改内容。
我使用Eclipse,其中任何已更改的文件都会显示一个小加号,这使得它很容易被发现。 (或者,只要我有更好的视力和/或更大的监视器。)
当SVN试图弄清楚文件是否被更改时,它不会进行击键跟踪或类似的操作。它只是将文件的当前版本与.svn目录中的缓存版本进行比较。
我从来没有在整个产品上做过这个,但是由于某种原因,我有一个文件在我的工作空间之外更新时,我已经使用过这种技术几次了。 (我即将解释情况,但我意识到这将是漫长而无聊的。)
正如另一张海报所说,为什么在这种情况下你有两个独立的存储库?我没有看到这对你有什么好处,并且它在跟踪变更历史和进行合并等方面增加了很多痛苦。您可以在存储库中创建两个目录,用于“生产”和“开发”,并且可能获得所有优点而且没有任何缺点。