Entries for label: git

Found 6 entries.

Making a new Free Software Project

Over the past few days I’ve been playing with NodeJS. It’s been an eye opener to see how JavaScript would work out on the server (notice I didn’t say server-side JavaScript, which I don’t yet think it is suitable for, in liue of a nice templating system).

My initial plan was to write a small queue system, much like AWS’s SQS. In the end, I created one in less than 130 lines of JavaScript though I know that can also get smaller.

It’s been a good eye-opener to see what NodeJS can already do, added to the fact that it’s an event driven language – much like JS in the browser is – so it’s pretty fast. Even though it is an interpreted language, the V8 engine it is using (the one from Google) is heavily optimised and the main developer of NodeJS, Ryan Dahl, is always careful to write non-blocking C code when developing Node itself, or it’s modules.

For my future plan, I intend on writing a couple more infrastructure services. A queue system which is distributed and uses the above simple queue would come in very useful, as would a publish/subscribe system much like the new AWS SNS.

Maybe in the future, I’ll also try out some other things too.

But the purpose of this blog entry is to describe what I’m doing to make sure that the project starts out the Open Source way from the beginning. Usually I add copyrights and suchlike later, but hopefully will do it all properly from the start.

I have (so far) been following two articles, one from my good friend Francois and one from the Gnu site:

To see the result of this, go and have a look at the GitHub repo I have pushed to. The project will be called 'sensi’ and will expand in the near future.

One final point to mention is how I figured the name 'sensi’ was ok. I trawled through the searches of all of the following sites to make sure it wasn’t already used:

Anything else I should do now whilst the project is still young? Any other code related or repository websites I should have checked to see if the name was unique? Any other ideas for (FOSS) 'Infrastucture as a Service’?

Labels: git, foss, sensi

Inserted: 2010-05-08 10:13 (1 year, 9 months ago)

I was Blind, but Now I Can See

I just upgraded from an old Feisty to a shiny new Jaunty. There are lots of updates, lots of shiny new things and it boots like a Ferrari.

But out of all the software that has been upgraded, I think my jump in Git versions from the old 1.4.something I had from Feisty Backports to the new v1.6.0.4 in Jaunty is going to give me the most pleasure.

Already I am seeing better formatted messages, more information and some really nice messages too. Before today, I'd never see the following:

 $ git checkout blah
 Switched to branch "blah"
 Your branch is behind 'origin/blah' by 9 commits, and can be fast-forwarded.

That's awesome. Now I know, before I start to hack, that I might as well rebase because I'll have to do it before I push anyway.

As I said to a friend earlier on today:

I was blind, but now I can see.

I think that's what the blind guy meant when Jesus healed him ... he'd obviously just upgraded Git!

Labels: git, ubuntu

Inserted: 2009-05-12 10:39 (2 years, 9 months ago)

What a Guy!

This week something magical happened and therefore there is someone we owe a great deal of thanks to. As is usual with open source it took one person a huge amount of effort to step up and complete something that needed to be done.

Two days ago, it was announced that the Perl 5 repository was being shifted to Git. After many hours, days and months wrangling with all of the numerous repositories that Perl 5 has used in the past, Sam Vilain managed to somehow mung it all into one coherent Git repo!

Earlier this year, I remember when he would speak to us in work when he was probably right in the middle of doing his various custom conversion tools. He'd be telling us about Git and how other version control systems were lacking in comparison. There was definitely a point whereby everyone would take the piss and note "Hey Sam, you talking about version control systems again?" It is obviously a subject near and dear to his heart.

I'm lucky though since I get to work with such clever and interesting people. Usually those who I consider a bit of a hero due to all of the work they have done, either in groups or individually and for such a good cause (in my opinion) too.

I get to speak to Sam quite regularly, sometimes Perl and sometimes whatever other random subject he's been looking into recently. He's even contributed to a a project of mine (cil) though wish I could say the help was reciprocal. Admittedly, I don't always understand what he's saying - not the words mind, just the sentences(!) - but that's okay, it's good to listen to someone who is a naturally free thinker.

I also found another link from the GitHub guys who also obviously took a liking to our Sam (describing his effort as a heroic one): A Perl Clone Appearing on GitHub.

Just as an interesting note, if I were to describe Sam and his Perl exploits in terms of the TV show Red Dwarf, he'd be a bit like the 'Ace' version of Arnold Rimmer from a parrallel universe. You know, the one where 'Ace' always says:

