我是一名开发典型网络项目(Django + PostgresSQL)的独立开发人员,使用Eclipse作为我的IDE,使用Subversion进行源代码控制。到目前为止,我一直在研究我自己设置的单个开发机器。最近,我被要求在客户现场做一些工作,并且在某些情况下,在家中访问该网站会有所帮助。我正在考虑设置它的最佳方法是什么。不幸的是,由于各种原因,笔记本电脑不是一个可行的解决方案,所以我想到的解决方案是:
#1的优点是快速的本地开发,但是我必须在每台机器上设置所有工具并处理它们的配置并保持所有内容同步。另外,要在机器之间共享代码,即使它没有“准备好”,我也必须将其检入SVN。解决方案#2解决了这个问题,但代价是较慢的UI体验。最后,#3似乎是一个不错的解决方案,但我不确定我是否真的可以在笔式驱动器上安装虚拟映像,而且我不确定性能。
我想这并不是一个“正确”的答案,但是我把它扔出去得到那些比我做得更久的人的想法和建议。 :)
答案 0 :(得分:2)
我认为1号选项仍然是最好的。我假设你家里只有一台电脑,你可以在那台电脑上工作,所以设置应该只是一次性的。
你是对的,设置时间相当繁琐,但实际上它弥补了使用像VNC这样的远程工作的慢UI。提交可能不起作用的代码的问题是有效的,但是如果您对此感到担心,只需注释掉损坏的代码并确保编译最新版本。
通过存储库是最有效的方法,特别是如果您正在处理一个相当大的项目。你没有笔记本电脑太糟糕了,在笔记本电脑上设置所有工具可以在任何地方进行编码/工作(如果你有互联网连接),特别方便。
无论如何,选项1是我的偏好,我希望它有所帮助。
答案 1 :(得分:0)
如果机器有电子sata端口this可能正是您正在寻找的。为什么不组合一个和三个,创建一个基础vm立即将它部署到所有机器并使用svn或其他同步工具保持代码同步?如果你不想经常检查和退出源代码管理,只要你不介意让第三方能够查看你的代码,drop box这样的内容就可以让你保持同步工作目录他们可能不会打扰。另一个选择是创建一个“工作”分支,你总是检查进出,只有当代码足够稳定并稍微完成时才将代码移动到主干。
答案 2 :(得分:0)
使用版本控制。如果您担心签入“不完整”代码,请使用分支(分支开发)或标签(标记“已完成”代码)。承诺“进行中”工作有其优点(良好的撤销,帮助您编写好的更改日志等)。此外,记录您的“设置”过程,以便更容易重现。
答案 3 :(得分:0)
另外,要在机器之间共享代码,即使它没有“准备就绪”,我也必须将其检入SVN。
Git非常明确地解决了这个问题。对于离线开发,你应该试试Git。它使管理离线存储库变得非常简单。而且由于其分布式架构在环境之间移动时提供了一些便利。它旨在使工作流程经常检查早期签入。我想你会发现它提供了SVN没有提供的东西。
例如,您可以为不同的环境保留不同的存储库,并轻松地合并它们之间的更改。这样,您就可以将存储库与VM映像捆绑在一起。而且他们可以发生巨大的分歧,但仍然很容易合并回来。
合并是让Git成为梦想的原因。
观看这两个演示文稿,以获得精彩的概述。
Lint Torvalds on Git(更多关于Git的设计理念)
http://www.youtube.com/watch?v=4XpnKHJAok8
Randall Schwartz演讲(更实用的概述)
答案 4 :(得分:-1)
从笔式驱动器运行虚拟机(即使是速度较快的驱动器,大多数都不是!)会耗费大量时间。
您可以在本地复制或使用USB HDD,甚至可以使用Live Mesh等解决方案进行同步。