有人尝试过在 SVN 中包含 Visual Foxpro 数据库(版本 7)吗?将其纳入其中的优点/缺点是什么?当有行需要包含在源代码管理中时,在 SCM 中处理 VFP Db 的最佳方法是什么?

没有正确的解决方案

其他提示

Christof Wollenhaupt 有一个名为“TwoFox”的工具,可以很好地将 DBC 和其他 Fox 源文件转换为 XML —— 描述它的文章是 http://www.foxpert.com/docs/cvs.en.htm. 。不过,如果您只是想将 DBF 文件放入 SVN,则可以将它们作为二进制文件导入,并失去在版本之间进行比较/合并的能力,或者使用 CURSORTOXML(这是 7 中的,不是吗?)在签入之前将 DBF 转换为 XML。

虽然我没有使用过 SVN,但我已经将 VFP 与 VSS 和 Vault 一起使用过。通过这两种方法,我可以手动将文件添加到源代码管理中,而不是尝试在开发环境中使用某种形式的集成。

基本上有两种方法可以解决这个问题:

  1. 只需手动添加 .DBC、.DCT、.DCX 以及所有 .DBF、.FPT 和 .CDX
  2. 从数据库编写一个脚本来创建结构(我使用 GenDBCX 的修改版本),并用脚本创建要在程序或类上保留的任何数据记录。

我的设置:



  • P4 工作站上的 Debian,运行:
    • 通过 Apache2 进行颠覆
    • Trac 与 Subversion 挂钩
    • 每晚定期备份 Subversion 和 Trac 数据库

坦率地说,我不会检查我们拥有的多兆字节数据库,因为仅此一点,存储库的大小就会膨胀到大约 20+ GB。我们经常有 1.6Gb 的表(及其备忘录和索引),并且浪费时间等待 1 小时以上提交 20GB 的表更改是不值得的。相反,我们从生产系统克隆数据并使用它来“刷新”事物,并重建数据库容器以具有指向表的新链接。“刷新”过程大约每月进行一次,所需时间要少得多,通常为 40 分钟;将此与浪费时间进行对比 每天.

我不需要将数据签入存储库,甚至一次也不需要。暂时通过遵循单一规则来简化架构管理:仅在所有用于生产的补丁已投入生产后刷新数据,这意味着两个环境的架构将保持一致。现在,我可以摆脱这个,尽管将来必须改变......

如果您只需要更改架构

如果您发现需要签入表,因为您试图捕获它们的数据 图式 并且不一定是 数据 它们包含,您可能需要考虑编写一个小工具,将模式抽出到文本文件中并将其提交到存储库,而不是将厨房水槽运走以供消化。

如果您确实需要签入数据

如果表中的数据对于控制程序流至关重要(数据即代码,而不仅仅是程序处理的数据),您可以考虑将数据修剪到所需的最低限度并签入 只是生成的存根表 通过手动将它们添加到存储库中。虽然 subversion 将处理二进制对象,但您需要将它们保持在最小大小并尽可能少地提交它们,以便您的存储库不会陷入困境。请务必检查您要查看的各个表,而不仅仅是所有 *.dbf,否则当其他人试图将几 GB 的数据推送到您的存储库中时,您可能会感到震惊,因为工作副本没有屏蔽所有表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top