Changeset
   HOME

TheInfoList



OR:

In
version control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
software, a changeset (also known as commitchangeset in the gitglossary
/ref> and revision) is a set of alterations packaged together, along with meta-information about the alterations. A changeset describes the exact differences between two successive versions in the version control system's repository of changes. Changesets are typically treated as an atomic unit, an indivisible set, by version control systems. This is one synchronization model.


Terminology

In the
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
version control system a changeset is called a commit, not to be confused with the commit operation that is used to commit a changeset (or in Git's case technically a snapshot) to a repository. Other version control systems also use other names to refer to changesets, for example Darcs calls them "patches", while Pijul refers to them as "changes".


Metadata

Version control systems attach metadata to changesets. Typical metadata includes a description provided by the programmer (a "commit message" in Git lingo), the name of the author, the date of the commit, etc. Unique identifiers are an important part of the metadata which version control systems attach to changesets. Centralized version control systems, such as
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
and CVS simply use incrementing numbers as identifiers.
Distributed version control In software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centra ...
systems, such as
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
, generate a unique identifier by applying a
cryptographic hash function A cryptographic hash function (CHF) is a hash algorithm (a map of an arbitrary binary string to a binary string with fixed size of n bits) that has special properties desirable for cryptography: * the probability of a particular n-bit output re ...
to the changeset.


Best practices

Because version control systems operate on changesets as atomic units, and because communication within development teams improves performance, there are certain
best practices A best practice is a method or technique that has been generally accepted as superior to other known alternatives because it often produces results that are superior to those achieved by other means or because it has become a standard way of doing ...
to follow when creating changesets. Only the 2 most significant are mentioned here, changeset content atomicity and changeset descriptions. Changeset content should involve only one task or fix, and contain only code which works and does not knowingly break existing functionality. Changeset descriptions should be short, recording why the modification was made, the modification's effect or purpose, and describing non-obvious aspects of how the change works.


See also

*
Patch (computing) A patch is a set of changes to a computer program or its supporting data designed to update, fix, or improve it. This includes fixing security vulnerabilities and other bugs, with such patches usually being called bugfixes or bug fixes. Patche ...
*
Snapshot (computer storage) In computer systems, a snapshot is the state of a system at a particular point in time. The term was coined as an analogy to that in photography. It can refer to an actual copy of the state of a system or to a capability provided by certain syste ...


References

{{cms-software-stub Version control systems