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
# Modeling Uses
- Modeling Software Code
- Land Use
# Example Implementations
- SFCTA's DTA Anyway