VS Code:如何在多个系统之间同步工作区?

更新:
事实证明,我真正想要的是能够在我的笔记本电脑上进行远程开发,而且——如果我也在我的机器人上做了一些本地的事情,那么我的主要开发系统上就会出现这些变化。

参考:
大约 10 个月前有人问过这个大体相似的问题,从那时起就没有收到任何答复。由于从那时起 VS Code 有了很多改进,(而且由于 Stack Overflow 不鼓励“我也是!”的回复),我决定重新提出这个问题,希望有人会注意到它并回复。

即: https://stackoverflow.com/questions/60034690/how-to-sync-workspace-folder-beween-host-and-remote-target

环境:

  • 运行 VS Code 的 Windows 10 系统,截至当前日期都是最新的。
  • 一个基于 Raspberry Pi 的机器人(GoPiGo3),它使用安装的 SSH 软件进行远程开发,允许我的 Windows 10 系统通过 VS Code 与其通信。
  • 我使用 FileZilla 制作了工作区环境的完整副本,包括从 Windows 10 系统到机器人的封闭工作区文件夹。

我之前的工作流程是在 Windows 机器上开发,转移到机器人上,使用 Thonny 在 'bot 上运行,记录任何错误并就地修复它们(在 Thonny 内),然后转移回 Win-10 机器或在 Windows 10 中修复并传输回“bot”。

“笨拙”是轻描淡写的杰作。

现在我已经在机器人上设置了远程开发,我相信我可以避开大部分。

我注意到,在机器人的工作空间副本中,大多数(如果不是全部)文件现在要么“修改”,要么“未跟踪”,并且从“机器人”更新我的 GitHub 存储库会导致各种混乱。

我想要的是在 **either** 平台上无缝开发的能力。 ( i.e. 在一台机器上所做的更改会在下一次连接时自动反映在另一台机器上。)我希望以这样一种方式执行此操作,即提交和/或更改状态准确地反映在两台机器上。

我可以详细解释为什么这对我有用,但是这个问题已经足够长了。

任何帮助将不胜感激。

stack overflow VS Code: How do I synchronize workspaces between multiple systems?
原文答案
author avatar

接受的答案

好吧,我想我已经明白了。

第一课:

  • 事实证明,我最初的问题实际上更多是关于 workflow 和“做某事的最佳方法是什么”,而不是如何进行双重开发。所以,本质上,我问错了问题。

第 2 课:

  • **You do not have to install the entire VS Code IDE on the remote device**
    这是最初的错误——我误解了“在远程设备上安装 VS Code”,我在两个位置都安装了 **the IDE itself**
    • 结果是它大大降低了机器人的速度,以至于无法使用。
    • 安装了多个 VS Code IDE 实例会导致混淆发生在何处。

第三课:

  • 我没有意识到 VS Code 可以安装一个小型服务器模块(例如各种垫片),并在远程设备上执行一些 SSH 魔法,允许 VS 代码使用远程设备,就好像它是您主计算机的本地设备一样或笔记本电脑。

  • 你要做的是在本地设备上打开 VS Code,然后告诉它你想连接到远程设备进行开发。

  • 一旦你整理好了——这是非常特定于站点的,网络搜索是你的朋友——你可以编辑代码,甚至可以从本地计算机执行代码,并让它在远程设备上运行,就像你在现场一样。

就我而言,(在尝试了几种不同的方法来处理我的项目之后),我发现将 VS Code IDE 放在基于 Windows 的笔记本电脑上,并将“服务器”(垫片)模块放在机器人上,(具有适当的扩展安装),提供几乎无缝的环境,不会明显加载机器人的处理器 - Raspberry Pi 4。

  1. 确保本地计算机上的工作区在 GitHub(这是我的项目仓库所在的位置)上是完全最新的。

  2. 安装必备的VS Code远程开发模块,确保可以与远程系统通信。具体如何执行此操作取决于您的环境。

  3. 使用 VS Code 中的远程开发工具将相关的 GitHub 存储库“同步”或“克隆”到设备,就好像它是您的本地机器一样。

  4. 请注意,这是非常系统和站点特定的。 VS Code 可以很好地帮助您完成此过程,网络搜索将迅速清除任何挥之不去的问题。

最终您将在远程平台上拥有一个完全最新的版本。

完成此操作后,您不必手动同步代码,因为代码已经在“bot.xml”中。您所要做的就是在本地计算机(例如我的 Windows 笔记本电脑)上编辑代码,然后从 VS Code 运行它。

另一个优点是,如果您必须复制或克隆机器人的工作区,或从备份中恢复工作区,(您 **DO** 将项目放在单独的文件夹中,不是吗?),所有“vscode”和“git”信息也位于那里,您可以在完好无损地移动项目后重新打开项目。

此外,如果您在不同位置的不同计算机上设置了 VS Code,则可能会连接到相同的服务器端点并具有相同的可用环境。
i.e. 一个安装在工作的台式机上,另一个安装在笔记本电脑上以便在路上使用(或隔离时),两者都连接到同一个服务器端点。)

  • 注意:我没有亲自做过这件事,可能需要进一步研究。

在工作流程方面,我最终所做的是,我在 VS Code 中完成了大部分开发工作,在机器人本身上远程执行。

有时,如果我想尝试一个快速而肮脏的修复,我会“打破第四堵墙”并直接在“机器人”本身上打开一个编辑器,它会自动在 VS Code 中显示为“已修改”。


答案: