Difference between revisions of "Source Management Tools"

From eLinux.org
Jump to: navigation, search
(GIT)
Line 23: Line 23:
 
* GIT project home page: http://git.or.cz/
 
* GIT project home page: http://git.or.cz/
 
* GIT for SVN users: http://git.or.cz/course/svn.html
 
* GIT for SVN users: http://git.or.cz/course/svn.html
 +
* [http://free-electrons.com/pub/video/2008/ols/ols2008-james-bottomley-git.ogg Pratical Guide to Using Git], a tutorial given by the excellent kernel developer James Bottomley at the Ottawa Linux Symposium 2008
  
 
GIT is distributed: every developer have a copy of the whole project and its history, this doubles as backup as well as makes operations super fast since you don't need to go through network.
 
GIT is distributed: every developer have a copy of the whole project and its history, this doubles as backup as well as makes operations super fast since you don't need to go through network.

Revision as of 02:19, 7 April 2009

Here are some different source management tools commonly used with Linux:

Overview

Patch Management Tools

  • diff - to create patches
    • use 'man diff' on your local system for information
  • patch - to apply patches
    • use 'man patch' on your local system for information
  • Quilt is good for managing a group of patches relative to a single source base.
  • diffstat reads a patch file (or standard input) and displays a histogram of the insertions, deletions, and modifications per-file. It is useful for reviewing large, complex patch files. It reads from one or more input files or from standard input. If an input filename ends with .bz2, .Z or .gz, diffstat will read the uncompressed data via a pipe from the corresponding program.
  • Tim's patch management tools - diffinfo and friends - a more verbose diffstat, with splitting, joining and comparing of patches
  • See also Diff And Patch Tricks

GIT

GIT is the source code management tool used by many kernel developers.

GIT is distributed: every developer have a copy of the whole project and its history, this doubles as backup as well as makes operations super fast since you don't need to go through network.

GIT is about series of patches that work in a tree form, each tree leaf is a branch. Branches are easy and fast, you can create and delete as much as you wish and you can optionally push them upstream, so it's advised that development happens in your own tree and that you rebase your work on top of upstream 'master', that way you get a consistent sequence of patches to implement features. With GIT you can go back in history and edit commits, delete them, reorder or even merge lots of commits into a single commit for publishing, usually required for projects that employ code review.