关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
7年前关闭。
Improve this question
首先介绍一下背景。
在我的整个开发生涯中,我一直在 MS 平台上工作。直到两周前,我从未启动过除 98/XP/Vista 之外的任何其他操作系统。我很久以前就开始使用 VSS,大约 2 年前更改为 SVN。对于 SVN,我使用 TortiseSVN 并使用标准的分支/标签/主干设置。
我的项目也是独立的,这意味着我可以去一个新的开发框,拉下一个存储库,打开 VS,按 F5,它就会运行(大部分时间)。所有依赖项都存储在 lib
中文件夹,源代码在 src
文件夹等...
为了学习新事物,我决定构建一个 Ruby on Rails 应用程序并创建了一个基于 Ubuntu 的开发机器。我已经启动并运行了一个 SVN 服务器,并且正在与另一个人一起在这个项目上工作。他碰巧使用 Mac 作为他的开发机器。
现在是问题。
我似乎在为如何管理各种版本的 ruby、rails 和我正在使用的所有插件而苦苦挣扎。我似乎也在努力在 Ubuntu 上使用 SVN。
所以 Ubuntu 预装了 Ruby。我想说它是 1.8.5 版本。无论哪种方式,我都为我正在使用的插件(社区引擎)安装了一堆 gem 。作为 *nix 的新手,我没有使用 sudo
在安装它们并遇到各种问题时。我最终彻底摆脱了 Ruby 并重新开始。这似乎奏效了。
但问题是,在我提交我的代码之后,另一个人得到最新的,他必须经历安装 gems 的整个过程。
在 RoR 应用程序中管理 gem 和插件的最佳实践是什么? 我不在乎是否将无数文件添加到 SVN。磁盘空间和网络带宽很便宜。我只是不知道如何正确地做到这一点。
等到SVN。
我已经安装了 RapidSVN,但经常遇到文件夹被锁定的问题。有几次我意识到我的错误,其他人,我不知道为什么。但在这两种情况下,我都无法修复它。我最终备份了我的代码,下载了一个新的工作副本,然后手动移动更改并在将它们提交到项目时变得更聪明一些。
昨晚我实际上有点 RTFM,发现我应该为我的 repos 创建一个书签,然后从那个书签做一个“结帐工作副本”。我不知道为什么,但是好的,这就是手册所说的......
在 Ubuntu 上的 RoR 项目中使用 SVN 有哪些最佳实践?
我真的在寻找这个的一步一步的过程。
编辑
我忘了提一下,我将 NetBeans 用于我的 IDE,虽然我还没有查看它有什么样的 SVN 支持(如果有的话)。我查看了 RubyMine,很想使用它,但它现在似乎太不稳定了。
最佳答案
对于插件,我个人建议将它们粘贴在 vendor 文件夹中并将它们添加到 SVN,就好像您自己编写代码一样。 Piston 也是一个很好的解决方案,但是当所有常用插件都开始迁移到 github 时,就放弃了它(piston 从那时起就不可靠了)
对于 gems,希望您使用的是 rails 2 或更高版本。您应该在 config/environment.rb
中列出您需要的 gem 。使用 config.gem
. Here's a bunch of information about that feature
这意味着如果您添加新的 gem,下次您的同事更新时,他的 rails 应用程序将无法启动,直到他获得必要的 gem。然后他可以使用 sudo rake gems:install
一步安装它们。
您可以更进一步,将您的 gem 放在 vendor 目录中。这通常被称为“供应商一切”。最简单的方法是列出您在 environment.rb
中使用的所有 gem 。如上,然后运行rake gems:unpack
.然而,这种方法有两个问题,所以我不想自己使用它。
这对您来说可能不是问题,或者可能值得忍受,这只是个人喜好。
.c
源代码已下载,gcc
运行以专门为您的系统编译它。如果您在 ubuntu 上安装了原生 C 扩展,然后将其放在 vendor 文件夹中,然后尝试在 OS X(甚至可能是不同版本的 ubuntu)上运行它,它很可能会使您的 ruby 进程崩溃并带来您的应用程序下。
如果您所有的 gem 都是纯 ruby ,那么这不是问题,但这只是需要注意的事情。
关于ruby-on-rails - 在 Ubuntu 上构建 Rails 应用程序时寻找 SVN 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284732/