11

在我的工作中,我目前在 Virtual Machine 中拥有我的开发环境。当我需要在家工作时,我会将我的虚拟机和我需要的任何数据库复制到笔记本电脑驱动器大小的外部 USB 驱动器上。大约 10 分钟的复制后,我将驱动器放在口袋里回家,将 VM 和数据库复制回我的个人计算机上,然后我就可以开始工作了。我按照相同的步骤将工作带回。

因此,如果我计算等待文件完成复制以便我将工作带回家并再次带回来所花费的总时间,大约需要 40 分钟!我确实可以在家中与我的工作建立 VPN 连接(前提是两个站点的 Internet 都已启动)和不错的 Internet 速度(8 mbps 向下/?向上),但我发现远程桌面进入我的工作机器太慢了,以至于我想工作直接在我的虚拟机上。

因此,在查看我有哪些其他选项或如何改进现有选项时,我对您使用或建议在家工作并保持代码/环境同步的策略感兴趣。

编辑:我更喜欢一个选项,在我离开工作之前我不必将我的更改提交到版本控制中 - 因为我喜欢在我的提交中做出有意义的描述性评论,提交将比仅仅将我的 VM 复制到便携式设备上花费更长的时间驾驶!大声笑另外,我更喜欢我的开发环境也保持同步的解决方案。话虽如此,我仍然对您自己的解决方案非常感兴趣,即使它们并没有完全按照我的意愿解决我的问题。:)

4

23 回答 23

16

分布式/去中心化版本控制系统解决方案将满足您的需求,Git、Bazaar、Mercurial、darcs……您有很多选择。

于 2009-01-12T06:08:18.377 回答
9

使用版本控制软件,如 SVN、SourceOffSite 等。您只需签入所有更改并在需要同步时获取最新更改。

或者您可以使用 Windows Live 同步 -> https://sync.live.com/foldersharetolivesync.aspx

于 2009-01-12T06:02:06.237 回答
5

没有人推荐rsync吗?使用 rsync 客户端发送文件之间的差异。您可以应用这些差异,从而使您的文件保持最新。对于最小的文件传输,这可能是最好的主意。

于 2009-01-12T08:31:35.403 回答
3

我只是使用一个外部便携式笔记本驱动器来完成我所有的工作。我所有的电脑都将它设置为相同的驱动器号。所以不要复制任何东西..我没有尝试过以这种方式运行虚拟机,但我看不出有任何理由它不应该简单地工作。

于 2009-01-12T06:43:34.217 回答
3

我使用保管箱。

于 2009-01-12T06:47:29.157 回答
2

这是我使用的解决方案。

  1. 在办公室网络和笔记本电脑之间设置 VPN。
  2. 安装 VisualSVN 服务器
  3. 加载 SCC 中的所有项目。

在办公室时,我签出一个项目,进行工作,然后签入。在家或在世界各地时,我通过 VPN 连接到办公室,签出我的项目,做我的事情,然后签入。通过 VPN连接我还可以 RDP 到我的开发盒和/或服务器。

希望这可以帮助。祝你好运!

于 2009-03-27T15:14:47.740 回答
2

我们使用 Citrix,然后我在工作中与我的 PC 进行远程桌面连接。它不是世界上最快的解决方案,但它确实消除了使两个或多个工作站保持最新的问题。

于 2009-01-12T06:33:48.823 回答
1

编写程序,它将通过互联网同步您的所有数据,然后关闭您的计算机,所以在一天结束时您启动它,然后回家,当您回家时,所有数据都已经存在

于 2009-01-12T08:09:50.190 回答
1

只需在家里设置一个 SVN 服务器,转发您的路由器端口,然后继续您的生活。rsync 也是一个很好、快速的解决方案。请记住通过 SSH 使用它。

于 2009-01-12T11:40:55.397 回答
1

我们与分布式团队合作,因此每个人都能轻松安全地访问代码存储库至关重要。为此,我们使用 SVN over ssl/https。它运行良好、可靠且安全。

于 2009-01-12T08:37:50.400 回答
1

我要么远程连接到办公室的 SVN,要么连接到我的开发人员或桌面计算机中的 VPN 和远程桌面,然后继续工作。我很少同步任何文件,但是当我这样做时,通常是使用 DropBox (尽管你不能真正用大文件这样做)。

