GIT

From ArmadeusWiki
Jump to: navigation, search

We have migrated our Source Code Management tool to GIT scm since some time now (Armadeus software release 3.1 was the last one available under SVN management tool). This page aims to help you to use our new GIT tool.

Install GIT

  • Install the following packages if needed:
git-core gitk git-gui
  • If you want to send us patches through email, you will need to install these additional packages:
git-email

In that case you may need to install/configure sendmail or postfix or exim mail server ([1]).

How to use GIT (for everyone)

Tutorials

  1. GIT-SVN Crash course
  2. Everyday GIT With 20 Commands Or So
  3. GIT website

Basics

  • Update your repository to the latest version on SF:
$ git pull

How to use GIT (Developers)

  • Get the Armadeus GIT/SF repository in the armadeus directory (will be created):
Note Note: This is the Read Only method for people wanting to get the latest features. You won't be able to "push" your modifications directly (send us a patch instead).
$ git clone git://git.code.sf.net/p/armadeus/code armadeus
  • Before beginning to do your modifications don't forget to update your view:
 $ git pull
  • If you have modified some armadeus files and want to revert few files only
$ git checkout path_to_file
  • If you have modified some armadeus files and want to revert all your changes
$ git clean -dfx
$ make apf9328_defconfig or make apf27_defconfig
  • If git pull fails with an error: "Untracked working tree file '{SOMEFILE}'"
$ rm -rf {SOMEFILE}
$ git pull

Providing modifications

Developers wanting to propose their development should provide us a patch against the latest GIT revision available. The process to follow is:

  • Have a working view, let's call it armadeus
  • update your it:
$ git pull

Quick way

  • do your modifications
  • test them ;-)
  • do a patch:
$ git diff > my_changes.patch
  • send it on the armadeus-forum mailing list with your usual mail client

Clean way

  • create a branch for your work (here my_work):
$ git branch
* master
$ git branch my_work
  • make it the working branch:
$ git checkout my_work
Switched to branch 'my_work'
$ git branch
  master
* my_work
  • do a commit for each unitary change
$ git add xxx/xxx/xxx
$ git commit -m "blah blah blah"
  • when work is finished, ask git to generate signed patches (0001-toto.patch, 0002-toto.patch, one for each commit....):
$ git format-patch -M master..my_work -s
  • then you can send them to the armadeus-forum mailing list (if james.bond@007.com can send mail to this list):
$ git send-email --from=james.bond@007.com --to=armadeus-forum@lists.sourceforge.net --smtp-server=smtp.xxx.xx 0001-toto.patch 0002-toto.patch
  • if your work is accepted, you can rebase your branch and then delete it ?:
TBDJB

http://elinux.org/Git_usage

How to use GIT (Armadeus integrators)

  • Get the GIT/SF repository in Read/Write mode (for integrators only) in the armadeus directory (will be created):
$ git clone ssh://USER@git.code.sf.net/p/armadeus/code armadeus
  • Before the first commit, define your global personnal data:
$ git config --global user.name "James Bond"
$ git config --global user.email "james.bond@007.com"
  • If you want colors:
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
  • Update your repository to the latest version on SF:
$ git pull
  • Do your changes and commit to your local repository (here add fileorpath):
$ git add fileorpath
$ git commit -m 'Explain what I changed'
or 
$ git commit -a -m 'Explain what I changed'        (if you have local modifications (=not versioned files) and wants GIT to ignore them)
  • Commit someone else work's:
$ git commit -m "Message..." --author "FirstName Name <email@address.com>"
  • Update your repository to the latest version on SF:
$ git pull
  • Push your changes to SF:
$ git push
  • Tag a revision:
$ git tag -m "Creates TAG for Armadeus 3.1 release" release-3.1
$ git push --tags origin master

Commit with someone else identity

$ git commit --author "Firstname Lastname <email@address.com>"