在我的两台计算机上同步Rails开发环境

时间:2009-11-16 11:02:13

标签: ruby-on-rails windows ruby macos synchronization

到目前为止,我一直在使用TextMate在Mac OS X上创建我的Rail应用程序。

这只是我,所以我没有使用过Git。我刚刚打开并关闭了文件系统中的代码,使用AppleScript在关键时刻拍摄带注释的快照,让Time Machine负责其余部分。

我刚刚订购了一台Windows笔记本电脑,我将用于同一个项目。我希望在两台计算机之间自动同步所有内容。

我假设我可以使用Git,Mercurial或SVN同步项目本身。 (无论如何,我必须自学版本控制。)通过为小型私人项目提供免费帐户的服务器进行同步会很不错。如果我可以在每个工作块的开始和结束时继续在Mac OS X和Windows中使用标准的Open和Save对话,而不是使用版本控制命令。关于如何做到这一点的任何想法都尽可能简单?

除此之外,我还要同步Rails版本,Ruby版本,可用的gems以及像ImageMagick这样的可用库。其中一些我想我可以通过在各种配置文件中指定Rails版本等来实现。再一次,有什么想法吗?

如果只是你,Mac和PC,那么你的理想方法是什么?

5 个答案:

答案 0 :(得分:4)

我想分享我对此问题的修复方法。我刚刚开始在Rails中开发,我正在使用两台Windows机器,一台在工作(老师),一台在家里。我只想玩铁轨,但我想在工作/家里做什么来搬到另一台电脑。当我最终偶然发现一个解决方案时,我正准备使用Dropbox。

问题:使用Git

在两台计算机上同步Rails开发

解决方案

我使用 $ rails new app 在PC1上创建我的项目。然后我使用GIT 提交并将origin repo推送到我的github帐户。在工作的第二天,PC2,我使用 git clone 将项目克隆到我的PC2。在测试我的rails应用程序是否有效时,它没有。仍然在PC2上我去了cmd.exe并在我刚刚创建的同一目录上运行 rails new app 。我经历过,不得不手动告诉rails跳过重复文件。最终结果是两个工作轨道应用程序,它们共享一个github仓库,我可以在任何一台PC上编辑代码文件并将它们发回去,而它们可以在另一台上运行。

对于一个在项目上独自工作的人,我认为dropbox方法是最好的,但我正在尝试学习整个开发过程,所以我想要达到我使用git的地步。

答案 1 :(得分:3)

坦率地说,没有特别简单的方法来实现你所追求的目标。例如,需要编译的宝石和库无法镜像到另一台机器,尤其是不同的操作系统。

但是,如果您不想要版本控制的麻烦,我可以为您提供更简单的方法来管理您的项目,DropBox。我现在正在将它用于我的一个铁轨项目。安装软件后,它会在您的计算机上创建一个“dropbox”文件夹。每当您将文件保存到其中或更新其中的文件时,它都会立即安全地上传到他们的免费服务器,然后下载到安装了该软件的每台计算机上。这允许您继续使用您习惯使用的“打开”和“保存”对话框,同时还保留您对服务器所做的每次更新的历史记录。

它不是版本控制的答案,它实际上并不意味着。 Git和Mercurial仍然值得学习,但是当你不需要那么多的控制时,它是一个很好的中间立场和完美。值得一看,即使只是一般备份。

P.S。我不喜欢Dropbox,我只是喜欢它。

答案 2 :(得分:2)

我真的建议在Github.com开设一个免费帐户并自学git。学习命令行不需要很长时间,一旦开始使用它,您就可以理解为什么命令行一直持续到今天。

另外,虽然我没有使用它,但是这里似乎有一个很好的Git包用于TextMate: http://gitorious.org/git-tmbundle

答案 3 :(得分:0)

我同意GIT是管理版本控制的好方法,但另一种方法是使用虚拟机。这意味着您可以在VMWare或VirtualBox下的Ubuntu下创建开发环境,然后将虚拟映像从一台计算机复制到另一台计算机。这样您就不必为不同的操作系统设置两次,这可能是一个真正的痛苦。使用这种技术意味着在Mac和Windows下一切都是一样的,如果你只有源代码更改,那么你仍然可以使用GIT来保持图像的最新状态。

答案 4 :(得分:0)

我以为我会写这个旧问题的更新。我确实使用Dropbox来同步代码和git存储库。我觉得这部分很简单,我的代码永远不会过时。更大的问题是处理依赖关系。如今,这比以前容易得多,因为当你坐在不同的机器上时,你的gemfile会被同步,你可以“捆绑安装”。几乎任何你忘记的东西都会抛出一个错误,这就像一个友好的提示,你必须rvm使用它,或brew安装。你已经在一台机器上做了什么,所以不需要太长时间才弄明白。

关于Git:Git没有同步任何东西。它用于保存代码(“提交”)或保存备用版本(“分支”)。它还用于推送到远程备份(如Github)或部署服务(如Heroku)。我曾经充满激情地讨厌它。我明白它应该帮助我控制版本,但不知道它是如何工作的,并且不相信它。如果我正在进行大更新,我会将app目录复制到备份中。几年后,我像一个寿司厨师挥动刀,巧妙地分开分支,合并,偶尔重置--HARD。

学习Ruby / Rails比学习使用像Git,RVM和Homebrew这样的工具要少得多,但它们也是使21世纪的编程变得有趣和富有成效的重要部分。

相关问题