Create a gist now

Instantly share code, notes, and snippets.

Install specific version of Homebrew formula
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
#
# $ brew versions subversion
# 1.7.3 git checkout f8bf2f3 /usr/local/Library/Formula/subversion.rb
# 1.7.2 git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
# 1.6.17 git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# 1.6.16 git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
# 1.6.15 git checkout 809a18a /usr/local/Library/Formula/subversion.rb
# 1.6.13 git checkout 7871a99 /usr/local/Library/Formula/subversion.rb
# 1.6.12 git checkout c99b3ac /usr/local/Library/Formula/subversion.rb
# 1.6.6 git checkout 8774131 /usr/local/Library/Formula/subversion.rb
# 1.6.5 git checkout a82e823 /usr/local/Library/Formula/subversion.rb
# 1.6.3 git checkout 6b6d369 /usr/local/Library/Formula/subversion.rb
# $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# $ brew install subversion
# $ brew switch subversion 1.6.17
# $ git checkout -- Library/Formula/subversion.rb
@xster
xster commented Jul 12, 2012

awesome, thanks!

@ericstone57

great! Thanks!

@SoundLogic

awesome!! thank you!!

@sebastyuiop

Perfect, thanks.

@calderon
calderon commented Feb 7, 2013

That' was perfect! The step cd brew --prefix saves my life! :D thanks

@blissdev

Very helpful, thank you!

@jonmcewen

Very useful for downgrading svn! What does the "brew switch" command do?

@bekacho
bekacho commented Apr 17, 2013

I upgraded tmux from 1.6 to 1.8 and things suddenly stop to work, so I did not need to install it again since it was already installed , so to downgrade :

brew switch tmux 1.6

Thank you for the gist !

@ConnorDoyle

👍
@jonmcewen -- brew switch appears to simply update the symlink in /usr/local/bin to the specified formula version in the Cellar.

@Leviathans

when i brew update
error: Your local changes to the following files would be overwritten by merge:
Library/Formula/subversion.rb
Please, commit your changes or stash them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

@bingeboy

Dude nice! I had 404 from all old versions of SVN but was able to manually drop in 1.7.11 into the svn folder and homebrew picked it up.

@rainchen

git checkout -- Library/Formula/FORMULA.rb this line is not working. I have to replace the -- with the hash of latest commit to get this work

@rainchen

I created a function version https://gist.github.com/rainchen/6363948
usage example:
$ brew-install ssh-copy-id 6.0p1

@netsensei

Works perfectly! Thx!

@hansenc
hansenc commented Feb 4, 2014

When trying to install subversion 1.7.x, I got "Error: No available formula for serf". The workaround was:

$ brew tap homebrew/versions
$ brew install subversion17

as mentioned here. To switch back and forth between the two, you can use brew unlink and brew link.

@revolter
revolter commented Nov 1, 2016

There is no brew versions command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment