Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is checking in files called a 'commit'?

Tags:

git

svn

mercurial

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)?

like image 829
Kjetil Klaussen Avatar asked Sep 20 '12 10:09

Kjetil Klaussen


1 Answers

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.

like image 98
little_birdie Avatar answered Oct 07 '22 23:10

little_birdie