2011-02-28 3 views
4

gemfileにgem 'delayed_job'を追加すると、 collectiveidea/delayed_jobまたはtobi/delayed_jobを取得するかどうかをどのように知ることができますか?私のシステムにインストールされている宝石のフォーク/オリジナルを調べる方法は?

また、すでにインストールされている宝石のリストの中から、ダウンロード/インストールされた宝石のフォーク/場所を確認する方法はありますか?

ps。私はUbuntu、Bundler、Rails 3.0.3でRVMを使用しています。

答えて

2

ダウンロードしているgithubフォークまたはブランチを知る方法はありません。 delayed_jobの宝石については、collectiveideaの支店からダウンロードしています。 on this pageにホームページがcollectiveideaのgithub forkを指しているところを教えてください。なぜなら、ルビはルビのリポジトリにリンクされていないからです。それらは単にサイトにアップロードされるパッケージです。あなたが知っている限り、あなたは、インターネット上に公開されていない他の人のローカルリポジトリのコピーから宝石をダウンロードすることができます。 Gitリポジトリではなく、SVNリポジトリからダウンロードすることもできます。一般的に、rubygems.orgのサイトでは、宝石のソースコードを見つける方法をいくつか考えておくべきです。また、ほとんどのgithubの宝石はコミットにバージョン番号を付けるので、github/gitタグをチェックすることでどのリビジョンを使用しているかを知ることができます。

+0

hmm?コマンド 'bundle install'はrubygems.orgから宝石を入手しますか?ギターにも同じことをする目的は何ですか? – Zabba

+0

これは、作成者が共通リポジトリを使用して共同作業し、すべての人がソースコードをより簡単に利用できるようにする方法です。 rubygems.orgサイトにはソースコードが保存されていません。バンドルされた.pkgファイルはダウンロード可能です。 –

+0

GitHubは、宝石以外のコードにも使用されていますが、rubygems.orgにはリンクされていません。 –

1

あなたが使用できるのgitの場所を指定したい場合は、次のgit PARAM:gemspecは、多くの場合、ソースコードリポジトリを示しhomepage属性が含まれていGemfile

1

について

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

Read以上。あなたがローカルにインストールされた宝石のgemspecを表示することができます:gemspecは常にソースレポを持っていない、と述べた

gem spec delayed_job | grep homepage 

gem spec delayed_job 

とのホームページを見ます。

この問題(およびその他の問題)を解決するために、私はgemdiffという名前の宝石を書きました。これはgemspecの検査を行い、github URLが含まれていない場合は、githubで一致するものを検索します。これには、tobiの元のリポジトリのフォークであるdelayed_jobのような宝石の例外が含まれています。もっと大切に

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

gemdiffは、プロジェクトのバンドルを検査し、あなたがインストールしている宝石のバージョンとバンドラーによって決定されるように、インストールすることができる最高のバージョン間のソースコードの差分を表示することができます。

https://github.com/teeparham/gemdiff

関連する問題