【问题标题】:using git with Pick D3 database将 git 与 Pick D3 数据库一起使用
【发布时间】:2015-08-05 00:18:22
【问题描述】:

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

【问题讨论】:

  • 我们自动化了源的导入/导出,你是对的,大量的工作和痛苦的回滚等等。我认为现在是时候将它变成一个开源项目了,因为我们讨厌我们拥有基于拣货的 SCC 系统。

标签: git pick


【解决方案1】:

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

解决方案是使用 D3 OSFI。

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

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

此时您可能决定在 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

这样就不会挂断。

【讨论】:

  • 谢谢,这也是我想出的相同方法。到目前为止,我遇到的唯一问题是现在项目 ID 区分大小写。也就是说,如果 MYITEM 是大写字母,我以前可以从 TCL ut 执行 :ed file myitem,然后它会以大写字母形式存储在 Linux 文件系统中,因此如果我使用小写字母,我的 TCL 命令将不起作用。不是什么大问题,只需要注意区分大小写。我也可以尝试使用 ciopfs 来解决这个问题。 brain-dump.org/projects/ciopfs
  • 你可能想在你的编辑器命令前端(ED?呃。)强制首选的情况。或者创建一个索引,以便在 OS 项目 ID 始终为 UC 或 LC 时将首选案例保存在某处。然后,无论您在 TCL 输入什么,您的编辑器命令将始终找到该项目。我相信你可以计算出这些细节——这是在任何平台上工作时付出的代价。很高兴能提供帮助。
  • 我认为区分大小写问题的最佳解决方案是:我在 dm,hosts 中创建了一个新的“unixs”项目,该项目在属性 3 中有 rs。然后在文件的 QS 项目中数据字典我使用 unixs:/folder/path
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 2012-08-13
  • 1970-01-01
相关资源
最近更新 更多