哪个提交是由哪个关于红宝石的特定版本创建的?



我正在尝试创建发布历史记录,如何确定从哪个提交创建了特定版本的 Gem rubygems.com?当我提取 *.gem 存档时,它不包括任何提交的日志记录。

编辑:发布被推送到红宝石,而没有使用相关标签更新 github 存储库,我想用适当的发布标签回填 github。

简单的答案:你不能!

Rubygems 上的 gem 版本和 Git 中的提交或标签是两个完全不同的概念,没有任何共同点。

您已经发现 gem 不包含有关使用 git 或特定提交的任何信息。如果您考虑这一点,那么 gem 不包含有关所用版本控制系统的信息是有道理的:

  • 没有必要同时使用 Rubygems 和 Git。实际上,在构建 gem 时根本不需要使用版本控制系统。
  • 即使作者使用了版本控制系统,还有其他版本控制系统 - 例如SVN或Mercurial。
  • 即使作者使用 Git 来跟踪他们的源代码更改,他们仍然可以创建和上传多个不同版本的 gem,而无需同时执行单个 git 提交。
  • 即使作者为每个 gem 版本都进行了提交,那么 - 取决于 gem 和 git 存储库的配置 - 两个系统都可以包含一个系统上存在的文件,但在另一个系统上不存在。

也就是说,假设特定的 gem 版本对应于特定的 git 提交是错误的。

通常,在gem 页面上会有一个指向源代码的链接 rubygems.org

从那里你应该被带到回购,例如,如果你访问 https://rubygems.org/gems/devise 你会在页面的右侧看到链接,上面写着Source Code应该链接到

https://github.com/plataformatec/devise/

然后,您只需单击存储库顶部的releases或转到 https://github.com/plataformatec/devise/releases

在那里,您将看到构建发布的提交。

如果您只是从 rubygems.org 下载 .gem 文件,则只包含 gem 代码本身,而不包含任何 git 历史记录。 如果你想要完整的 git 历史记录,你应该将存储库克隆到本地计算机。 为此,请单击存储库主页顶部的"Clone or download"按钮。 如果您从那里复制 URL,只需转到您的终端并输入

git clone <paste repo url here>

最新更新