Title: Theory / Important / CS / Softw / VCS / Git / Revision / Ranges
Tags: hasNotNewEffectReturnsMeaning FromVariables computer_to_instruction fromCommandLine

Instruction: <rev1>...<rev2>
Page: https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection
Effect: all commits reachable from <rev1> xor from <rev2>
Chapter: 7
Section: 1
Variables: foo, bar represent commits
Name: three-dot symmetric difference notation

Instruction: <commit-ish>
Page: https://git-scm.com/docs/gitrevisions
Effect: any commit reachable from <commit-ish>
Context: git, commit range

Instruction: ^<rev>
Page: https://git-scm.com/docs/gitrevisions
Effect: exclude all commits reachable from rev
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: <rev1>..<rev2>
Implementation: <rev2> ^<rev1>
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: <rev>..
Implementation: <rev>..HEAD
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: <rev>...
Implementation: <rev>...HEAD
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: ...<rev>
Implementation: HEAD...<rev>
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: ..<rev>
Implementation: HEAD..<rev>
Context: git, commit range

Instruction: <rev>^@
Page: https://git-scm.com/docs/gitrevisions
Effect: Any ancestor of <rev>, but not <rev> itself
Context: git, commit range

Instruction: <rev>^!
Page: https://git-scm.com/docs/gitrevisions
Effect: <rev> commit alone
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: <rev>^-
Implementation: <rev>^-1
Context: git, commit range

Page: https://git-scm.com/docs/gitrevisions
Syntactic sugar: <rev>^-<n>
Implementation: <rev>^-<n>..<rev> (i.e. rev and its n-1 ancestors)
Context: git, commit range