summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorJed Brown <jed@59A2.org>2012-12-01 09:50:48 -0600
committerJed Brown <jed@59A2.org>2012-12-01 09:50:48 -0600
commita37f9934857a06718ed7ad2500d6c61d4e32b84f (patch)
treee1e499e03c65151c973bec1850fc4091fa0795b7 /README.md
parent153447359484a98a680084adee0bee53dc019ed6 (diff)
downloadgit-fat-a37f9934857a06718ed7ad2500d6c61d4e32b84f.tar.gz
Add introduction to README
Diffstat (limited to 'README.md')
-rw-r--r--README.md18
1 files changed, 18 insertions, 0 deletions
diff --git a/README.md b/README.md
index f1caf51..e726ada 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,21 @@
+# Introduction
+Checking large binary files into a source repository (Git or otherwise) is a bad idea because repository size quickly becomes unreasonable.
+Even if the instantaneous working tree stays manageable, preserving repository integrity requires all binary files in the entire project history, which given the typically poor compression of binary diffs, implies that the repository size will become impractically large.
+Some people recommend checking binaries into different repositories or even not versioning them at all, but these are not satisfying solutions for most workflows.
+
+## Features of `git-fat`
+* clones of the source repository are small and fast because no binaries are transferred, yet fully functional (unlike `git clone --depth`)
+* `git-fat` supports the same workflow for large binaries and traditionally versioned files, but internally manages the "fat" files separately
+* `git-bisect` works properly even when versions of the binary files change over time
+* selective control of which large files to pull into the local store
+* local fat object stores can be shared between multiple clones, even by different users
+* can easily support fat object stores distributed across multiple hosts
+* depends only on stock Python and rsync
+
+## Related projects
+* [git-annex](http://git-annex.branchable.com) is a far more comprehensive solution, but with less transparent workflow and with more dependencies.
+* [git-media](https://github.com/schacon/git-media) adopts a similar approach to `git-fat`, but with a different synchronization philosophy and with many Ruby dependencies.
+
# Installation and configuration
Place `git-fat` in your `PATH`.