0

所以,我有一个 mercurial 存储库,它有一个主项目和 2 个项目扩展。让我们调用项目 A 以及扩展 B 和 C。因此,repo 在 repo 中有 3 个文件夹,A、B 和 C,在我的本地计算机中,这些文件夹位于“~/Documents/Aptana Studio 3 Workspace/”中。在项目 A 的 gemfile 中,我有以下几行:

gem "B", :path => "~/Documents/Aptana Studio 3 Workspace/B/"
gem "C", :path => "~/Documents/Aptana Studio 3 Workspace/C/"

当我使用 Capistrano 进行部署时,出现错误:“路径/home/username/Documents/Aptana Studio 3 Workspace/B不存在。” 这一点也不奇怪。但是,我真的不知道如何解决这个问题,以便远程服务器和我的本地主机中的路径相同。远程服务器上的正确目录是“~/rails/B”。如果我更改了此服务器端,它将在下次部署时被覆盖。从技术上讲,我可以在本地计算机上创建一个名为 rails 的文件夹,以便它们都位于相同的目录结构中,但这似乎并不是一个优雅的解决方案。

我读过关于将 3 个文件夹拆分到它们自己的存储库中的信息,但在 mercurials 网站上它说这是不好的做法。

有没有办法解决这个问题而不必在我的本地主机中移动我的项目文件夹?

4

1 回答 1

1

我最终使用了 git 而不是 mercurial。由于 bundler 喜欢 git 并且 git 可以在一个项目中轻松处理多个存储库,所以我切换到它。我在 git 上将项目拆分为 3 个存储库。

我的 gemfile 现在看起来像这样(在将 SSH 密钥添加到 bitbucket 之后):

gem "B", :git => "git@bitbucket.org:username/B.git", :branch => 'master'
gem "C", :git => "git@bitbucket.org:username/C.git", :branch => 'master'
于 2012-10-16T16:19:04.047 回答