Version control systems

Real projects can't do without them

  • Allow multiple developers to contribute on the same project. Each developer can see the latest changes from the others, or choose to stick with older versions of some components.
  • Allow to keep track of changes, and revert them if needed.
  • Allow developers to have their own development branch (branching)
  • Supposed to help developers resolving conflicts with different branches (merging)

Traditional version control systems

Rely on a central repository. The most popular open-source ones:

Distributed source control systems

No longer have a central repository

  • More adapted to the way the Free Software community develops software and organizes
  • Allows each developer to have a full local history of the project, to create local branches. Makes each developer's work easier.
  • People get working copies from other people's working copies, and exchange changes between themselves. Branching and merging is made easier.
  • Make it easier for new developers to join, making their own experiments without having to apply for repository access.

  • Git

    • Initially designed and developed by Linus Torvalds for Linux kernel development
    • Extremely popular in the community, and used by more and more projects (kernel, U-Boot, Barebox, uClibc, GNOME,, etc.)
    • Outstanding performance, in particular in big projects
  • Mercurial

results matching ""

    No results matching ""