Git-annex
   HOME

TheInfoList



OR:

git-annex is a distributed file synchronization system written in
Haskell Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
. It aims to solve the problem of sharing and synchronizing collections of large files independent from a commercial service or even a central server.


History

The development of git-annex began in 2010. In 2012-13 the development was funded through a
Kickstarter Kickstarter is an American public benefit corporation based in Brooklyn, New York, that maintains a global crowdfunding platform focused on creativity. The company's stated mission is to "help bring creative projects to life". As of July 2021, ...
campaign. The main development of this campaign was the git-annex assistant, a component that runs in the background to automate the synchronization of repositories. The next crowd funding campaign for 2013-14 was organized over a self-hosted platform.


Design

git-annex uses
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 ...
to index files but does not store them in the Git history. Instead, a
symbolic link In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto. Symbolic links are supported by POSIX and by most Unix-like operating system ...
representing and linking to the probably large file is committed. git-annex manages a
content-addressable storage Content-addressable storage (CAS), also referred to as content-addressed storage or fixed-content storage, is a way to store information so it can be retrieved based on its content, not its name or location. It has been used for high-speed storage ...
for the files under its control. A separate Git branch logs the location of every file. Thus users can clone a git-annex repository and then decide for every file whether to make it locally available.


Availability

git-annex packages are available for a variety of operating systems, including: * Debian * Ubuntu * Fedora * FreeBSD * Arch Linux * NixOS * Guix * Gentoo * OpenBSD * Android * macOS (via Homebrew) * Windows


References


External links


Git-annex home page
{{Portal bar, Free and open-source software, Linux, Internet 2010 software Free version control software Free software programmed in Haskell Self-hosting software Distributed version control systems Git (software)