Smoke me a kipper, I'll be back for breakfast!

to which the rest of the crew just mutter:

What a guy!

Sam, you're a good guy, well done and thanks for all your effort in porting the Perl 5 repo over to Git. Sometimes I feel both Perl and Git go hand in hand since they both have that powerful yet non-restrictive way about them.

And finally, to sign off ... if I were one of the Arnold Rimmers from a parallel universe, I'd be the classic Rimmer we all know and love. And his phrase would be quite apt at this very moment in time:

Stoke me a clipper, I'll be back for Christmas.

Signing off for this year, Merry Christmas and Happy New Year everyone!

Labels: perl, git, planet-catalyst

Inserted: 2008-12-24 20:36 (3 years, 1 month ago)

Cil Hits a Nerve

I'm amazed at the reception Cil is getting so far. Further news now is ...

... Cil has been made a featured project on GitHub's Homepaage (though you have to be logged out to see it).

I spoke with Tom Preston-Werner a couple of weeks ago about projects which help drive Git adoption and thought he would be interested in Cil. He told me he'd feature it on the front page of GitHub so thanks very much Tom, that's awesome.

My Ohloh stats on Cil are also looking good and will soon show that the project has already had 6 contributors, some of whom have jumped completely out of left-field.

Thanks to everyone for helping out so far.

Labels: git, cil, planet-geek, planet-catalyst, github

Inserted: 2008-07-31 21:28 (3 years, 6 months ago)

Quick Help Moving from SVN to Git

Recently, I moved my Zaapt repository from a Subversion repository on Google Code into a Git repository on my server.

Here's some (really) quick instructions on how I did it. I'll be using it as a quick guide later and it may come in useful for you too.

If you want more detailed explanations on hosting Git repositories, see Nigel's excellent and more in-depth explanation. His takes you through a lot more cases (including the continued use of SVN, whereas this is about cutting the line completely).

Notes:

  • the local machine is called 'alpha'
  • the remote machine is called 'beta'
  • you will access the repo over ssh+git
  • it is private and not public
  • you repo will be stored in /var/lib/git which is writable by you
  • the project is called 'zaapt' but replace that with your projectname

Firstly some setup:

 alpha$ cd /tmp
 alpha$ mkdir zaapt
 alpha$ cd zaapt
 alpha$ git-svn init http://zaapt.googlecode.com/svn/trunk/ --no-metadata

Then, you need to tell Git how to map Google Code usernames into commit names. I'm the only one who has commited to Zaapt so I just need one line:

 alpha$ cat > /tmp/users.txt
 andychilton = Andrew Chilton <andy@example.org>
 alpha$ git config svn.authorsfile /tmp/users.txt

Then you do the actual import. Two notes here. The first is that you don't want the initial repository version since that was created (as user nobody) when your Subversion repo was set up. The second I'm assuming you know the final version of your repo is 447:

 alpha$ git-svn fetch -r 2:447
 ...etc...

Earlier I said that we would be hosting our repository on our own server, so let's get a bare-bones repo without any of the SVN cruft left:

 alpha$ cd ../
 alpha$ git clone --bare --local zaapt/.git zaapt.git 
 alpha$ chmod +x zaapt.git/hooks/post-update
 alpha$ vim zaapt.git/description

Now copy the repo to your server. I'm assuming you want them in /var/lib/git:

 alpha$ scp -r zaapt.git beta:/var/lib/git

You're now done with everything we created in /tmp/ so remove them if you like. Now get a fresh clone of the new repo:

 alpha$ cd ~/git/
 alpha$ git clone ssh+git://beta/var/lib/git/zaapt.git

And if you want a checkout at the far end too:

 beta$ cd ~/git/
 beta$ git clone --local /var/lib/git/zaapt.git

That's it. Simple but it gets the job done for what I wanted it for.

For further reading, see Nigel's page above, Sam's extensive page on An introduction to git-svn... and Chris' page about publishing git repositories

Labels: git, planet-geek, svn, planet-catalyst

Inserted: 2008-05-11 22:10 (3 years, 9 months ago)

Things on the Go

Wow, it's been busy recently. Just thought I'd keep you abrest of what's been happening.

I've been:

As you can see, I'm liking Git :-)

Labels: git, cil, zaapt, debian, kiwiwriters, socnoc

Inserted: 2008-05-07 22:15 (3 years, 9 months ago)