Version Control

Version control, also known as revision control or source control, is the management of changes to documents, computer programs, large web sites, and other collections of information.[1]

## Resources

[edit | edit source]

* Git
* Mercurial
* Migration from MKS to SVN
* Public-Private-Versioning

## Learning Activities

[edit | edit source]

* (Version and Release) Explain the difference between a "version" and a "release". What are the requirements and constraints to decide that a specific version is mature enough to be a release? How does a Version Control System support this mechanism.
* (Forking) Explore the concept "forking" in software development[2] and identify different application scenarios in which you would branch the development into different forks (e.g. forks for specific use cases). Explain how version control systems support you in doing this.
* (Merging) Explore the concept merging different "forks" into the main branch of the software development and identify specific use cases in which you would integrate/merge a specialized fork back into the main development branch. Describe examples/use cases like:
* Open Source Speech Recognition \- fork" that was meant to used for handicapped special needs students in a fork are assessed to be useful also for voice control and in general for Digital Learning Environments.
* adding 3D Modelling features in a fork to an Open Source Dynamic Geometry Software.

## See Also

[edit | edit source]

* Internet Fundamentals/Collection
* Bitbucket
* GitHub
* GitLab
* Wikipedia: Version control
* Fork in Software Development

## References

[edit | edit source]

1. ↑ Wikipedia: Revision control
2. ↑ Ernst, N. A., Easterbrook, S., & Mylopoulos, J. (2010). Code forking in open-source software: a requirements perspective. arXiv preprint arXiv:1004.2889 URL: https://arxiv.org/abs/1004.2889 (accessed 2023/01/06)