====== Version Control and Revision Management ====== * What is [[wp>Revision control|version or revision control]]? * [[wp>Comparison of version control software]] * [[https://stackoverflow.com/questions/1646120/what-is-the-difference-between-configuration-management-and-version-control|What is the difference between configuration management and version control?]] ===== Basics ===== * {{https://www.dcl.hpi.uni-potsdam.de/teaching/pt1_07/subversion.pdf|Einführung in die Programmiertechnik Versionsverwaltung}} ===== Revision Control Software ===== * [[soft:prog:poor_man_s_revision_control]] -- No dedicated revision control software needed at all. * **[[soft:prog:concurrent_versions_system|Concurrent Versions System (CVS)]]** {{fa>thumbs-o-down?color=red}} (obsolete -- nowadays there are far better concepts) * **[[soft:prog:subversion|Subversion (SVN)]]** {{fa>thumbs-o-up?color=green}} * **[[soft:prog:mercurial|Mercurial Source Code Managementsystem]]** * **[[soft:prog:GIT]]** {{fa>thumbs-o-up?color=green}} {{fa>thumbs-o-up?color=green}} {{fa>thumbs-o-up?color=green}} ===== Version Numbering Scheme ===== * [[wpde>Versionsnummer|Version Numbering Scheme]] * www.semver.org -- Semantic Versioning 2.0.0 2.3.5-0041 │ │ │ └────── Buildnummer │ │ └───────── Revisionsnummer │ └─────────── Nebenversionsnummer └───────────── Hauptversionsnummer ;Hauptversionsnummer :(englisch: major release) signifikante Änderung -- keine Schnittstellenkompatibilität. ;Nebenversionsnummer :(englisch: minor release) funktionale Erweiterungen. ;Revisionsnummer :(englisch: patch level) Fehlerbehebungen. ;Buildnummer :(englisch: build number) fortschreitende Einzelschritten. ===== Build Process ===== * [[http://www.linuxjournal.com/content/add-auto-incrementing-build-number-your-build-process|Add an Auto-Incrementing Build-Number to Your Build Process]] * [[http://cplusadd.blogspot.de/2008/12/automatic-build-number-generation.html|Automatic build number generation]] * http://buildnumber.sourceforge.net/ * [[https://www.linkedin.com/pulse/incrementing-version-numbers-gcc-projects-makefiles-jan-nejman|Incrementing version numbers for GCC projects in Makefiles]] * https://github.com/peritus/bumpversion * [[https://developer.atlassian.com/blog/2016/02/bumpversion-is-automation-for-semantic-versioning/|Bumpversion is automation for semantic versioning]] * [[https://gist.github.com/pete-otaqui/4188238|Bump a software project's VERSION, add the CHANGES, and tag with GIT]] ===== Recomended Reading ===== * [[https://www.heise.de/developer/artikel/Status-quo-der-Versionskontrolle-1979724.html|Status quo der Versionskontrolle]] * [[http://www.databasesandlife.com/why-subversion-is-better-than-git/|Why Subversion is better than Git]] ===== Frequently Asked Question ===== * [[http://stackoverflow.com/questions/384108/moving-from-cvs-to-git-id-equivalent|Moving from CVS to git: \$Id:\$ equivalent?]]