我们的开发团队使用Eclipse + Aptana进行Web开发工作。目前,他们中的大多数都将他们的Eclipse项目直接映射到Web服务器。我宁愿他们创建一个本地项目,并使用它来同步他们正在处理的Web服务器项目目录。
问题在于,鉴于两者的普及,没有任何好的解决方案令人震惊。
Eclipse的FileSync插件只是单向的。这意味着如果另一个开发人员对服务器上的文件进行了更改,则甚至不会通知另一个开发人员,并且可能会覆盖此更改。
Aptana 2.0中的文件传输选项不支持任何类型的同步,只需手动上传/下载文件。
Aptana 1.5.1中的“同步”选项不允许您在文件不同时合并文件。您只能更新其中一个。但它允许您查看差异(但只有在您右键单击并选择时),并且在该差异中您无法进行任何更改。
我确实找到了一种方法,允许使用Eclipse Monkey将文件上传到Aptana中的Sync存储库。但是,如果用户一次保存多个文件,“全部保存”,则无效,再次无效。此外,如果用户打开服务器上具有更新副本的本地文件,则不会发出通知。我尝试使用Eclipse Monkey添加一个,但是我在Eclipse API中找不到任何类型的监听器来执行它,并且任何Eclipse Monkey文档都很少。
此时我唯一的解决方案就是让他们继续直接映射到服务器或要求他们在做任何工作之前进行手动下载(但如果有人在他们这样做之后立即上传了更改,那么又是如此)。
有人有什么想法吗?
答案 0 :(得分:4)
2010年4月
将 EGit 添加到Eclipse + Aptana设置中,并且:
git pull
更新本地工作目录,其中包含合并/更新的源(或使用{{{{ 3}})简而言之,当您谈到文件同步+合并时,这是(D)VCS的作业(my previous SO link:Version Control System或Centralized)
2011年10月:在评论中提及Distributed VCS,xmedeko有自己的Aptana3。
它与EGit不太兼容:见Git plugin。
答案 1 :(得分:1)
添加到VonC答案(这是正确的恕我直言),在这种情况下可能存在的原因是你采用的进程本身不正确,除了使用的工具。
如果我理解得很清楚,您不应该允许也不应该从项目的开发版本直接上传到Web服务器。合并不是远程同步工具的工作,它应该在部署阶段之前发生(上传到Web服务器实际上是部署)。
您应该从开发历史中的某个点(根据您发布的时间轴)获取专用存储库,这是已经发生合并的点。然后在本地/暂存Web服务器上部署它(通过文件同步,如果您需要,但这不是必需的)。
执行您在主动运行的网站上运行的任何测试(即集成和/或功能测试)。如果有任何错误&修复,有不同的方法来实际应用修复和开发&登台代码库。只有在此之后,才将登台存储库部署到生产Web服务器上(同样,同步工具也是一种方法)。