This page is open for editing because it is part of the Incubator. Have something to add? Please register so you can contribute. Have an option you would like to share? Please click on the 'Talk' button to enter the dialogue. The TF Resource Volunteers appreciate your feedback and interest.



Software development rarely, if ever, starts and ends with one static, bug-free piece of code, aside from the most trivial projects. Instead, new components may be added to the project over time, bugs may be discovered and fixed, and developers may experiment with the code to find the best way to address a particular problem. These are just a few reasons why there are likely to be multiple versions of a software project in existence at any time. One more is that a lot of software gets updated over time as needs change and new technology, techniques, and algorithms become available.

Version control is the way these different versions are stored, tracked, and preserved, and how the different versions are related to each other. Version control software is available to help developers do version control. Different version control software accomplish the task in different ways, but many of them contain a core of common features.

  • Keep historical versions of code, and allow them to be retrieved
  • Allow developers to commit new changes to the code base
  • Allow forking and branching of code


  • Git
  • SVN


Modeling Uses

  • Modeling Software Code
  • Networks
  • Land Use

Example Implementations