summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile7
-rw-r--r--debian/copyright2
-rw-r--r--doc/assistant/thanks.mdwn2
-rw-r--r--doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn225
-rw-r--r--doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn10
-rw-r--r--doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn20
-rw-r--r--doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn13
-rw-r--r--doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment9
-rw-r--r--doc/design/assistant/blog/day_60__taking_stock.mdwn40
-rw-r--r--doc/design/assistant/configurators.mdwn2
-rw-r--r--doc/design/assistant/leftovers.mdwn2
-rw-r--r--doc/design/assistant/webapp.mdwn33
-rw-r--r--doc/logo-bw.svg60
-rw-r--r--doc/logo.svg77
15 files changed, 481 insertions, 22 deletions
diff --git a/.gitignore b/.gitignore
index 4a18e7f26..290ad66de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
tmp
test
configure
+build-stamp
Build/SysConfig.hs
git-annex
git-annex.1
diff --git a/Makefile b/Makefile
index 3dcae1364..9ddf674eb 100644
--- a/Makefile
+++ b/Makefile
@@ -41,7 +41,8 @@ ifdef VIM
all=fast
endif
-all: $(all)
+build: $(all)
+ touch build-stamp
sources: $(sources)
@@ -78,7 +79,7 @@ install-docs: docs install-mans
rsync -a --delete html/ $(DESTDIR)$(PREFIX)/share/doc/git-annex/html/; \
fi
-install: all install-docs
+install: build-stamp install-docs
install -d $(DESTDIR)$(PREFIX)/bin
install $(bins) $(DESTDIR)$(PREFIX)/bin
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell
@@ -120,7 +121,7 @@ docs: $(mans)
clean:
rm -rf $(GIT_ANNEX_TMP_BUILD_DIR) $(bins) $(mans) test configure *.tix .hpc $(sources) \
- doc/.ikiwiki html dist $(clibs)
+ doc/.ikiwiki html dist $(clibs) build-stamp
sdist: clean $(mans)
./make-sdist.sh
diff --git a/debian/copyright b/debian/copyright
index 4e7345fd8..3ddba59f4 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -24,7 +24,7 @@ License: BSD-3-clause
Utility/libmounts.c in this package's source, or in
/usr/share/common-licenses/BSD on Debian systems.
-Files: doc/logo.png doc/logo_small.png */favicon.ico
+Files: doc/logo* */favicon.ico
Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/>
2010 Joey Hess <joey@kitenet.net>
License: other
diff --git a/doc/assistant/thanks.mdwn b/doc/assistant/thanks.mdwn
index 35ee65320..871e99ea0 100644
--- a/doc/assistant/thanks.mdwn
+++ b/doc/assistant/thanks.mdwn
@@ -225,6 +225,8 @@ Cisneros, Mike Skoglund, Kristy Carey
* The Git developers, for obvious reasons.
* All of git-annex's early adopters, who turned it from a personal
toy project into something much more, and showed me the interest was there.
+* Rsync.net, for providing me a free account so I can make sure git-annex
+ works well with it.
* Anna and Mark, for the loan of the video camera; as well as the rest of
my family, for your support. Even when I couldn't explain what I was
working on.
diff --git a/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn b/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
new file mode 100644
index 000000000..ab5a2e9ee
--- /dev/null
+++ b/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
@@ -0,0 +1,225 @@
+What steps will reproduce the problem?
+
+ $ git init a.git
+ Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/
+ $ cd a.git
+ $ git annex init a
+ init a ok
+ (Recording state in git...)
+ $ touch Ren$'\351'
+ $ git annex add Ren$'\351'
+ add René (checksum...) ok
+ (Recording state in git...)
+ $ git ci -m "Added Rene'."
+ [master (root-commit) a61b796] Added Rene'.
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ create mode 120000 "Ren\351"
+ $ cd ..
+ $ git clone -o a a.git b.git
+ Cloning into b.git...
+ remote: Counting objects: 13, done.
+ remote: Compressing objects: 100% (9/9), done.
+ remote: Total 13 (delta 1), reused 0 (delta 0)
+ Receiving objects: 100% (13/13), done.
+ Resolving deltas: 100% (1/1), done.
+ $ cd b.git
+ $ git annex copy --from=a --fast -v
+ (merging a/git-annex into git-annex...)
+ copy René
+ git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)
+ failed
+ (Recording state in git...)
+ git-annex: copy: 1 failed
+
+What is the expected output? What do you see instead?
+
+Expect that files will be copied, but they are not.
+
+What version of git-annex are you using? On what operating system?
+
+ $ echo $LANG
+ en_US.UTF-8
+ $ lsb_release -a
+ No LSB modules are available.
+ Distributor ID: Ubuntu
+ Description: Ubuntu 11.10
+ Release: 11.10
+ Codename: oneiric
+ $ uname -a
+ Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux
+ $ bash --version
+ GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)
+ Copyright (C) 2011 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+
+ This is free software; you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ $ ghc --version
+ The Glorious Glasgow Haskell Compilation System, version 7.4.2
+ $ git annex version
+ git-annex version: 3.20120807
+ local repository version: 3
+ default repository version: 3
+ supported repository versions: 3
+ upgrade supported from repository versions: 0 1 2
+
+Please provide any additional information below.
+
+The problem is related to weird characters in file names. In the
+above example, the "weird character" is an accented 'e' (entered with
+$'\351' in bash and zsh). I am able to add the files with weird
+characters in their name to one annex, but I cannot copy them to other
+annexes using `git annex copy`.
+
+The above example is a simplification of a real problem I am
+experiencing. In my real scenario, the file is not empty. See the
+attachment for some variations, including with non-empty
+files. UPDATE: I'm not allowed to add attachments. See below.
+
+May be related to these (long-ago fixed) bugs:
+http://git-annex.branchable.com/todo/support-non-utf8-locales/
+
+
+"Attachment": Here are my notes, including more examples:
+
+ Programs I'm using:
+
+ $ echo $LANG
+ en_US.UTF-8
+ $ lsb_release -a
+ No LSB modules are available.
+ Distributor ID: Ubuntu
+ Description: Ubuntu 11.10
+ Release: 11.10
+ Codename: oneiric
+ $ uname -a
+ Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux
+ $ bash --version
+ GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)
+ Copyright (C) 2011 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+
+ This is free software; you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ $ ghc --version
+ The Glorious Glasgow Haskell Compilation System, version 7.4.2
+ $ git annex version
+ git-annex version: 3.20120807
+ local repository version: 3
+ default repository version: 3
+ supported repository versions: 3
+ upgrade supported from repository versions: 0 1 2
+
+
+ Simplest way to see problem: one empty file with weird character
+ (accented e: $'\351') in name:
+
+ $ git init a.git
+ Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/
+ $ cd a.git
+ $ git annex init a
+ init a ok
+ (Recording state in git...)
+ $ touch Ren$'\351'
+ $ git annex add Ren$'\351'
+ add René (checksum...) ok
+ (Recording state in git...)
+ $ git ci -m "Added Rene'."
+ [master (root-commit) a61b796] Added Rene'.
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ create mode 120000 "Ren\351"
+ $ cd ..
+ $ git clone -o a a.git b.git
+ Cloning into b.git...
+ remote: Counting objects: 13, done.
+ remote: Compressing objects: 100% (9/9), done.
+ remote: Total 13 (delta 1), reused 0 (delta 0)
+ Receiving objects: 100% (13/13), done.
+ Resolving deltas: 100% (1/1), done.
+ $ cd b.git
+ $ git annex copy --from=a --fast -v
+ (merging a/git-annex into git-annex...)
+ copy René
+ git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)
+ failed
+ (Recording state in git...)
+ git-annex: copy: 1 failed
+
+
+ Problem disappears with two empty files:
+
+ $ cd ..
+ $ git init a2.git
+ Initialized empty Git repository in /var/tmp/git-annex-bug/a2.git/.git/
+ $ cd a2.git
+ $ git annex init a2
+ init a2 ok
+ (Recording state in git...)
+ $ touch Ren$'\351'
+ $ git annex add Ren$'\351'
+ add René (checksum...) ok
+ (Recording state in git...)
+ $ git ci -m "Add Ren$'\351'."
+ [master (root-commit) 62ac1c8] Add Ren$'\351'.
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ create mode 120000 "Ren\351"
+ $ touch Rene
+ $ git annex add Rene
+ add Rene (checksum...) ok
+ (Recording state in git...)
+ $ git ci -m "Add Rene."
+ [master c455523] Add Rene.
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ create mode 120000 Rene
+ $ cd ..
+ $ git clone -o a2 a2.git b2.git
+ Cloning into b2.git...
+ done.
+ $ cd b2.git
+ $ git annex copy --from=a2 --fast -v
+ (merging a2/git-annex into git-annex...)
+ copy Rene (from a2...) ok
+ (Recording state in git...)
+
+
+ Problem returns with two non-empty files:
+
+ $ cd ..
+ $ git init a4.git
+ Initialized empty Git repository in /var/tmp/git-annex-bug/a4.git/.git/
+ $ cd a4.git
+ $ git annex init a4
+ init a4 ok
+ (Recording state in git...)
+ $ touch Ren$'\351'
+ $ rm Ren$'\351'
+ $ ls
+ $ echo "some content" > Ren$'\351'
+ $ git annex add Ren$'\351'
+ add René (checksum...) ok
+ (Recording state in git...)
+ $ git ci -m "Add Ren$'\351'."
+ [master (root-commit) f090d90] Add Ren$'\351'.
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ create mode 120000 "Ren\351"
+ $ echo "some other content" > Rene
+ $ git annex add Rene
+ add Rene (checksum...) ok
+ (Recording state in git...)
+ $ git ci -m "Add Rene."
+ [master 97c20cd] Add Rene.
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ create mode 120000 Rene
+ $ cd ..
+ $ git clone -o a4 a4.git b4.git
+ Cloning into b4.git...
+ done.
+ $ cd b4.git
+ $ git annex copy --from=a4 --fast -v
+ (merging a4/git-annex into git-annex...)
+ copy Rene (from a4...) ok
+ copy René
+ git-annex: /var/tmp/git-annex-bug/b4.git/.git/annex/transfer/download/a5fcd0d4-e8c8-11e1-bb41-43ce1cb9a9f1/SHA256-s13--1c87b6727f523662df714f06a94ea27fa4d9050c38f4f7712bd4663ffbfdfa01: commitBuffer: invalid argument (invalid character)
+ failed
+ (Recording state in git...)
+ git-annex: copy: 1 failed
diff --git a/doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn b/doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn
new file mode 100644
index 000000000..32f045bdf
--- /dev/null
+++ b/doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn
@@ -0,0 +1,10 @@
+What steps will reproduce the problem?
+What is the expected output? What do you see instead?
+
+I can reproduce it locally, but don't know what's causing it. The file content is the same, I checked with md5sum and sha512sum. But fsck still thinks the content is different. Are there other factors I could check which fsck looks at? I'm using SHA512E backend.
+
+What version of git-annex are you using? On what operating system?
+
+git-annex version: 3.20120807 Ubuntu 12.04 updated on Aug 20th annex was installed via cabal on Aug 20th, all other packages are from ubuntu.
+
+> What is the error message from fsck? --[[Joey]]
diff --git a/doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn b/doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn
new file mode 100644
index 000000000..c43075e58
--- /dev/null
+++ b/doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn
@@ -0,0 +1,20 @@
+What steps will reproduce the problem?
+In the git-annex tree,
+
+ $ make
+ $ sudo make install
+
+What is the expected output? What do you see instead?
+
+One would expect git-annex to be installed in the configured prefix. Unfortunately, make tries to rebuild the "all" target before "install". This fails (presumably) due to incorrect environment state,
+
+ ghc -O2 -Wall -ignore-package monads-fd -ignore-package monads-tf -outputdir tmp -IUtility -DWITH_ASSISTANT -DWITH_S3 -DWITH_INOTIFY --make git-annex Utility/libdiskfree.o
+
+ Utility/FileSystemEncoding.hs:17:8:
+ Could not find module `Data.Bits.Utils':
+ Use -v to see a list of the files searched for.
+ make: *** [git-annex] Error 1
+
+Removing "all" from the dependencies of "install" allows the process to run to completion, although this is clearly not a satisfactory solution.
+
+> [[fixed|done]] using an ugly stamp file. --[[Joey]]
diff --git a/doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn b/doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn
new file mode 100644
index 000000000..d7eaa7d1b
--- /dev/null
+++ b/doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn
@@ -0,0 +1,13 @@
+What steps will reproduce the problem?
+
+Run git annex reinject source dest with a file that has the wrong content and thus a wrong checksum.
+
+What is the expected output? What do you see instead?
+
+The file should stay in it's original location. Currently it's moved to .git/annex/bad with a mangled filename.
+
+What version of git-annex are you using? On what operating system?
+
+git-annex version: 3.20120807
+Ubuntu 12.04 updated on Aug 20th
+annex was installed via cabal on Aug 20th, all other packages are from ubuntu.
diff --git a/doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment b/doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment
new file mode 100644
index 000000000..1e10549d3
--- /dev/null
+++ b/doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="http://claimid.com/strager"
+ ip="173.228.13.253"
+ subject="comment 1"
+ date="2012-08-17T15:59:49Z"
+ content="""
+It was fun to have you here! =]
+
+"""]]
diff --git a/doc/design/assistant/blog/day_60__taking_stock.mdwn b/doc/design/assistant/blog/day_60__taking_stock.mdwn
new file mode 100644
index 000000000..040d0cd7c
--- /dev/null
+++ b/doc/design/assistant/blog/day_60__taking_stock.mdwn
@@ -0,0 +1,40 @@
+As I prepare to dive back into development, now is a good time to review
+what I've built so far, and how well I'm keeping up with my planned
+[[roadmap|assistant]].
+
+I started working two and a half months ago, so am nearing the end of
+the three months I originally asked to be funded for on Kickstarter.
+
+I've built much of what I planned to build in the first three months --
+[[inotify]] is done (and kqueue is basically working, but needs scalability
+work), local [[syncing]] is done, the [[webapp]] works, and I've built some
+of the first [[configurators]]. It's all functional in a narrow use case
+involving syncing to removable drives.
+
+[[progressbars]] still need to be dealt with, and network syncing needs to
+be revisited soon, so that I can start building easy configurators for
+further use cases, like using the cloud, or another machine on the local
+network.
+
+I think I'm a little behind my original schedule, but not too bad,
+and at the same time, I think I've built things rather more solidly than I
+expected them to be at this point. I'm particularly happy with how well
+the inotify code works, no matter what is thrown at it, and how nice
+the UI in the webapp is shaping up to be.
+
+----
+
+I also need to get started on fulfilling my Kickstarter rewards, and
+I was happy to spend some time in the airport working on the main
+blocker toward that, a lack of a scalable git-annex logo, which is needed
+for printing on swag.
+
+Turns out that inkscape has some amazing bitmap tracing capabilities.
+I was able to come up with this scalable logo in short order, it
+actually took longer to add back the colors, as the tracer generated a
+black and white version.
+
+With that roadblock out of the way, I am moving toward ordering large
+quantities of usb drives, etc.
+
+[[logo.svg]]
diff --git a/doc/design/assistant/configurators.mdwn b/doc/design/assistant/configurators.mdwn
index e0e938efd..b6aaa1cb6 100644
--- a/doc/design/assistant/configurators.mdwn
+++ b/doc/design/assistant/configurators.mdwn
@@ -9,7 +9,7 @@ through setting up common use cases.
* Create a repository (run when the web app is started without a configured
repository too).
-* Clone this repo to a USB drive.
+* Clone this repo to a USB drive or other removable drive. **done**
* Clone this repo to another host. (Needs [[pairing]])
* Set up Amazon S3.
* Set up rsync remote.
diff --git a/doc/design/assistant/leftovers.mdwn b/doc/design/assistant/leftovers.mdwn
index c322a2781..f6cb15c95 100644
--- a/doc/design/assistant/leftovers.mdwn
+++ b/doc/design/assistant/leftovers.mdwn
@@ -1,6 +1,6 @@
Things that don't fit anywhere else:
-* Automatically start daemon on boot or when user logs in.
+* Automatically start daemon on boot or when user logs in. **done**
* Somehow get content that is unavailable. This is problematic with inotify,
since we only get an event once the user has tried (and failed) to read
from the file. This is only needed if all the files in the directory
diff --git a/doc/design/assistant/webapp.mdwn b/doc/design/assistant/webapp.mdwn
index ddcc66153..82d180af2 100644
--- a/doc/design/assistant/webapp.mdwn
+++ b/doc/design/assistant/webapp.mdwn
@@ -1,27 +1,14 @@
The webapp is a web server that displays a shiny interface.
-## security
-
-* Listen only to localhost. **done**
-* Instruct the user's web browser to open an url that contains a secret
- token. This guards against other users on the same system. **done**
- (I would like to avoid passwords or other authentication methods,
- it's your local system.)
-* Don't pass the url with secret token directly to the web browser,
- as that exposes it to `ps`. Instead, write a html file only the user can read,
- that redirects to the webapp. **done**
-* Alternative for Linux at least would be to write a small program using
- GTK+ Webkit, that runs the webapp, and can know what user ran it, avoiding
- needing authentication.
-
## interface
* list of files uploading and downloading **done**
* button to open file browser on repo (`xdg-open $DIR`) **done**
* progress bars for each file (see [[progressbars]])
* drag and drop to reorder
-* cancel and pause
-* keep it usable w/o javascript, and accessible to blind, etc
+* cancel, pause, and resume **done**
+* keep it usable w/o javascript **done**
+* keep it accessible to blind, etc
## other features
@@ -42,3 +29,17 @@ The webapp is a web server that displays a shiny interface.
* record repository that was made, and use it next time run **done**
* write a pid file, to prevent more than one first-start process running
at once **done**
+
+## security **acceptable/done**
+
+* Listen only to localhost. **done**
+* Instruct the user's web browser to open an url that contains a secret
+ token. This guards against other users on the same system. **done**
+ (I would like to avoid passwords or other authentication methods,
+ it's your local system.)
+* Don't pass the url with secret token directly to the web browser,
+ as that exposes it to `ps`. Instead, write a html file only the user can read,
+ that redirects to the webapp. **done**
+* Alternative for Linux at least would be to write a small program using
+ GTK+ Webkit, that runs the webapp, and can know what user ran it, avoiding
+ needing authentication.
diff --git a/doc/logo-bw.svg b/doc/logo-bw.svg
new file mode 100644
index 000000000..11d362e5f
--- /dev/null
+++ b/doc/logo-bw.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="640px"
+ height="480px"
+ id="svg3134"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="New document 11">
+ <defs
+ id="defs3136" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.77472527"
+ inkscape:cx="317.41844"
+ inkscape:cy="245.16312"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:window-width="800"
+ inkscape:window-height="564"
+ inkscape:window-x="0"
+ inkscape:window-y="12"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata3139">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="fill:#000000"
+ d="m 302.43431,440.4468 c -14.88228,-4.33874 -18.89443,-6.47398 -28.38217,-15.10481 -13.08558,-11.90371 -17.72561,-23.29726 -17.72561,-43.52501 0,-18.30772 4.14768,-29.96528 14.34194,-40.30981 7.27131,-7.37848 18.36439,-13.25052 25.03206,-13.25052 4.73347,0 4.8315,0.27458 4.8315,13.5325 l 0,13.5325 -6.57204,3.04787 c -9.16684,4.25125 -13.05127,12.36242 -12.09267,25.25093 1.53891,20.69072 13.75689,28.81207 43.34566,28.81207 14.25099,0 19.3577,-0.72886 23.91428,-3.41316 12.51899,-7.37499 18.80704,-23.65294 14.28477,-36.97908 -2.56222,-7.55028 -13.65238,-17.88336 -19.19364,-17.88336 -3.36269,0 -3.73837,1.31029 -3.73837,13.03841 l 0,13.0384 -11.88928,-0.55077 -11.88929,-0.55079 0,-25.90026 0,-25.90027 35.19228,0 35.19228,0 0.57499,9.7126 c 0.49269,8.32267 0.0845,9.71665 -2.85343,9.74093 -8.20311,0.0677 -8.706,2.84359 -2.15276,11.88256 6.12053,8.44215 6.33349,9.33743 6.33349,26.62529 0,15.38301 -0.65924,19.1446 -4.70538,26.84845 -9.93611,18.91837 -28.93477,29.1492 -56.00199,30.15722 -10.88743,0.40545 -20.4551,-0.28006 -25.84662,-1.85189 z m -45.65485,-139.01542 0,-13.87514 65.62885,0 65.62884,0 0,13.87514 0,13.87514 -65.62884,0 -65.62885,0 0,-13.87514 z m 49.45942,-38.8504 0,-15.72516 -24.72971,0 -24.72971,0 0,-12.95013 0,-12.95014 24.72971,0 24.72971,0 0,-16.65017 0,-16.65017 15.21829,0 15.21828,0 0,16.65017 0,16.65017 25.68085,0 25.68085,0 0,12.89643 0,12.89645 -25.20528,0.51619 -25.20528,0.51621 -0.5525,15.26265 -0.5525,15.26266 -15.14135,0 -15.14136,0 0,-15.72516 z m 90.58314,-28.97078 c -1.413,-6.87082 -1.79669,-6.34506 5.78198,-7.92291 5.58749,-1.16331 6.09939,-0.83956 7.33692,4.64003 1.45579,6.44604 -0.79787,9.0505 -7.87441,9.1001 -3.02463,0.0211 -4.34501,-1.44337 -5.24449,-5.81722 z m -160.69546,0.49827 c -1.79783,-1.10787 -2.17745,-3.37832 -1.25087,-7.48118 1.23754,-5.47959 1.74944,-5.80335 7.33693,-4.64004 7.57866,1.57785 7.19497,1.05209 5.78198,7.92291 -1.24077,6.03343 -6.10031,7.75249 -11.86804,4.19831 z m 190.42463,-6.76941 c -1.85277,-5.87101 -1.66966,-6.25919 3.83255,-8.12458 3.17805,-1.07743 5.9948,-1.95896 6.25947,-1.95896 0.91633,0 4.67209,11.70301 3.97372,12.38219 -0.38574,0.37517 -3.27056,1.39869 -6.41068,2.27453 -5.34046,1.48954 -5.83503,1.19409 -7.65506,-4.57318 z m -216.85329,0.64986 c -3.40034,-0.87401 -6.18243,-1.85733 -6.18243,-2.18515 0,-0.32782 0.94953,-3.24505 2.11007,-6.48271 1.73496,-4.84015 2.83405,-5.67166 6.18243,-4.67733 7.88037,2.34017 8.42794,3.15845 6.18018,9.23554 -1.96709,5.31825 -2.52062,5.59264 -8.29025,4.10965 z m 245.52541,-10.67191 c -2.12815,-5.48318 -2.11652,-5.49574 11.85359,-12.82409 22.7641,-11.94143 40.5838,-25.97488 57.05249,-44.93026 l 7.53031,-8.66734 5.41145,4.25151 5.41145,4.25151 -17.60152,17.90565 c -16.73035,17.01941 -37.6183,32.42395 -56.39658,41.59159 -10.27596,5.01677 -10.722,4.96367 -13.26119,-1.57857 z m -286.33038,-6.27889 c -21.55151,-11.9442 -31.63729,-19.70355 -49.98909,-38.45829 l -16.54083,-16.90401 5.39695,-4.24028 5.39696,-4.24026 7.53031,8.66734 c 16.46869,18.95538 34.28839,32.98883 57.05248,44.93026 13.97012,7.32835 13.98175,7.34091 11.8536,12.82409 -1.17162,3.01872 -3.03333,5.48856 -4.13709,5.48856 -1.10378,0 -8.55726,-3.63034 -16.56329,-8.06741 z m 375.66016,-70.84688 c -3.97648,-2.69927 -4.05764,-3.18834 -1.36824,-8.24615 2.7937,-5.254 2.98784,-5.31188 8.50732,-2.53606 6.47782,3.25777 6.35114,2.92151 3.44074,9.13364 -2.52039,5.37967 -4.60478,5.70447 -10.57982,1.64857 z M 89.683687,134.84263 c -2.910382,-6.21213 -3.037055,-5.87587 3.440759,-9.13364 5.520337,-2.77624 5.713305,-2.71854 8.512274,2.54533 2.72546,5.12566 2.63957,5.52893 -1.77689,8.3432 -6.255304,3.98601 -7.594703,3.75504 -10.176143,-1.75489 z M 558.86885,114.49806 c -4.66412,-2.46246 -4.94939,-3.21135 -3.14292,-8.25101 1.09275,-3.04849 2.20334,-5.54273 2.46799,-5.54273 1.15984,0 12.46263,4.10838 12.46263,4.52996 0,2.20567 -4.45138,12.10382 -5.41738,12.04614 -0.68234,-0.0407 -3.54898,-1.29279 -6.37032,-2.78236 z M 76.248436,107.82834 c -1.1486,-3.20438 -2.088367,-6.03672 -2.088367,-6.2941 0,-0.42158 11.30279,-4.529954 12.462632,-4.529954 0.264646,0 1.376722,2.498376 2.471297,5.551964 1.832586,5.11256 1.553673,5.77145 -3.524022,8.32508 -7.178882,3.61035 -6.90035,3.70158 -9.32154,-3.05299 z M 568.27869,86.478917 c -4.16144,-1.0576 -4.15124,-1.435966 0.47558,-17.673656 4.71707,-16.554414 4.76128,-15.866207 -0.95115,-14.804204 -3.51666,0.653779 -4.75571,0.08973 -4.75571,-2.164633 0,-1.67682 1.09334,-3.456779 2.42964,-3.95547 1.33629,-0.498709 4.53447,-4.218875 7.10707,-8.267031 3.85384,-6.064326 5.73436,-7.360301 10.68013,-7.360301 4.78765,0 6.24005,0.919681 7.17525,4.543462 0.64491,2.498894 2.13408,6.869564 3.30925,9.712599 4.714,11.40422 2.47433,18.328434 -4.06643,12.571786 -3.92535,-3.4548 -3.4906,-4.351652 -9.63904,19.885132 -2.24473,8.848659 -3.45803,9.62341 -11.76459,7.512316 z M 62.514449,66.506779 57.950276,48.599557 52.639,52.662624 c -2.921206,2.234675 -5.630041,3.75306 -6.019648,3.374157 -0.389608,-0.378884 0.859281,-4.428205 2.775301,-8.998492 1.916001,-4.570287 3.965028,-9.76649 4.553405,-11.547134 0.734891,-2.224093 3.046111,-3.237533 7.383397,-3.237533 5.021102,0 8.14882,1.812001 15.277977,8.851138 4.930401,4.868122 8.964349,10.279427 8.964349,12.025124 0,4.517598 -2.081195,3.939726 -6.8916,-1.913568 -2.299596,-2.798153 -4.818203,-4.473179 -5.596904,-3.722293 -0.778719,0.750904 0.522064,8.499468 2.890599,17.219014 2.368555,8.719565 3.936551,16.213492 3.484473,16.653149 -0.452097,0.439676 -3.422934,1.3053 -6.601862,1.923613 l -5.779866,1.12422 -4.564172,-17.90724 z"
+ id="path3050"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/logo.svg b/doc/logo.svg
new file mode 100644
index 000000000..5741ffeb5
--- /dev/null
+++ b/doc/logo.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="640px"
+ height="480px"
+ id="svg3134"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="git-annex.svg">
+ <defs
+ id="defs3136" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.77472527"
+ inkscape:cx="398.6665"
+ inkscape:cy="232.05718"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:window-width="1024"
+ inkscape:window-height="566"
+ inkscape:window-x="0"
+ inkscape:window-y="12"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata3139">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g4187"
+ transform="matrix(2.0184211,0,0,1.9796558,-320.30102,-235.1316)">
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccssscssssssssscssssssssssscccssssscccssssssssssssssssssscssssssssssscsssssssccscsssssssssscc"
+ inkscape:connector-curvature="0"
+ id="path3050"
+ d="m 306.53525,253.83733 0,-8.5 -13,0 -13,0 0,-7 0,-7 13,0 13,0 0,-9 0,-9 8,0 8,0 0,9 0,9 13.5,0 13.5,0 0,6.97097 0,6.97098 -13.25,0.27902 -13.25,0.27903 -0.29044,8.25 -0.29044,8.25 -7.95956,0 -7.95956,0 z m 47.61806,-15.65972 c -0.74279,-3.71392 -0.94449,-3.42973 3.03949,-4.28261 2.93725,-0.62881 3.20635,-0.45381 3.8569,2.5081 0.76528,3.48431 -0.41943,4.89211 -4.13945,4.91892 -1.59,0.0114 -2.2841,-0.78019 -2.75694,-3.14441 z m -84.47495,0.26933 c -0.94509,-0.59884 -1.14465,-1.8261 -0.65756,-4.04384 0.65055,-2.96191 0.91965,-3.13691 3.8569,-2.5081 3.98398,0.85288 3.78228,0.56869 3.03949,4.28261 -0.65225,3.26128 -3.20683,4.19049 -6.23883,2.26933 z m 100.10308,-3.6591 c -0.97397,-3.17349 -0.87771,-3.38331 2.01471,-4.39162 1.67065,-0.58239 3.15137,-1.05889 3.2905,-1.05889 0.4817,0 2.45604,6.32589 2.08892,6.69301 -0.20278,0.20279 -1.71928,0.75604 -3.36999,1.22946 -2.80739,0.80515 -3.06738,0.64545 -4.02414,-2.47196 z m -113.99619,0.35127 c -1.7875,-0.47243 -3.25,-1.00395 -3.25,-1.18115 0,-0.1772 0.49915,-1.75406 1.10923,-3.50413 0.91204,-2.61627 1.48981,-3.06573 3.25,-2.52826 4.14258,1.26494 4.43043,1.70725 3.24882,4.99213 -1.03407,2.8747 -1.32505,3.02302 -4.35805,2.22141 z m 129.06865,-5.76854 c -1.11873,-2.96385 -1.11262,-2.97064 6.23124,-6.93187 11.96671,-6.45476 21.33423,-14.04033 29.99155,-24.28638 l 3.95856,-4.685 2.84471,2.29809 2.84471,2.29809 -9.25283,9.67863 c -8.79487,9.19959 -19.77532,17.52628 -29.64675,22.48171 -5.4019,2.71174 -5.63638,2.68304 -6.97119,-0.85327 z m -150.51915,-3.39396 c -11.32927,-6.45626 -16.6312,-10.65046 -26.27844,-20.78805 l -8.69524,-9.13721 2.83709,-2.29202 2.83709,-2.29201 3.95856,4.685 c 8.65732,10.24605 18.02484,17.83162 29.99155,24.28638 7.34386,3.96123 7.34997,3.96802 6.23124,6.93187 -0.6159,1.63172 -1.59457,2.96676 -2.1748,2.96676 -0.58024,0 -4.49841,-1.96233 -8.70705,-4.36072 z m 197.47834,-38.29522 c -2.09037,-1.45905 -2.13303,-1.72341 -0.71926,-4.45733 1.4686,-2.83997 1.57066,-2.87126 4.47216,-1.37083 3.40528,1.76094 3.33869,1.57918 1.80874,4.93705 -1.32493,2.9079 -2.42066,3.08347 -5.56164,0.89111 z m -239.11733,-2.89111 c -1.52994,-3.35787 -1.59653,-3.17611 1.80875,-4.93705 2.90195,-1.50066 3.00339,-1.46947 4.47476,1.37584 1.43273,2.7706 1.38758,2.98858 -0.93408,4.50979 -3.28831,2.15458 -3.99241,2.02973 -5.34943,-0.94858 z m 246.64289,-10.99695 c -2.45185,-1.33105 -2.60181,-1.73585 -1.65218,-4.45996 0.57444,-1.64782 1.15826,-2.99604 1.29738,-2.99604 0.60971,0 6.5514,2.22072 6.5514,2.4486 0,1.19224 -2.34002,6.54254 -2.84783,6.51136 -0.35869,-0.022 -1.86564,-0.6988 -3.34877,-1.50396 z m -253.70558,-3.60522 c -0.6038,-1.73208 -1.09782,-3.26306 -1.09782,-3.40218 0,-0.22788 5.94169,-2.4486 6.5514,-2.4486 0.13912,0 0.72372,1.35046 1.29912,3.00103 0.96336,2.76352 0.81674,3.11967 -1.85252,4.5 -3.77382,1.95152 -3.6274,2.00083 -4.90018,-1.65025 z M 444.28525,158.648 c -2.1876,-0.57167 -2.18224,-0.77619 0.25,-9.55323 2.47969,-8.94824 2.50293,-8.57624 -0.5,-8.00219 -1.84865,0.35339 -2.5,0.0485 -2.5,-1.17006 0,-0.90638 0.57475,-1.86851 1.27722,-2.13807 0.70247,-0.26957 2.3837,-2.28045 3.73607,-4.46862 2.0259,-3.27798 3.01446,-3.9785 5.61437,-3.9785 2.51679,0 3.28029,0.49712 3.77191,2.4559 0.33902,1.35074 1.12185,3.71324 1.73962,5.25 2.47807,6.16438 1.30071,9.90716 -2.13766,6.79549 -2.06349,-1.86744 -1.83495,-2.35222 -5.06708,10.74861 -1.18002,4.78301 -1.81783,5.20179 -6.18445,4.06067 z m -265.87191,-10.79564 -2.39931,-9.67948 -2.79205,2.19623 c -1.53563,1.20792 -2.95962,2.02866 -3.16443,1.82385 -0.20481,-0.2048 0.45171,-2.3936 1.45893,-4.864 1.00721,-2.4704 2.08435,-5.27913 2.39365,-6.24163 0.38632,-1.2022 1.60129,-1.75 3.88133,-1.75 2.63951,0 4.2837,0.97945 8.03138,4.78435 2.59183,2.63139 4.71241,5.55639 4.71241,6.5 0,2.44192 -1.09405,2.12956 -3.6228,-1.03435 -1.20886,-1.5125 -2.53285,-2.41791 -2.9422,-2.01203 -0.40936,0.40589 0.27444,4.59426 1.51954,9.30748 1.24511,4.71323 2.06938,8.76396 1.83173,9.00161 -0.23766,0.23766 -1.79938,0.70556 -3.47049,1.03978 l -3.03838,0.60768 z"
+ style="fill:#40bf4c;fill-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ style="fill:#d8372c;fill-opacity:1"
+ d="m 280.84173,275.15053 0,-7.5 34.5,0 34.5,0 0,7.5 0,7.5 -34.5,0 -34.5,0 z"
+ id="path4113"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="sssssscssssssscccccccsssssss"
+ style="fill:#666666;fill-opacity:1;fill-rule:nonzero"
+ d="m 305.37638,349.62884 c -7.82337,-2.34524 -9.93249,-3.49941 -14.92004,-8.16468 -6.87887,-6.43437 -9.31806,-12.59298 -9.31806,-23.52679 0,-9.89596 2.18037,-16.19728 7.53932,-21.78886 3.82241,-3.98833 9.65386,-7.16237 13.15894,-7.16237 2.48831,0 2.53984,0.14842 2.53984,7.31479 l 0,7.31479 -3.45481,1.64748 c -4.81886,2.29795 -6.86084,6.68232 -6.35692,13.64901 0.80898,11.18406 7.23177,15.57393 22.7861,15.57393 7.49151,0 10.17602,-0.39397 12.57134,-1.84493 6.58103,-3.98644 9.88655,-12.78524 7.50927,-19.98849 -1.34692,-4.08119 -7.17683,-9.66658 -10.08978,-9.66658 -1.76771,0 -1.9652,0.70826 -1.9652,7.04772 l 0,7.04771 -6.25,-0.29771 -6.25,-0.29772 0,-14 0,-14 18.5,0 18.5,0 0.30226,5.25 c 0.259,4.49869 0.0444,5.25219 -1.5,5.26531 -4.31224,0.0366 -4.5766,1.53706 -1.13167,6.42294 3.21746,4.56328 3.32941,5.04721 3.32941,14.3919 0,8.31506 -0.34655,10.34833 -2.47354,14.51253 -5.22325,10.22604 -15.21053,15.75616 -29.43932,16.30103 -5.72334,0.21916 -10.75291,-0.15138 -13.58714,-1.00101 z"
+ id="path4115"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>