CVS

To install the cvs and subversion

  # sudo apt-get install cvs subversion

To set the root of cvs

# mkdir devserver
# CVSROOT=/devserver
# export CVSROOT

next init the cvs and have root created by itself

# cvs init
# cd devserver
/devserver # ls
CVSROOT

I checkout the CVSROOT

# cvs co CVSROOT

when I added some files and want to check in, I have a problem:root is not allowed to commit files to the system.

I created a new user: vic

I login as Vic created a folder called myfolders, and create 4 files: 1, 2, 3 and 4 under that folder.

cvs ci myfolders

This will commit myfolders to the CVSROOT

Subversion

I installed subversion with the previous command.

to create “root” of the server

svnadmin /devserver/svn 

After the folder is created, we can start using the svn.

To create/commit a project

svn import /myfolder/essay/ file:///devserver/svn/myfolder

checkout

svn co file:///devserver/svn/myfolder 

Git

install git

apt-get install git-core

configure identity and email

root@cherry:/home/vic# git config --global user.name "Vic"
root@cherry:/home/vic# git config --global user.email vic.ding@os3.nl

define the editor, I do think introduction to VI is important.

git config --global core.editor vim

tool to handle(show) conflicts.

git config --global merge.tool vimdiff

init the empty space for use

root@cherry:/home/vic# git init
Initialized empty Git repository in /home/vic/.git/

Create files and add/commit to git

root@cherry:/home/vic# touch 1 2 3 4
root@cherry:/home/vic# ls
1  2  3  4  Maildir

### now committing ###
root@cherry:/home/vic# git add 1 2 3 4
root@cherry:/home/vic# git commit -m 'init push'
[master (root-commit) 019975b] init push
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1
 create mode 100644 2
 create mode 100644 3
 create mode 100644 4

My first commit

# edit the file a bit
root@cherry:/home/vic# nano 1
#put file 1 into staging
root@cherry:/home/vic# git add 1
#commit 
root@cherry:/home/vic# git commit
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   1
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.bash_history
#	.bash_logout
#	.bashrc
#	.profile
#	Maildir/
no changes added to commit (use "git add" and/or "git commit -a")
root@cherry:/home/vic# git add 1
root@cherry:/home/vic# git commit
[master d0b1bf7] first commit
 1 files changed, 1 insertions(+), 0 deletions(-)

workable but annoying

vic@cherry:~$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.bash_history
#	.bash_logout
#	.bashrc
#	.profile
#	Maildir/
nothing added to commit but untracked files present (use "git add" to track)

So I have to make an “ignore file”

nano .gitignore

#content of the .gitignore
.gitignore
.bash_history
.bash_logout
.bashrc
.profile
Maildir/

Now it is much peaceful

vic@cherry:~$ git status
# On branch master
nothing to commit (working directory clean)

work with existing project

to clone an existing repository

git clone git://android.git.kernel.org/platform/manifest.git

This will clone the Android repository