The following table classifies some well-known software on the basis of its features and capabilities:
Table explanation •
Software: The name of the application that is described. •
Supports Git data format: able to natively work on
Git's repository formats •
Atomic commits: refers to a guarantee that all changes are made, or that no change at all will be made. •
File renames: describes whether a system allows files to be renamed while retaining their version history. •
Merge file renames: describes whether a system can merge changes made to a file on one branch into the same file that has been renamed on another branch (or vice versa). If the same file has been renamed on both branches then there is a rename conflict that the user must resolve. •
Symbolic links: describes whether a system allows revision control of symbolic links as with regular files. Versioning symbolic links is considered by some people a feature and some people a security breach (e.g., a symbolic link to /etc/passwd). Symbolic links are only supported on select platforms, depending on the software. •
Pre-/post-event hooks: indicates the capability to trigger commands before or after an action, such as a commit, takes place. •
Signed revisions: refers to integrated digital signing of revisions, in a format such as
OpenPGP. •
Merge tracking: describes whether a system remembers what changes have been merged between which branches and only merges the changes that are missing when merging one branch into another. •
End of line conversions: describes whether a system can adapt the end of line characters for text files such that they match the end of line style for the operating system under which it is used. The granularity of control varies. Subversion, for example, can be configured to handle EOLs differently according to the file type, whereas Perforce converts all text files according to a single, per-client setting. •
Tags: indicates if meaningful names can be given to specific revisions, regardless of whether these names are called tags or labels. •
International support: indicates if the software has support for multiple language environments and operating system •
Unicode filename support: indicates if the software has support for interoperations under
file systems using different
character encodings. •
Supports large repos: Can the system handle repositories of around a gigabyte or larger effectively? == Advanced features ==