适用于 VS Code 的 Looker 扩展程序采用本地优先的开发模式。此模式可在本地文件系统、Looker 实例的开发模式和远程 Git 代码库之间建立三向关系。
本指南介绍了扩展程序如何同步文件,以及本地 Git 操作如何影响 Looker 项目。
同步机制
该扩展程序会自动管理本地 IDE 与 Looker 服务器之间的文件内容同步。
打开文件(打开时读取)
当您在本地 IDE 中打开 .lkml 文件时,该扩展程序会自动从 Looker 实例的开发模式中已签出的分支中提取该文件的当前版本。这样可确保您始终处理的是最新版本的代码。
保存文件(写入时保存)
当您在本地保存文件时(在 Mac 上按 Command-S,在 Windows/Linux 上按 Ctrl+S),该扩展程序会立即将您的本地更改推送到 Looker 服务器。然后,当您处于开发模式时,这些更改会显示在基于浏览器的 Looker IDE 中。
处理同步冲突
如果某个文件在基于浏览器的 Looker IDE 中进行编辑的同时也在 VS Code 中打开,则可能会发生冲突。
默认情况下,扩展程序会将 Looker 服务器上的版本覆盖为本地 VS Code 版本。
不过,如果您已启用 looker.askBeforeOverwritingRemote 设置,则当您尝试保存在服务器上修改过的文件时,VS Code 会显示警告。您可以选择执行以下操作之一:
- 保留本地版本:使用本地 VS Code 版本覆盖 Looker 服务器上的版本。
- 提取远程:使用 Looker 服务器中的版本覆盖本地文件。
looker.askBeforeOverwritingRemote 设置默认处于停用状态。
本地 Git 操作
该扩展程序会同步文件内容,但您应使用本地终端或本地 IDE 的“源代码控制”标签页中的标准 Git 命令来管理 Git 代码库。
管理分支
当您使用 git checkout 在本地切换分支时,该扩展程序会检测到更改,并自动将 Looker 服务器上的会话切换到匹配的分支。
Looker 中的 Git 状态
保存文件更改后,这些更改会同步到您的 Looker 实例,并在基于浏览器的 Looker IDE 中显示为未提交。如果您在本地环境中使用 Git 提交这些更改,那么在您将这些更改推送到远程仓库之前,它们在 Looker IDE 中仍会显示为未提交。
当您使用 git push 时,Looker 实例会从远程代码库中拉取已提交的更改。在 Looker 实例从远程代码库中拉取更改后,您已提交并推送的更改将不再在 Looker IDE 中显示为未提交。只有已在本地保存但尚未提交和推送的文件才会显示为未提交。
验证 LookML
每次保存更改时,该扩展程序都会自动运行 Looker LookML 验证器。验证器返回的任何语法和模型错误都会以内嵌方式显示在本地 IDE 内的文件中。如果您愿意,也可以使用 Looker: Validate LookML 命令面板命令手动运行 LookML 验证器,而无需保存文件。