Version Control - Commit Hash - Content Versioning

Card Puncher Data Processing


A content-based version is a cryptographically secure hash over a set of bits, and that hash is used as the version for those bits.

A commit generate a sha version number.

A commit trigger generally a build.

The list of commit gives a log that shows the history of the code.



Given a digital asset (source code, binaries, groups of files, images, videos, etc.), run a cryptographically-secure hash over the bits that comprise that asset, and use the hash as the version for that asset.


Example in Git:

git checkout 72e5e550d1835013832f64597cb1368b7155bd53

where 72e5e550d1835013832f64597cb1368b7155bd53 is the content hash.


A clean, clear consistent commit log is an indication of a high-quality project.

It's also a great tool for users and maintainers alike as the commit log becomes the release notes, which is the main way that people find out what features are in the project.

  • The first line of the commit message must be a concise and useful description of the change.
  • Prefix with case Id in brackets, if the change is not trivial. Create a case if necessary.
  • The message is often, but not always, the same as the case subject.
  • Start with a capital letter.
  • Do not finish with a period.
  • Use imperative mood (“Add a handler …”) rather than past tense (“Added a handler …”) or present tense (“Adds a handler …”).
  • If possible, describe the user-visible behavior that you changed (“FooCommand now creates directory if it does not exist”), rather than the implementation (“Add handler for FileNotFound”).
  • If you are fixing what is clearly a bug, it is sufficient to describe the bug (“NullPointerException if user is unknown”) and people will correctly surmise that the purpose of your change is to fix the bug.
  • If the contributor is not a committer, add their name in parentheses at the end of the message.
  • Read the messages of previous commits, and follow their style.

Inspired by Julian Hyde email on the Calcite mailing list (Check those commit messages please! at 1 June 2018 at 19:42)

Documentation / Reference

Discover More
Card Puncher Data Processing
Code - Version

Versions don’t really work linearly. Commits can and sometime must be reverted. later does not necessarily mean better. If A comes later than B, it does not imply that: A has more features than...
Card Puncher Data Processing
Code Building - trunk based development

Trunk based development is a development model where all commit goes in the trunk. In other word, there is no branch to develop feature but there is feature flag
Card Puncher Data Processing
Code Shipping - Build

Build tool are tools that takes your sources: compile it into a target format such as a compiled file for a language that is not interpreted an HTML or Word document for a markdown document ...
Card Puncher Data Processing
Code Shipping - Continuous Integration

Continuous integration is just a fancy term for a build kicked off by a VCS commit. Continuous Integration is the practice of testing each change done to your codebase automatically and as early as possible....
Card Puncher Data Processing
Code Versioning

Versioning permits to tell which code is newer than another. Every versioning schema will then tell which version is newer than the other one. Code is: versioned by making commit to a repository....
Card Puncher Data Processing
Code Versioning - Release

A release is packaging your application under a version in a format that is suitable for the distribution channel. If you publish your application to: a package manager, you should create your application...
Card Puncher Data Processing
Code Versioning - Versioning scheme

The different scheme on the version number of a release of a module. it's just a numberNick_Craver/status/910109822326099969?s=03Nick Craver APISemantic...
Git Commit Tree Data Model
Git - Commit

A commit in git is an object that stores the information : who saved the file system snapshots, when they were saved, why they were saved. the commiter the author the parent commit It's...

Share this page:
Follow us:
Task Runner