使用 git 和 Pick D3 数据库

using git with Pick D3 database

由于源代码和编译后的程序存储在 D3 中,有没有办法将 git 与 Pick D3 数据库一起使用?
我认为唯一的选择是将 import/export 源代码构建到 D3 中的文件中,但这似乎需要大量工作,并且也可以通过 D3 中的内置编辑器轻松绕过。

如果这个答案过于稀疏,请指教,当然,如果这回答了您的问题,请采纳。我使用 GitHub,但我在任何地方都没有私人 Git 存储库,而且我从不使用命令行。但是,我确实在 Subversion 中使用了以下技术,并且由于其中的 none 是特定于 VCS 的,因此它可以与 Git、Hg 和其他任何东西一起使用。

解决方法是使用D3 OSFI。

  1. 为 git 设置主机文件系统,将文件夹指向存储库等
  2. 将单个文件(我称之为 BP)的程序源复制到另一个 D3 文件。
  3. 只删除BP文件的数据文件,保留dict。
  4. 现在在 Dict BP 中创建一个指向主机文件夹的 QS 指针,称为 BP。
  5. 您现在应该可以列出 BP 并且不会获得任何物品
  6. 将所有源代码复制回 BP。如果您查看主机 OS,您将看到文件夹中的所有项目。
  7. 从 OS 命令行进行第一次提交,确保它有效。
  8. 现在创建一个包含 OS 命令行的 BASIC 程序。提示必填字段并将其设置为您只需要 EXECUTE "!cmd -options ..." CAPTURING OUT 即可进行提交的程度。将该程序编目为 COMMIT 或 GIT.COMMIT.

所以现在您 edit/compile/run 您的程序在 D3 中正常运行。准备就绪后,只需执行 COMMIT,提供注释或其他细节,您的程序就会处理 OS 级别的细节。返回的响应应该显示 and/or logged.

此时您可能决定在 D3 之外编辑 BASIC 代码,然后将 COMPILE 命令发送到 D3(因为对象需要在 VME 中生成并存储在 Dict 中)。

您可能还想在 BASIC 中添加 "library" 的 git 包装器命令以实现回滚和其他功能。

您需要一个 QS 指针,以便 BASIC 程序也可以保存在 D3 文件保存和帐户保存中。如果您需要恢复,这可能会导致问题,您应该对此进行试验。如果您保存帐户然后将其恢复到其他地方,您可能会很头疼,因为保存的数据将覆盖主机中的任何内容 OS.

设置QS指针时,不要使用DOS:或UNIX:主机扩展,只需使用像C:/Dev/Git/RepoD3或*nix [=52=这样的路径].如果您使用了错误的主机扩展,您的数据中就会有错误的 EOL 定界符。您也可能不希望将制表符转换为空格,反之亦然。对此进行试验,您可能会决定创建自己的主机扩展,它完全符合您的要求。 (超出本回复范围。)

在第 8 步中,您可以使用 !command-line 从 TCL 进行提交。您不需要 BASIC 包装器。然而,服务器输出试图通过该通道返回时可能会出现问题,因此我强烈建议从 BASIC 执行 OS 函数。您可以使用类似这样的方式来响应多个提示:

CMD = "!do this "
CMD := OPTIONS
CMD<-1> = Response.To.First.Prompt
CMD<-1> = Second.Response
EXECUTE CMD CAPTURING OUT

这样就不会挂断电话了。