分布式团队的Source Control文件夹组织

时间:2011-02-01 08:06:16

标签: svn version-control

我们的团队分布在两个地理位置。 我们共享和使用类似的脚本来实现我们执行的不同测试的自动化。 我们最近决定使用源代码管理来管理正在使用的不同脚本。到目前为止,无论我们生成的脚本是否共享到另一个位置,他们都会根据自己的需要进行微小的本地修改并使用它。 那就是我们将使用相同版本的脚本,只需对我们的本地设置进行一些小修改。 如何在源代码管理中最好地组织它。我们计划使用Subversion,并在两个位置重复存储库。

我想的一个解决方案是为每个位置制作一个文件夹。因此,他们上传的任何脚本,我们将复制到我们自己的目录并进行本地修改。还有其他建议吗?

...谢谢

3 个答案:

答案 0 :(得分:2)

您应该有一个存储库来保存脚本。每个修改(由本地或远程团队)将获得版本。可以回滚更改。您将拥有修订历史记录等。多个文件夹无法实现版本控制系统。当然,您可以使用子文件夹进行脚本的逻辑分离。

如果网络性能存在问题,您可能需要查看分布式版本控制系统,例如gitmercurial

答案 1 :(得分:1)

这就是每个网站的分支的样子 每个站点在其分支上拥有完整的所有权,您可以导入/合并站点分支中的一个站点所做的更改。

除了使用集中式VCS之外,最好远程访问SVN仓库(对于其中一个站点),以避免两个手动克隆之间出现任何历史差异。

作为Raghuram,Git或Mercurial更适合这种情况。

答案 2 :(得分:1)

我没有使用SVN,但已经与其他许多vcs系统进行了广泛的合作......

我同意优先级应该是“您应该尝试参数化或移出特定于位置的条目”,但首要任务是将所有脚本置于源代码管理的公共存储库中。实际上,您的流程文档也应该受源代码管理。

我之前加入了一个CM团队,他们没有将CM工具用于他们自己的脚本。果然,每隔一段时间我们就会发现一个问题,并非所有成员都会使用相同的脚本来执行相同的任务。将脚本和文档放在存储库中可以方便,轻松地让每个人都使用相同的工具并保持最新。

要使脚本等通用化,请为具有公共/站点A /站点B /结构的脚本创建文件夹树。将相应站点的所有脚本放在目录下。然后将相同的脚本迁移到“common”并从其他脚本中删除并检查所有内容。最终目标是将所有脚本移动到公共代码库。用于实现此目的的通用去本地化框架或模板将加速该过程。一旦前几个完成,你会发现,其余的将很快跟进。拥有单独的目录可以轻松区分本地化并消除它们。

您不希望处于这样的情况:用户必须经常合并(呃!)并覆盖其本地化的本地化数据,或者更糟糕的是在结账后手动执行此操作。最理想的是,在更新任何脚本时,它们应该考虑到去本地化目标,因此除非存在情有可原的情况,否则只接受对共同的更新;还强制更新程序在执行一侧时更新A和B分支。你会发现人们已经厌倦了做两次事情(并且为了别人的利益),并且很容易开始去本地化脚本。