FileMaker Pro 版本控制与 Beanstalk / Github / Bitbucket 中的 Git?

Posted

技术标签:

【中文标题】FileMaker Pro 版本控制与 Beanstalk / Github / Bitbucket 中的 Git?【英文标题】:FileMaker Pro version control with Git in Beanstalk / Github / Bitbucket? 【发布时间】:2015-03-30 08:17:28 【问题描述】:

我们目前使用 Subversion 对我们的 FileMaker 开发进行版本控制,但我们开始探索改用 Git。我们听说有人在使用 Git 处理 FileMaker 文件时遇到文件损坏的谣言,但我无法找到任何真实来源。

是否有人使用 Git 来控制 FileMaker Pro 文件的版本?除了需要在提交之前完全关闭文件之外,您还有什么问题吗?

【问题讨论】:

【参考方案1】:

我使用 Git 和 Subversion 对 FileMaker 文件进行版本控制。 Chris 提出了一些关于大小限制的好观点,但是在使用 git 时有一些方法可以做到最好。

使用 FileMaker 的版本控制文件损坏

我怀疑传闻中的文件损坏不是来自特定的 git 使用,而是来自用户在使用 git 时与文件交互的方式。

当您打开 FileMaker 文件时,FileMaker 客户端会直接与二进制文件本身进行交互。文件处于活动状态时正在读取和写入数据和结构,因此如果您尝试在该过程中提交文件,您将面临损坏的风险。对于 Git 和 Subversion,这种风险是相同的。

无论何时使用 FileMaker 文件和版本控制,您都需要确保在提交之前关闭文件。您不一定需要关闭 FileMaker 本身,但需要关闭文件。

另外,请确保文件已真正关闭。您可能认为该文件已关闭并打开了一个隐藏或屏幕外的窗口。转到 Window 菜单并确保在提交之前关闭所有窗口。

文件大小

您绝对可以将 git 用于 FileMaker 文件,但如果您要推送到公共远程托管服务提供商,则会遇到这些大小限制。也就是说,如果您有自己的本地 git 服务器,那么大小可能不是问题。

处理存储库中的大小时,最好的选择是将克隆提交到您的存储库。如果您在 FileMaker Server 上工作,您可以使用启用了克隆的备份计划来轻松地将它们导出。这也解决了打开文件问题,因为您将提交克隆备份,而不是活动文件。

这可能会很痛苦,因为现在您的所有数据都已从文件中取出,而且 FileMaker 没有很好的内置自动化功能来将数据重新导入,但您可以构建一个传输器文件来运行从填充文件中导入的文件(版本控制之外)到您的克隆(在版本控制中)。我们对我公司的几乎每个项目都这样做。

归根结底,在版本控制中要跟踪的重要内容是结构而不是数据本身。存储克隆应减少文件大小,足以使任一版本控制系统可行。

【讨论】:

这个答案是正确的,但为了放大,只要 FileMaker 文件在数据库中打开,它们就始终打开以供写入。它们必须正确关闭,然后才能安全地被另一个进程复制。您应该仅在文件在 FileMaker 中打开时提交文件。【参考方案2】:

我没有使用 FileMaker 的经验,但 Git 非常擅长维护您提交的内容的完整性。 (是的,您可能需要在提交之前退出应用程序以确保事物处于一致状态,但这是 FileMaker 的事情,而不是 Git 的事情。)

但是,如果 FileMaker 文件是 (a) 二进制文件或 (b) 大文件,您可能需要继续查找。 Git 的许多功能都是围绕处理文本文件而设计的,任何类型的大文件都可能导致存储库大小和性能受到影响。例如,我不会使用它来对 Access 数据库进行版本控制。

另请注意,托管的 Git 提供程序通常具有文件和存储库的最大文件大小。

例如,GitHub 当前将配额设置为 100MB per file, 1GB per repository。在同一页面上,他们还明确地recommend against storing database dumps,这通常是非常大的文本文件。

Bitbucket 有一个soft 1GB repository limit and a hard 2GB repository limit。

【讨论】:

【参考方案3】:

您可以将 Filemaker 文件的副本保存到 Git 存储库中。这将规避 Git 对除超大型数据库以外的所有数据库的限制,并避免将未关闭的文件写入 repo 的问题(“损坏”)。

【讨论】:

以上是关于FileMaker Pro 版本控制与 Beanstalk / Github / Bitbucket 中的 Git?的主要内容,如果未能解决你的问题,请参考以下文章

Filemaker ODBC Python 连接问题 Mac os 10.12.02

Mac Pro 实现 PHP-5.6 与 PHP-7.0 等多版本切换

Pro Git阅读笔记

FileMaker Server 15 Windows 安装

网络研讨会邀请|借助 JavaScript 提升您的 Claris FileMaker 定制化 App

如何将数据库从 Filemaker 迁移到 Mysql?