于 2009-01-12T06:33:56.547 回答
0

您还没有指定操作系统和虚拟化系统,但是如果您正在使用可以挂载的 VM 映像,例如 Linux 上的 XEN,那么您可以挂载映像并通过 rsync 同步它。

于 2009-01-12T06:42:35.763 回答
0

我连接到办公室网络并下载最新版本的 svn 使用 Dev mysql 服务器,所以我就像办公室网络中的另一台计算机

于 2009-01-12T06:47:28.860 回答
0

我想复制所花费的大部分时间都涉及数据库。那正确吗?如果是这样,您能否不简单地使用您的 VPN 连接在家中连接到您的工作数据库?

你仍然会复制你的源文件(或者像其他人建议的那样使用源代码控制系统),但这只需要一小部分时间。

于 2009-01-12T07:40:43.120 回答
0

如果您只需要来自工作计算机的虚拟机,那么您可以挂载一个远程目录(使用 nfs 或 smb),您的虚拟机文件存储在哪里,并从那里运行该虚拟机。这应该比使用远程桌面更快。

于 2009-01-12T08:24:55.450 回答
0

Dropbox 和 Microsoft 的 Live Sync 是已经提到的不错的选择。我个人最喜欢的是同样来自 Microsoft的Live Mesh 。在我看来,将其置于其他两个之上的一个重要功能是能够指定哪些文件夹在哪些计算机上同步,以及文件夹所在的位置。因此,例如,我在我的工作机器和我家中的开发盒之间同步我的 Visual Studio 2005/Projects 文件夹,我在我的边演出 VM 和我的家庭开发盒之间同步 Visual Studio 2008/Projects。

于 2009-07-29T18:13:49.763 回答
0

我也使用 DropBox,这是关键,因为保持简单很重要。

如果您可以拥有某种类型的远程桌面功能通常会更好,因为这将允许您使用标准工作站配置,并且允许与网络资源(数据库服务器、工作流等业务服务器等)的一致连接。

在我看来,对于某些任务来说,离线工作是可以的,但总的来说,连接到其他资源的系统存在障碍(除非你打算将这些资源移动到你的 home box)。

于 2009-03-27T15:08:16.913 回答
0

这对我来说也是个问题。所以,公司给我买了一台笔记本电脑,我在家或其他任何地方都可以在上面工作。

于 2009-03-27T15:28:55.977 回答
0

我有一个设置,其中一台机器上的文件夹同步到另一台机器上的文件夹。对一台机器上的内容的任何更改也会在一分钟内在另一台机器上进行。因此,您可以同步工作文件的顶级文件夹,然后同步到您的家用计算机。我喜欢的是同步是完全透明的。就用户体验而言,我只是在使用文件系统。没有可与之交互的外部应用程序。

我使用Microsoft 的Live Sync Live Sync。您需要创建一个 Windows Live ID 才能使用此系统。它适用于 windows 和 mac。

于 2009-03-27T15:39:48.803 回答
0

我有一个类似的问题。但幸运的是,我们配置了源控制服务器 (TFS),因此我只能从存储在外部驱动器上的本地虚拟机中工作,而不是在需要时将所需文件签入 TFS。

于 2009-01-12T06:31:06.567 回答
0

根据您使用的 VM 软件,为什么不设置 2 个不同的 VM 磁盘,将用户配置文件/开发文件保存在一个磁盘上,将操作系统和其他很少更改的程序保存在另一个磁盘上。

这样,当您安装新的东西时,您可能只需复制较大的磁盘映像,最终只复制包含您工作的单个虚拟磁盘即可。

于 2009-01-12T11:12:09.760 回答
0

我有一个装有我所有开发软件的 macbook;当我上班时,我以目标火线模式启动它,并将它插入我的工作 macpro 与快速处理器、局域网连接、大显示器等。这样我永远不必离开我的用户文件夹,但我可以访问所有工作中可用的软件和硬件。

于 2009-08-31T23:32:54.913 回答
0

为什么不直接使用版本控制?DVCS?在这里找到一个针对 Windows 用户的 DVCS 教程(非常简单) http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html

于 2010-03-30T12:33:43.350 回答