Descobrir a versão gem que provavelmente está causando o erro constante não inicializado

Chegando a um projeto antigo sem um bom versionamento de gem, muitas vezes é possível ficar preso tentando resolver qual versão de gem fez tudo quebrar.

Aqui está uma pequena dica para ajudá-lo a encontrar a versão de gema relevante de minhas aventuras com clipe de papel.

O projeto usava uma versão antiga da gema de anexo de arquivo ‘clipe de papel’, mas agora estava apresentando o seguinte erro:

ActionView::Template::Error (uninitialized constant AWS::S3::Base)

O Stackoverflow estava me dizendo que a constante acima ‘AWS :: S3 :: Base’ foi removida na versão mais recente do clipe de papel, mas qual versão?

Na verdade, é muito fácil e divertido pesquisar o log do git e encontrar commits que alteraram o valor da string especificada. Aqui está o que eu fiz.

  1. Clone e entre no projeto localmente:

    $ git clone https://github.com/thoughtbot/paperclip.git

    $ cd paperclip

  2. Pesquise o histórico do git por minha string:
    (pesquisa as mensagens de commit e os próprios commits)

    $ git log -S "AWS::S3::Base" -4

(o -4 é apenas para mostrar as últimas 4 entradas para que eu não receba muitas)
.. 4 entradas são listadas, .. este parece ser o único ..

commit 75f413da0f346be3f4b08199c3b7966d2bd5442d
Autor: Prem Sichanugrist s @sikachu .com
Data: Sex 9 de dezembro 17:47:21 2011 -0500
Use AWS :: SDK em vez de AWS :: S3

  1. Procure por tags no commit.

    $ git describe 75f413da0f346be3f4b08199c3b7966d2bd5442d

v2.4.5-33-g75f413d

Oh versão 2.4.5! Então aí está você!

Essa é a versão que você quer farejar.

Revise o repo, se estiver no github, procure por esse branch, se tiver sorte, você pode encontrar mais informações no arquivo Leiame, changelog ou histórico.