适用于 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 中打开,则可能会发生冲突。
默认情况下,该扩展程序会使用本地 VS Code 版本覆盖 Looker 服务器上的版本。
不过,如果您已启用 looker.askBeforeOverwritingRemote 设置,则当您尝试保存已在服务器上修改的文件时,VS Code 会显示警告。您可以选择执行以下操作之一:
- 保留本地:使用本地 VS Code 版本覆盖 Looker 服务器上的版本。
- 拉取远程:使用 Looker 服务器中的版本覆盖本地文件。
默认情况下,looker.askBeforeOverwritingRemote 设置处于停用状态。
本地 Git 操作
该扩展程序会同步文件内容,但您应使用本地终端中的标准 Git 命令或本地 IDE 的“源代码控制”标签页来管理 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 验证器,而无需保存文件。