version control

Git and Cogito on Ubuntu

In Synaptic I installed cogito (and therefore git), and gitk (gui).

I'm going to follow the advice on the Git Cogito page:

If you want to start to use Git and are considering Cogito, the best way to go about it is to first learn Cogito, then pick up Git commands if you need to do something extraordinary.

For quick introduction to Cogito, follow the Git Crash Courses - they are presenting Cogito commands.

So I cd'd to my project dir and did:

cg init 

This is the equivalent in svn to both creating the repository (which is now local!!! although I can "push" my stuff to a centralized directory somewhere) and doing the initial import. I make the initial comment, save the file and exit).

Then I made a change in a binary document file, and did:

cg commit

Typed in "modifiqué sección 3.6 Ambientes del Usuario" and saved and exited. Then saw my changes:


What Martin Langhoff explained to me at the recent November CafeConf 2006 BuenosAires OpenSource gathering, is that Git (especially when aided in usability by Cogito and/or GUIs if you need them) is vastly superior to the "old style" VersionControlSystem like CVS and SVN, because:

  • It distinguishes between committer and author roles
  • Check out is called clone, because you check out the whole history of the source code tree
  • You don't need a server (unless you need a server)
  • Commits are local! So don't be afraid to spend them!
  • When you want to publish your commits, you ask a commiter to accept your commits on a centralized published source code tree, with the push command. So you can fork without forking, and commit without committing, and then the central group takes what they need.
  • You can truly merge often and build frequently, both individually and in a group.
  • All these things are much harder to do with CVS and SVN.

Other tools, apart from Git and its family (Cogito, etc.) are:


Wikipedia definition begins by saying:

Revision control (also known as version control, source control or (source) code management (SCM)) is the management of multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing development of digital documents like application source code, art resources such as blueprints or electronic models and other critical information that may be worked on by a team of people. Changes to these documents are identified by incrementing an associated number or letter code, termed the "revision number", "revision level", or simply "revision" and associated historically with the person making the change. A simple form of revision control, for example, has the initial issue of a drawing assigned the revision number "1". When the first change is made, the revision number is incremented to "2" and so on.

Subversion Version Control System on Ubuntu Desktop

The objective is to install subversion on my Ubuntu Dapper desktop in order to support version control for day to day projects.

Will use Apache 2 as uniform access control for security reasons, and in order to make this box a subversion server in my home office network.

Installation with Synaptic

  • subversion package
  • libapache2-svn package

Create repository

victorkane@mentor:~$ sudo mkdir /var/lib/svn
victorkane@mentor:~$ sudo svnadmin create --fs-type fsfs /var/lib/svn

Create password file

victorkane@mentor:~$ sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd victor
New password:
Re-type new password:
Adding password for user victor

Apache 2 HTTP Server configuration


Syndicate content