1

gemのバージョンリリースにタグを付ける習慣があることに気づきました。このようにして、バンドラーが特定のタグをチェックアウトし、その特定のgemspecを構築しようとすることを理解できました。

しかし、私はSvenFuchsからgem-releasegemも見つけました。バンプコマンドがgemのバージョンごとにタグを作成していることを期待していました。ただし、発生しているのはversion.rbファイルの変更だけです(タグは作成されていません)。私が言うとき、正確に何が起こるかについて、いくつかの光を当てていただけませんか。

gem "some_gem","0.0.1"

そして私が言うとどうなりますか:

gem "some_gem","0.0.2"

バンドラーはどのようにそれらをインストールしていますか?上記のコマンドの代わりに(gemのリポジトリのクローンを作成したと仮定して)、次のように記述した場合はどうなりますか?

gem "some_gem","0.0.3",:path => "~/some/path"

正しいgemバージョンは現在どのように使用されますか?

4

1 に答える 1

1

Bundlerはデフォルトで、Githubからではなくhttp://rubygems.org/からgemを取得します。Rubygemsには、作成者が実際にリリースしたときに実際にリリースされたバージョンがあります。

gitアドレスからインストールするようにバンドラーに指示した場合。、:git => "git://github.com/svenfuchs/gem-release.git"またはgithubを使用すると:github => "svenfuchs/gem-release"、実際にはリポジトリから取得されます。

他のオプションが指定されていない場合、bundlerはデフォルトのブランチ(マスター)で最新のコミット(HEAD)を取得します。この場合、バンドラーはバージョンをコミットハッシュと見なします。同様に、:branchオプションを指定すると、別のブランチが使用されます。

バージョンを指定すると、要求したバージョンに一致するタグが検索されます。タグはコミットの一部ではないことを知っておく必要があります。gitリポジトリのタグは、コミットへのポインタです。https://github.com/svenfuchs/gem-release/tagsでタグを参照すると、すべてのタグを見つけることができます。

v0.4.1タグがコミットハッシュを参照していることに気付くでしょう。これはコミット34f563bd294c2...にリンクしています。ただし、タグはコミットの一部ではないため、コミット自体にタグ付けアクションは表示されません。タグがそのコミットを参照していることだけがわかります。

于 2012-09-08T00:05:19.230 に答える