The act of checking in files in a source control repository like git, mercurial or svn, is called a commit. Does anyone know the reason behind calling it a commit instead of just check in?
English is not my mother tongue, so it might be some linguistic I don't quite get her, but what I'm I actually commiting to? (Hopefully I'm not commiting a crime, but you'll never know.)
Is it in the meaning of "to consign for preservation"? Is it related to transactions (commit at the end of a transaction)?
The "Check In", "Check Out" terminology dates back at least to the UNIX RCS (Revision Control System) of the early 1980's, whose commands were literally ci
and co
. In this and other older systems, a file could only be edited by one user at a time, so "Check Out" was analogous to checking a book out from a library. You had exclusive rights to edit the file until it was checked back in.
When CVS (Concurrent Versioning System) came along, it retained this terminology even though the system was designed for concurrent editing and files rarely needed to be locked.
But with systems like GIT, you work on a whole directory tree as one set, and everyone has their own repository, and there's tremendous flexibility in terms of sending commits (changes) here or there. You can by choice set up one server as a central repository, but you don't have to. So checking a file out or in doesn't have meaning anymore. More to the point, the author(s) of git have chosen to abandon that terminology for their system.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With