26. February, 2008
26. February, 2008
in
by Michael Neumann

I liked Mercurial a lot but got disappointed in the past by it’s inability to store files larger than a few megabytes. Furthermore, I prefer the storage model of git, which is based on cryptographic hashes, which I have first seen in OpenCM many years ago and which was first popularized (IMHO) by Monotone.

So, yesterday I decided to get rid of Mercurial in favor of using git. This will allow me to store huge videos in a repository. I have also converted some of my subversion repositories which wasn’t all that easy because they got somehow corrupted so that I had to use a two year old backup (I haven’t used svn since two years :). It seems that I destroyed the original repository simply by using a newer version of the subversion client svn. Luckily, I haven’t made any change to the repository for more than two years, so the backup contained exactly the same data. In this point I fully agree with Linus that “Subversion is the most pointless project ever started”.

7. February, 2008
7. February, 2008
in
by Michael Neumann

Stupid Boy

7. February, 2008
7. February, 2008
in
by Michael Neumann

This article took the words right out of my mouth. I am a happy Mercurial user and git always confused me too much (besides that you shouldn’t take a look at it’s source code ;-). While the concepts behind git are more advanced, the UI is a lot worse IMHO.

13. August, 2007
13. August, 2007
in
»
by Michael Neumann

Linus Thorvalds wrote git in around two weeks. The concepts behind are really simple (as is true for most source code versioning systems that use content addressing by cryptographic hashes). Huh, but it's now around 70k lines of code. Because I'm hacking on a similar version control system, I made some tests. I added the whole DragonFlyBSD source tree (/usr/src) into a git repository (git add . && git commit). Adding it took around 4.5 minutes and commiting it another 1.5 minutes, so in total it took 6 minutes. The git repository uses 154 MB. The same with my very early version control system takes around 5 minutes and consumes 139 MB. The original files consume 387 MB in total.

Did I mentioned that it's written in Ruby?

3. August, 2007
3. August, 2007
in
»
by Michael Neumann

I really love this guy (!!!) even if I don't like his operating system (Linux) so much. I'm watching his google talk about Git, a decentralized version control system. Some of Linus comments:

"I hate it with a passion (CVS)."

"If there are any Subversion or CVS users out there in the audience, you might want to leave."

"I see Subversion as the most pointless project ever started."

"I'm not going force you to switch over to decentralized, I just call you ugly and stupid!"

"...the designers of Subversion were complete morons". Strong opinions, that's me! [...] Your stupid!.

"Merging in Subversion is a complete disaster! The Subversion people kind of acknowledge this and they have a plan and their plan sucks too. It is incredible how stupid these people are!"

"I would never ever trust Google to maintain my sourcecode for me. I'm sorry. You're just not that trustworthy. (Google code uses Subversion)". The talk was held at Google :)

Again, I love this guy ;-)

If you love Linux and are still using Subversion, consider the switch or change to BSD ;-).

11. February, 2006
27. June, 2007
in
»
by Michael Neumann

For the purpose of maintaining changes to configuration files on our server, I wrote some time ago a little shell script called scm. Today I added some new features, mainly support for rsync to make space usage more efficient (optionally it uses pax so it works out-of-the-box on a FreeBSD system), but also a log subcommand and some fixes.

Download and try it: scm. Rename it to ’/usr/local/bin/scm’. Then let’s start:

scm help
scm init /tmp/repos
scm add some-file
scm add some-other-file
scm status
scm diff
scm commit
scm log

Note that due to recording which packages are currently installed on a FreeBSD system, scm will fail on other systems. You can avoid this by simply overwriting function scm_custom_action.

10. May, 2003
10. May, 2003
in
by Michael Neumann
To modify a users email address in OpenCM, you’ll first need the full path to the user object:
cm ls everyone

For example, the full path of my user object is everyone/mneumann@ntecs.de.

Then modify it with:

cm -u admin set name FullPathToUserObject

and you’ll be prompted to enter a Synopsis. Enter here the new email address.

You can change other attributes of objects in the same way, just replace set name appropriatly.

10. May, 2003
10. May, 2003
in
by Michael Neumann
To show the difference between the current workspace and another branch (not neccessarily from the same project), use:
cm diff --against project_name/version

For example:

cm diff --against myav/1