2011-02-28 84 views

回答

2

没有一种方法可以告诉你从哪个github fork或branch下载。对于从collectiveidea的分店下载的delayed_job gem。您可以告诉on this page首页指向collectiveidea的github分支。你不能分辨出哪个fork是因为rubygems没有链接到github库。他们只是上传到网站的软件包。对于你所知道的,你可以从某个甚至没有在互联网上发布的本地存储库副本中下载一个gem。你也可以从SVN仓库而不是Git仓库下载。一般来说,rubygems.org网站应该给你一些关于如何找到gem的源代码的想法。此外,大多数github gems都会使用版本号标记它们的提交,以便通过检查github/git标记来确定您正在使用哪个版本。

+0

hmm?所以'bundle install'命令从rubygems.org获取gem?那么在github上也有同样的事情的目的是什么? – Zabba 2011-02-28 21:54:10

+0

这是作者使用公共存储库进行协作并使源代码更容易为所有人提供的一种方式。 rubygems.org网站不存储源代码,它只存储可下载的捆绑.pkg文件。 – 2011-02-28 21:55:46

+0

GitHub也用于代码以外的宝石,它没有链接到rubygems.org。 – 2011-02-28 21:56:21

1

如果你想指定你可以使用git位置:混帐PARAM:

gem "delayed_job", :git => "git://github.com/collectiveidea/delayed_job.git" 
gem "delayed_job", :git => "git://github.com/tobi/delayed_job.git" 

Read更多的Gemfile

1

的gemspec包含homepage属性,这往往显示的源代码库。您可以查看本地安装的宝石的gemspec有:

gem spec delayed_job 

查看网页上:

gem spec delayed_job | grep homepage 

这就是说,gemspec并不总是源回购。

为了帮助解决这个问题(和其他人),我写了一个名为gemdiff的宝石。它执行gemspec检查,如果它不包含github URL,它将搜索github进行匹配。它包括delayed_job之类的宝石例外,它是tobi原始资料库的一个分支。

gem install gemdiff 
gemdiff find delayed_job 
=> http://github.com/collectiveidea/delayed_job 

更有价值,gemdiff将检查项目的捆绑,能够显示您已经安装了宝石的版本,可以安装,通过打捆确定的最高版本的源代码差异。

https://github.com/teeparham/gemdiff