3

更新:我看到有人试图将 PyCharm 与 SSHFS 一起使用,JetBrains 说:“不”。也许这行不通?

我正在尝试在我工作的客户办公室的 SSHFS 安装磁盘上使用 WebStorm——我以前从未使用过 SSHFS。我使用的是 OSX 10.9.2,通过 home-brew 安装了 SSHFS 并安装了 OSXFUSE。

SSHFS 挂载在任何情况下都会定期卸载,但由于我开始尝试使用 WebStorm,它每次启动 WebStorm 时都会卸载并开始扫描 SSHFS 磁盘上的文件 — WebStorm 给出消息“外部文件更改同步可能很慢:无法观看项目文件(它们是否在网络挂载下?)”,如果我尝试打开文件,它会冻结。与此同时,SSHFS 磁盘已被卸载。如果我通过终端重新安装,WebStorm 会不高兴,要么冻结,要么就坐在那里。

我使用“现有文件中的新项目”设置了 WebStorm 项目——有没有办法使用 SSHFS 作为服务器来设置它?除了 SSHFS 光盘的登录名和密码之外,我没有任何其他特定于服务器的信息,但也许可以得到它。

感谢您的帮助 - </p>

4

1 回答 1

6

我就是这样操作的,说不定能帮到你。如果有一个配置设置我似乎已经掩盖了,请问我会解决这个问题。但总而言之,这是非常成功的:

我的构建环境隐藏在 Linux 发行版中,但我的开发环境位于 Mac 桌面(当我在工作时)和 Mac Air(当我在家时)。我的项目非常庞大,根据合同,如果我的笔记本电脑被盗,我无法将代码移动到任何可以访问的机器上。所以我几乎必须使用 ssh(和 sshfs)来完成任何事情。

当我在家,坐下来工作时,我会手动启动 VPN——因为有很多变化,我假设你知道如何做这部分。

我打开一个终端并调用:

caffeinate &

因为我讨厌在计算机进入屏幕保护程序时断开连接。这可能是您断开连接的原因?每当我开发时,我都会打开这个终端。我还使用 tmux 以便我的终端会话可以在计算机之间共享。反正...

我在服务器和客户端之间设置了一个挂载点。我有一个脚本,我在挂载点关闭时运行(为您自己的工作定制):

umount -f /Volumes/$MOUNTDIR/
umount -f /Users/$HOMEUSER/$MOUNTDIR
mkdir /Users/$HOMEUSER/$MOUNTDIR
sshfs $HOMEUSER@@SERVERADDR:/usr/$HOMEUSER/$MOUNTDIR /Users/$HOMEUSER/$MOUNTDIR

然后我启动了 Webstorm、PyCharm、ADS、IntelliJ(我是 Jetbrains 的粉丝)。

此时您可以打开 $MOUNTDIR 中的目录并开始工作。如果您发现需要运行构建,这里有一个提示——不要在本地构建。而是使用 SSH 在服务器上发出构建命令(或运行脚本)。构建运行后同步的开销很可能远低于获取和写入构建的所有步骤。

如果我丢失了 VPN,我只会发现我会断开连接。每当计算机进入睡眠状态时,我都会断开连接。咖啡因解决了这个问题。

对于合理规模的项目,这可能就是您所需要的。所以接下来是一个优化——只有在你头疼的时候才这样做:

为了加快加载时间,我所做的是创建一个不属于挂载的本地项目。在您作为项目打开的第一个目录的基础上,有一个 .IDEA 目录被创建并写入很多内容。这个目录里面有很多被写入很多的文件,根据你的网络速度,它可能会导致悲伤。这确实意味着无论你走到哪里都必须维护一些设置,但在我的情况下,为大幅提高性能付出的代价很小。

所以因为我这样做,我必须手动将目录添加到我的项目中(在 Preferences/Directories 下)。但是,如果您使用庞大的 API,您可能还是会这样做。我小心地将不需要引用的目录标记为“排除”,以使索引器的工作更轻松。我与数以千计的其他员工在一个共享目录结构中工作,并确保流不会交叉。

现在我有成千上万个文件,而且同步确实很慢。但是只有当你离开应用程序并重新进入时才会触发同步。老实说,只要你有一个合理的互联网连接,它并没有那么糟糕。

我希望这有帮助。一旦我开始使用它作为我的工作流程,我就再也没有回去过。

于 2014-09-20T22:54:54.720 回答