我们目前使用Subversion进行FileMaker开发的版本控制,但我们开始探索转向Git。我们听说过一些关于人们在使用Git for FileMaker文件时遇到文件损坏的传言,但我无法找到任何真实来源。
是否有人使用Git进行FileMaker Pro文件的版本控制?除了需要在提交之前完全关闭文件之外,您有任何问题吗?
答案 0 :(得分:6)
我已将Git和Subversion用于FileMaker文件的版本控制。 Chris对大小限制提出了一些好处,但是在使用git时有一些方法可以做到最好。
我怀疑谣言来自的文件损坏并非来自git用法,而是来自用户在使用git时如何与文件交互。
当您打开FileMaker文件时,FileMaker客户端将直接与二进制文件本身进行交互。在文件处于活动状态时,正在读取和写入数据和结构,因此如果您尝试在该过程中提交文件,则可能会导致损坏风险。 Git和Subversion的风险相同。
每当您使用FileMaker文件和版本控制时,您需要确保在提交之前关闭文件。您不一定需要关闭FileMaker,但需要关闭该文件。
此外,请确保文件真正关闭。您可以认为该文件已关闭,并且打开了隐藏或屏幕外窗口。转到窗口菜单,确保在提交之前关闭所有窗口。
您绝对可以将git用于FileMaker文件,但如果您要推送到公共远程托管服务提供商,则会遇到这些大小限制。也就是说,如果你有自己的本地git服务器,那么大小也不是问题。
在存储库中处理大小时,最好的办法是将克隆提交到存储库。如果您在FileMaker Server中工作,则可以使用启用了克隆的备份计划来轻松地将其吐出。这也会导致打开文件问题,因为您将提交克隆备份,而不是活动文件。
这可能很痛苦,因为现在您的所有数据都不在文件中,并且FileMaker没有良好的内置自动化来重新输入数据,但是您可以构建一个运行来自您的导入的传输文件填充文件(版本控制之外)到克隆中(在版本控制中)。我们几乎为公司的每个项目都这样做。
当涉及到它时,在版本控制中跟踪的重要事情是结构而不是数据本身。存储克隆应该减少文件大小,以使任一版本控制系统可行。
答案 1 :(得分:4)
我没有使用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。
答案 2 :(得分:1)
您可以将Filemaker文件的克隆保存到Git仓库中。这将绕过所有但非常大的数据库的Git限制,并避免将未封闭文件写入repo(“损坏”)的问题。