2

Is there a way to use git with Pick D3 database since the source code and compiled programs are stored inside D3?
I think the only option would be to build routines to import/export the source code into the files in D3, but that seems like a lot of work, and also easily bypassable with the built-in editors in D3.

4

1 回答 1

0

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

解决方案是使用 D3 OSFI。

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

因此,现在您可以在 D3 中正常编辑/编译/运行您的程序。准备就绪后,只需执行 COMMIT,提供注释或其他详细信息,您的程序将处理操作系统级别的详细信息。应显示和/或记录响应返回。

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

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

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

设置 QS 指针时,不要使用 DOS: 或 UNIX: 主机扩展,只需使用 C:/Dev/Git/RepoD3 或 *nix /home/dev/git/repoD3 之类的路径。如果您使用了错误的主机扩展名,您的数据中将包含错误的 EOL 分隔符。您也可能不希望制表符转换为空格,反之亦然。对此进行试验,您可能会决定创建自己的主机扩展,它完全符合您的要求。(不在本回复的范围内。)

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

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

这样一来,什么都不会挂断。

于 2015-08-06T06:10:14.843 回答