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.
Clone e entre no projeto localmente:
$ git clone https://github.com/thoughtbot/paperclip.git
$ cd paperclip
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
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.