Amp: A Revolution in Source Version Control (in Ruby!)
Amp is a new Ruby based project that aims to "change the way we approach VCS" (version control systems). Currently it's basically a port of the Mercurial version control system - a common alternative to the Git system that's more popular in Rubyland - but it aims to abstract things to the point where it could be used in place of Git, Bazaar, SVN, CVS, Darcs, and so forth.
The creators of Amp believe that while there are lots of great repository formats out there, none of the official clients are "truly good software" and so they're aiming to build something that abstracts away all of the pain into a heavily customizable Ruby library and client. Even now you can add your own commands to Amp or adjust those that already exist, meaning you can totally customize a powerful source control tool to your own taste.
One of the points that's constantly stressed on Amp's rather well designed official site is that the project is actively looking for new contributors and help. They have a repo on GitHub if you want to fork and issue pull requests, as well as an IRC channel on Freenode, #amp.
[ad] Find duplication, code smells, complex code and more in your Ruby code with Caliper! The metrics are free and setup takes just one click. Get started!
November 27, 2009 at 9:19 pm
Hey
Thanks for the post! However, we actually would prefer people to fork from the bitbucket repository (http://bitbucket.org/carbonica/amp) instead of the github repo.
Thanks,
Ari Brown / seydar
November 27, 2009 at 9:55 pm
so pointless
November 28, 2009 at 5:39 am
Shorter version of Amp's description: multi-VCS scripting language.
November 28, 2009 at 12:45 pm
I hope that this project does well. Git is an incredible piece of technology, and I don't want to go back to Subversion, but I do feel that we lost some things in the transition. Git is built by UNIX hackers for hackers, and that approach runs all the way through from the architecture to the rather bare-metal interfaces, so graphical tools built specifically for Git are probably always going to be what John Gruber calls spray-on usability - http://daringfireball.net/2004/04/spray_on_usability
November 30, 2009 at 1:48 pm
On Ubuntu Karmic Koala, I get the following:
extconf.rb:22: libz2 not found (RuntimeError)
when installing the gem. However, no libz2 is available via apt.
Is this tied to Mac currently?
November 30, 2009 at 2:57 pm
I don't see the point of re-implementing every existing VCS. The only marginal one I can see is darcs, as attempting an OO implementation of it's patch engine may produce some useful knowledge (largely as documentation of its patch algebra). But even that is hard to sell without a more compelling reason. Isn't this a huge duplication of effort?
December 1, 2009 at 4:25 am
@Jack - there is already a bug posted on the lighthouse tracker and we are working to fix it.
@Ashley - have you ever wanted to extend a VCS? Use it from Ruby? Also, there is s0 much to learn by writing Amp. Amp isn't about just duplicating effort. The duplication part, really, was to bring us up to speed with the implementation. The real purpose is in going beyond.
December 1, 2009 at 4:26 am
Also, our IRC channel is #amp-vcs (still on irc.freenode.net), if anyone cares.
December 2, 2009 at 1:05 am
@seydar: we do care...don't let naysayers get you down. ;)
December 11, 2009 at 8:13 pm
"Currently it's basically a port of the Mercurial version control system - a common alternative to the Git system that's more popular in Rubyland"
Are you kidding!? Git is far more popular in Ruby land than Mercurial. I'm not knocking Mercurial, but I really doubt it comes anywhere close to Git in popularity. SVN (as much as its users don't want to admit it) might surpass Git's popularity, but not Mercurial.
December 12, 2009 at 8:35 am
Brandon, you've highlighted the ambiguity in my phrasing, but it means the opposite ;-)
I could change "a common alternative to the Git system that's more popular in Rubyland" to
"a common alternative to Git, a more popular system in Rubyland". But basically I'm saying Git is more popular in Rubyland.