0

我是一个使用 Eclipse 作为我的 IDE 和 Subversion 进行源代码控制的典型 Web 项目(Django + PostgresSQL)的独立开发人员。到目前为止,我一直在自己设置的单一开发机器上工作。最近,我被要求在客户站点上做一些工作,并且在一些情况下,在家中访问该站点会很有用。我正在考虑设置它的最佳方法是什么。不幸的是,由于各种原因,笔记本电脑不是一个可行的解决方案,所以我正在考虑的解决方案是:

  1. 在每台机器上安装所有必要的开发工具(PostgresSQL、Eclipse、Django、Python + 库等)并使用 SVN 保持代码同步。
  2. 在我的开发机器上设置某种 VNC 访问权限并远程访问它以完成工作。
  3. 创建虚拟机并使用笔式驱动器在所有机器之间复制映像。

#1 的优势是快速的本地开发,但是我必须在每台机器上设置所有工具并处理它们的配置并保持一切同步。此外,为了在机器之间共享代码,即使它还没有“准备好”,我也必须将其签入 SVN。解决方案#2 解决了这个问题,但代价是 UI 体验变慢。最后,#3 似乎是一个不错的解决方案,但我不确定我是否真的可以在笔式驱动器上安装虚拟映像,并且我不确定性能。

我想没有一个真正“正确”的答案,但我把它扔掉是为了从比我做这件事的人那里得到想法和建议。:)

4

5 回答 5

2

我会说选项 1 仍然是最好的。我假设你家里只有一台电脑,你可以用那台电脑工作,所以设置应该是一次性的。

你是对的,虽然设置时间很繁琐,但它确实弥补了使用 VNC 之类的东西远程工作的缓慢 UI。您提交的代码可能不起作用的问题是一个有效的问题,但是如果您对此感到担心,只需注释掉损坏的代码并确保您的最新版本可以编译。

通过存储库工作是最有效的方法,特别是如果您正在处理一个相当大的项目。你没有笔记本电脑太糟糕了,在笔记本电脑上设置所有工具可以让你在任何地方编码/工作(只要你有互联网连接)特别方便。

无论如何,选项1是我的偏好,我希望它有所帮助。

于 2009-01-26T23:46:07.310 回答
0

如果机器有 e-sata 端口,这可能就是您要找的。为什么不将一和三结合起来,创建一个基础 vm 一次将其部署到所有机器上,并使用 svn 或其他同步工具保持代码同步?如果您不想经常签入和签出源代码控制,只要您不介意让第三方能够查看您的代码,像drop box之类的东西就可以让您保持工作目录同步,尽管他们可能会赢不打扰。另一种选择是创建一个“工作”分支,您始终可以签入和签出,并且仅在它足够稳定且已完成时才将代码移动到主干。

于 2009-01-26T23:48:28.957 回答
0

使用版本控制。如果您担心签入“不完整”代码,请使用分支(用于开发的分支)或标签(标记“已完成”代码)。提交“进行中”的工作有其优势(良好的撤消,帮助您编写良好的变更日志等)。此外,记录您的“设置”过程以便更容易复制也很好。

于 2009-01-27T00:40:44.390 回答
0

此外,为了在机器之间共享代码,即使它还没有“准备好”,我也必须将其签入 SVN。

Git非常明确地解决了这个问题。就离线开发而言,您应该尝试一下 Git。它使管理离线存储库变得非常简单。并且由于其分布式架构在环境之间移动时提供了一些便利。它旨在使工作流程签入经常提前签入。我想你会发现它提供了 SVN 没有的东西。

例如,您可以为不同的环境保留不同的存储库,并轻松合并它们之间的更改。这样,您就可以将存储库与您的 VM 映像捆绑在一起。它们可以显着分歧,但仍然很容易重新合并在一起。

合并是使 Git 成为使用梦想的原因。

观看这两个演示文稿以获得很好的概述。

Linus Torvalds on Git(更多关于 Git 的设计理念)

http://www.youtube.com/watch?v=4XpnKHJAok8

Randall Schwartz 演讲(更实用的概述)

http://www.youtube.com/watch?v=8dhZ9BXQgc4

于 2009-09-23T12:36:53.587 回答
-1

从笔式驱动器运行虚拟机(即使是快速的,但大多数都不是!)将耗费大量时间。

您可以在本地复制它或使用 USB 硬盘,甚至可以使用 Live Mesh 之类的解决方案来同步它。

于 2009-01-26T23:50:05.070 回答