我们有一个项目,其中包含数据和代码,捆绑到一个Mercurial存储库中。数据与代码一样重要(它包含业务逻辑的参数,一些输入等)但是,数据文件的格式很少变化,并且很自然地独立于代码更改数据文件。
统一存储库的一个优点是我们不必跟踪多个修订:如果我们需要重新创建先前运行的输出,我们只需要将系统更新为存储在输出日志。
一个缺点是,如果我们在多个磁头处于活动状态时修改数据,我们可能会丢失数据更改,除非我们手动将这些更改复制到每个磁头。
将代码和数据拆分为单独的存储库还有其他优缺点吗?
答案 0 :(得分:1)
多次回购:
<强>优点强>:
<强>缺点强>
一个回购
对于非二进制数据,如果不经常更改,我仍会将它们保存在同一个仓库中。
答案 1 :(得分:0)
是的,您应该分开代码和数据。将代码保存在版本控制中,并将数据保存在数据库中。
我喜欢版本控制,因为我是一名程序员,因为我已经十多年了,我喜欢这份工作。
但在过去的几个月里,我意识到:数据不能在版本控制中。有时候熟悉git(或其他版本控制系统)的人很难“放手”。
您需要一个支持数据库架构迁移的良好ORM。迁移(schemamigrations和datamigrations)保留在版本控制中,但数据不是。
我知道您的问题是关于使用一个或两个存储库,但也许我的答案可以帮助您获得不同的观点。