Version control 如何使用PHPStorm处理大量远程文件

Version control 如何使用PHPStorm处理大量远程文件,version-control,phpstorm,remote-access,Version Control,Phpstorm,Remote Access,我有一个小的Debian VPS盒,我在上面托管和开发了一些小型的私有PHP网站。 我使用PHPStorm在Windows桌面上开发 我的大多数项目只有几十个源文件,但也包含几千个lib文件 我不想在本地计算机上运行Web服务器,因为这会产生一系列问题,我不想为这样的小项目而烦恼(例如,设置另一个Web服务器,在我的桌面和VPS框之间同步文件;管理Windows和Debian的不同配置(不同的主机、路径…)保持数据库模式和数据同步) 我正在寻找一种在大量远程文件上使用PHPStorm的好方法。

我有一个小的Debian VPS盒,我在上面托管和开发了一些小型的私有PHP网站。
我使用PHPStorm在Windows桌面上开发

我的大多数项目只有几十个源文件,但也包含几千个lib文件

我不想在本地计算机上运行Web服务器,因为这会产生一系列问题,我不想为这样的小项目而烦恼(例如,设置另一个Web服务器,在我的桌面和VPS框之间同步文件;
管理Windows和Debian的不同配置(不同的主机、路径…)保持数据库模式和数据同步)

我正在寻找一种在大量远程文件上使用PHPStorm的好方法。

我目前的做法是:

  • 在Windows中装载远程文件系统(通过pptp/smb、ftp、webdav尝试)并使用PHPStorm将其作为本地文件处理。
    =>索引、同步和PHPStorms VCS支持变得异常缓慢。这可能是由于文件访问的高延迟。
  • PHPStorm提供了将远程文件自动复制到本地计算机,然后在进行更改时同步这些文件的可能性。
    =>初始复制后,速度很快。不幸的是,在这种设置下,PHPStorm无法提供我大量使用的VCS支持。


    非常感谢您对此提出的任何想法:)

    我在一个非常类似的设置中使用PhpStorm作为您的第二种方法(本地副本、自动同步更改)以及重要的VCS支持

    理想;最简单的根据我的经验,最简单的解决方案是在本地机器上签出/克隆您的VCS分支,并将您的远程文件系统用作不了解VCS的暂存平台;普通文件系统

    真实世界;需要远程VCS但如果(如我的情况)需要在每个系统上安装VCS;也许您的远程环境是您的商店的标准,或者您的商店的专有审查/构建工具是特定于平台的。然后需要稍微不同的远程设置,但是将远程系统视为登台仍然是最好的方法

    示例:Performce-集中式VCS(客户端工作空间) 根据我的经验,通过在本地和远程系统之间共享相同的客户机工作空间,可以最好地处理基于工作空间的VCS系统(例如Perforce),这样做的好处是VCS文件状态更改只需应用一次。缺点是远程系统上的文件系统更改通常必须手动处理。在我的情况下,我手动chmod(或操作系统等效)我的远程文件和洗手(问题解决)。另一种方法(双工作空间)需要更多的活动部件,我不建议这样做

    示例:Git-分布式VCS 更简单的方法当然是Git,它具有检测文件更改的神奇魔力,而无需将文件权限直接耦合到VCS。这使生活变得简单,因为您可以简单地从一个通用的工作分支开始,创建两个单独的分支,例如“my feature”和“my feature remote proxy”。一旦您决定将更改合并到上游,您就可以(理想情况下)从本地环境进行合并。可以还原远程代理分支或执行任何您想要的操作。注意:对于Git,我总是有两个分支,因为这很容易。当你的硬盘在一次奇怪的闪电袭击中融化时,你会有额外的冗余:|


    希望这有帮助。

    我决定在这个问题上悬赏,因为我有类似的问题。PHPStorm是我使用过的最好的ide,但这是它最大的局限性。它无法有效地处理远程文件。我的方法是在小型项目中使用PHPStorm,在FTP/SFTP上使用PHPDesigner处理远程项目,这很好,PHPDesigner能够创建类的层次结构等。。我确信,即使在团队中工作,我的文件也始终是最新的……Hi Imran,文档只是说IDE不支持在远程服务器上直接编辑,尽管这个问题的作者描述了一种解决方法,但这是一种缓慢的过度使用。在PHP Storm中,通过本地文件与远程主机协作可能不是一个选项,因为它不会同步服务器上其他人所做的更改PHPStorm确实具有远程更改感知。请参阅设置->部署->选项[“通知远程更改”]。PhpStorm还提供了针对远程的差异功能。不过,最安全的设置是规定每个工程师都有自己的远程开发环境,然后将本地签出作为记录源。通常,远程系统上的更改会导致开发环境隔离性差,应该解决这个问题,因为这是一个基本问题,可以很容易地解决。