SVN和visualfoxpro数据库

SVN和visualfoxpro数据库,svn,visual-foxpro,Svn,Visual Foxpro,有人试过在SVN中包含Visual Foxpro数据库(7版)吗?将其包括在内的优点/缺点是什么?当源代码管理中需要包含行时,在SCM中处理VFP Db的最佳方法是什么?虽然我没有使用SVN,但我已将VFP与VSS和Vault一起使用。使用这两种方法,我手动将文件添加到源代码管理中,而不是尝试在开发环境中使用某种形式的集成 基本上有两种方法可以实现这一点: 只需手动添加.DBC、.DCT、.DCX以及所有.DBF、.FPT和.CDX 从数据库中编写一个脚本来创建结构(我使用的是GenDBCX的修

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

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

基本上有两种方法可以实现这一点:

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

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

    基本上有两种方法可以实现这一点:

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

  • Christof Wollenhaupt有一个名为“TwoFox”的工具,它可以很好地将DBC和其他Fox源文件转换为XML——本文对此进行了描述。但是,如果您只是想将DBF文件放到SVN中,那么您可以将它们作为二进制文件导入,从而失去在版本之间进行比较/合并的能力,或者在签入DBF之前使用CURSORTOXML(这是在7中,不是吗?)将DBF转换为XML。

    Christof Wollenhaupt有一个名为“TwoFox”的工具这在将DBCs和其他Fox源文件转换为XML方面做得很好——本文对此进行了描述。但是,如果您只是想将DBF文件放到SVN中,您可以将它们作为二进制文件导入,并失去在版本之间进行比较/合并的能力,或者在签入DBF之前使用CURSORTOXML(这是在7中,不是吗?)将其转换为XML。

    我的设置:


    • Windows XPsp3作为虚拟机,运行:
      • vfp8
      • 乌龟

    • 在P4工作站上运行Debian,运行:
      • Subversion via Apache2
      • Trac与Subversion挂钩
      • Subversion和Trac数据库的定期夜间备份

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

    我不需要将数据签入存储库,哪怕是一次。目前,通过遵循一条规则简化了模式管理:只有在所有用于生产的修补程序投入生产后才刷新数据,这意味着两种环境的模式都是一致的。现在,我可以侥幸逃脱,尽管这在未来将不得不改变

    如果您只需要更改模式 如果您发现您需要签入表,因为您正试图捕获它们的模式,而不一定是它们包含的数据,那么您可能需要考虑编写一个小工具,将模式输出到文本文件中,并将其提交给repo,而不是将厨房水槽运送出去进行消化

    如果您确实需要签入数据

    如果表中的数据对于控制程序流(数据作为代码,而不仅仅是程序所处理的数据)是至关重要的,那么您可以考虑将数据裁剪到最小的最小值,并通过将它们手动添加到回购中来检查所得到的存根表。虽然subversion将处理二进制对象,但您希望将这些对象保持在最小大小,并尽可能少地提交它们,以便您的repo不会陷入困境。请确保签入您要查找的各个表,而不仅仅是所有的*.dbf,否则,当其他人试图将数GB的数据推入您的repo时,您可能会受到粗暴的打击,因为工作副本不会屏蔽所有表。

    我的设置:


    • Windows XPsp3作为虚拟机,运行:
      • vfp8
      • 乌龟

    • 在P4工作站上运行Debian,运行:
      • Subversion via Apache2
      • Trac与Subversion挂钩
      • Subversion和Trac数据库的定期夜间备份

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

    我不需要将数据签入存储库,哪怕是一次。目前,通过遵循一条规则简化了模式管理:只有在所有用于生产的修补程序都投入生产后才刷新数据,这意味着这两种修补程序的模式都是相同的