summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-10-28 12:39:22 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-10-28 12:39:22 -0400
commit7d2548531ce895d909081b2eb3e594ebf4348ba7 (patch)
tree79f62ce9989b93ebe0b1a62d4fc4ea0d52a92e87
parentc8995036901c95f6627a31de4f3ab280f2dc5ef3 (diff)
parenta2053c437fd872705c3c14ac2bf034f025e7ee88 (diff)
Merge branch 'master' into s3-aws
-rw-r--r--Assistant/DeleteRemote.hs3
-rw-r--r--Git/Remote.hs13
-rw-r--r--Git/Remote/Remove.hs27
-rw-r--r--Utility/Yesod.hs22
-rw-r--r--debian/changelog4
-rw-r--r--doc/bugs/Issue_fewer_S3_GET_requests/comment_2_8fdeb3352ac00a76625ec9c007e5b76a._comment14
-rw-r--r--doc/bugs/Issue_fewer_S3_GET_requests/comment_3_6ccbb1cff7bc6b4640220d98f7ce21c3._comment12
-rw-r--r--doc/bugs/Upload_to_S3_fails_/comment_11_65cb9b1dd69cd657f2cfde036eb60417._comment11
-rw-r--r--doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_1_23d65c7e05f6e7312bbdbd039bf8d308._comment14
-rw-r--r--doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_2_6ceb3251b7067591d34cd146d19ccea9._comment8
-rw-r--r--doc/devblog/day__228_new_AWS.mdwn13
-rw-r--r--doc/forum/Copy_contents_of_directory_to_rsync_remotes_possible__63__.mdwn16
-rw-r--r--doc/forum/Recovering_deleted_file_in_direct_mode.mdwn13
-rw-r--r--doc/install.mdwn10
-rw-r--r--doc/install/verifying_downloads.mdwn8
-rw-r--r--doc/news/version_5.20140915.mdwn27
-rw-r--r--doc/news/version_5.20141024.mdwn21
-rw-r--r--doc/walkthrough/unused_data/comment_2_e2ccd9a209c7a104004e998135d4b675._comment13
-rw-r--r--git-annex.cabal2
19 files changed, 194 insertions, 57 deletions
diff --git a/Assistant/DeleteRemote.hs b/Assistant/DeleteRemote.hs
index a900753a7..968b214c1 100644
--- a/Assistant/DeleteRemote.hs
+++ b/Assistant/DeleteRemote.hs
@@ -18,6 +18,7 @@ import Assistant.DaemonStatus
import qualified Remote
import Remote.List
import qualified Git.Remote
+import qualified Git.Remote.Remove
import Logs.Trust
import qualified Annex
@@ -34,7 +35,7 @@ disableRemote uuid = do
remote <- fromMaybe (error "unknown remote")
<$> liftAnnex (Remote.remoteFromUUID uuid)
liftAnnex $ do
- inRepo $ Git.Remote.remove (Remote.name remote)
+ inRepo $ Git.Remote.Remove.remove (Remote.name remote)
void $ remoteListRefresh
updateSyncRemotes
return remote
diff --git a/Git/Remote.hs b/Git/Remote.hs
index 7e8e5f817..156e30891 100644
--- a/Git/Remote.hs
+++ b/Git/Remote.hs
@@ -12,8 +12,6 @@ module Git.Remote where
import Common
import Git
import Git.Types
-import qualified Git.Command
-import qualified Git.BuildVersion
import Data.Char
import qualified Data.Map as M
@@ -44,17 +42,6 @@ makeLegalName s = case filter legal $ replace "/" "_" s of
legal '.' = True
legal c = isAlphaNum c
-remove :: RemoteName -> Repo -> IO ()
-remove remotename = Git.Command.run
- [ Param "remote"
- -- name of this subcommand changed
- , Param $
- if Git.BuildVersion.older "1.8.0"
- then "rm"
- else "remove"
- , Param remotename
- ]
-
data RemoteLocation = RemoteUrl String | RemotePath FilePath
remoteLocationIsUrl :: RemoteLocation -> Bool
diff --git a/Git/Remote/Remove.hs b/Git/Remote/Remove.hs
new file mode 100644
index 000000000..949019b22
--- /dev/null
+++ b/Git/Remote/Remove.hs
@@ -0,0 +1,27 @@
+{- git remote stuff
+ -
+ - Copyright 2012 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+{-# LANGUAGE CPP #-}
+
+module Git.Remote.Remove where
+
+import Common
+import Git
+import Git.Types
+import qualified Git.Command
+import qualified Git.BuildVersion
+
+remove :: RemoteName -> Repo -> IO ()
+remove remotename = Git.Command.run
+ [ Param "remote"
+ -- name of this subcommand changed
+ , Param $
+ if Git.BuildVersion.older "1.8.0"
+ then "rm"
+ else "remove"
+ , Param remotename
+ ]
diff --git a/Utility/Yesod.hs b/Utility/Yesod.hs
index afe10a111..ecd4eaf94 100644
--- a/Utility/Yesod.hs
+++ b/Utility/Yesod.hs
@@ -1,9 +1,9 @@
{- Yesod stuff, that's typically found in the scaffolded site.
-
- Also a bit of a compatability layer to make it easier to support yesod
- - 1.1 and 1.2 in the same code base.
+ - 1.1-1.4 in the same code base.
-
- - Copyright 2012, 2013 Joey Hess <joey@kitenet.net>
+ - Copyright 2012-2014 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
@@ -17,8 +17,10 @@ module Utility.Yesod
, widgetFile
, hamletTemplate
#endif
+#if ! MIN_VERSION_yesod(1,4,0)
+ , withUrlRenderer
+#endif
#if ! MIN_VERSION_yesod(1,2,0)
- , giveUrlRenderer
, Html
#endif
) where
@@ -41,6 +43,11 @@ import Data.Default (def)
import Text.Hamlet hiding (Html)
#endif
#endif
+#if ! MIN_VERSION_yesod(1,4,0)
+#if MIN_VERSION_yesod(1,2,0)
+import Data.Text (Text)
+#endif
+#endif
#ifndef __NO_TH__
widgetFile :: String -> Q Exp
@@ -69,8 +76,13 @@ liftH = lift
{- Misc new names for stuff. -}
#if ! MIN_VERSION_yesod(1,2,0)
-giveUrlRenderer :: forall master sub. HtmlUrl (Route master) -> GHandler sub master RepHtml
-giveUrlRenderer = hamletToRepHtml
+withUrlRenderer :: forall master sub. HtmlUrl (Route master) -> GHandler sub master RepHtml
+withUrlRenderer = hamletToRepHtml
type Html = RepHtml
+#else
+#if ! MIN_VERSION_yesod_core(1,2,20)
+withUrlRenderer :: MonadHandler m => ((Route (HandlerSite m) -> [(Text, Text)] -> Text) -> output) -> m output
+withUrlRenderer = giveUrlRenderer
+#endif
#endif
diff --git a/debian/changelog b/debian/changelog
index c658ce186..8af44b3bb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-git-annex (5.20141014) UNRELEASED; urgency=medium
+git-annex (5.20141024) unstable; urgency=medium
* vicfg: Deleting configurations now resets to the default, where
before it has no effect.
@@ -20,7 +20,7 @@ git-annex (5.20141014) UNRELEASED; urgency=medium
file. Before, the old version of the creds could be left there, and
would continue to be used.
- -- Joey Hess <joeyh@debian.org> Tue, 14 Oct 2014 14:09:24 -0400
+ -- Joey Hess <joeyh@debian.org> Fri, 24 Oct 2014 13:03:29 -0400
git-annex (5.20141013) unstable; urgency=medium
diff --git a/doc/bugs/Issue_fewer_S3_GET_requests/comment_2_8fdeb3352ac00a76625ec9c007e5b76a._comment b/doc/bugs/Issue_fewer_S3_GET_requests/comment_2_8fdeb3352ac00a76625ec9c007e5b76a._comment
new file mode 100644
index 000000000..b3b259445
--- /dev/null
+++ b/doc/bugs/Issue_fewer_S3_GET_requests/comment_2_8fdeb3352ac00a76625ec9c007e5b76a._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawmUJBh1lYmvfCCiGr3yrdx-QhuLCSRnU5c"
+ nickname="Justin"
+ subject="comment 2"
+ date="2014-10-24T04:49:20Z"
+ content="""
+Oh jeez, I screwed that up wrt HEAD and GET. Sorry. The cost per HEAD on Google is 1/10 the price of GET, so we're talking $.13 to HEAD my 130k-file annex, which is totally reasonable.
+
+One can GET a bucket, which is what I was looking at. This returns up to 1000 elements of its contents (and there's a way to iterate over larger buckets). Of course this would only be useful if the majority of files in the bucket were of interest to git-annex, and it sounds like more trouble than it's worth at the prices I'm seeing.
+
+There might be a throughput improvement to be had by keeping the connection alive, although in my brief investigation, I think there may be a larger gain to be had by pipelining the various steps. Based on the fact that git-annex oomed when trying to upload a large file from my rpi, it seems like maybe the whole file is encrypted in memory before it's uploaded? And certainly the HEAD(s) appear not to be done in parallel with the upload.
+
+Sorry again for that HEAD/GET fail.
+"""]]
diff --git a/doc/bugs/Issue_fewer_S3_GET_requests/comment_3_6ccbb1cff7bc6b4640220d98f7ce21c3._comment b/doc/bugs/Issue_fewer_S3_GET_requests/comment_3_6ccbb1cff7bc6b4640220d98f7ce21c3._comment
new file mode 100644
index 000000000..353281db6
--- /dev/null
+++ b/doc/bugs/Issue_fewer_S3_GET_requests/comment_3_6ccbb1cff7bc6b4640220d98f7ce21c3._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 3"
+ date="2014-10-24T16:02:23Z"
+ content="""
+The OOM is [[S3_memory_leaks]]; fixed in the s3-aws branch.
+
+Yeah, GET of a bucket is doable. Another problem with it though is, if the bucket has a lot of contents, such as many files, or large files split into many chunks, that all has to be buffered in memory or processed as a stream. It would make sense in operations where git-annex knows it wants to check every key in a bucket. `git annex unused --from $s3remote` is the case that springs to mind where it could be quite useful to do that. Integrating it with `get`, not so much.
+
+I'd be inclined to demote this to a wishlist todo item to try to use bucket GET for `unused`. And/or rethink whether it makes sense for `copy --to` to run in --fast mode by default. I've been back and forth on that question before, but just from a runtime perspective, not from a 13 cents perspective. ;)
+"""]]
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_11_65cb9b1dd69cd657f2cfde036eb60417._comment b/doc/bugs/Upload_to_S3_fails_/comment_11_65cb9b1dd69cd657f2cfde036eb60417._comment
new file mode 100644
index 000000000..ec59d6a20
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_11_65cb9b1dd69cd657f2cfde036eb60417._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 11"
+ date="2014-10-23T21:05:15Z"
+ content="""
+When it resumes, it will start at 0% but jump forward to the resume point pretty quickly, after verifying which chunks have already been sent.
+If any full chunk gets transferred, I'd expect it to resume. This may not be very obvious it's happening for smaller files.
+
+I have been running `git annex testremote` against S3 special remotes today, and have not managed to reproduce this problem (using either the old S3 or the new AWS libraries). It could be anything, including a problem with your network or the network between you and the S3 endpoint. Have you tried using a different S3 region?
+"""]]
diff --git a/doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_1_23d65c7e05f6e7312bbdbd039bf8d308._comment b/doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_1_23d65c7e05f6e7312bbdbd039bf8d308._comment
new file mode 100644
index 000000000..e56e1beaf
--- /dev/null
+++ b/doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_1_23d65c7e05f6e7312bbdbd039bf8d308._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 1"
+ date="2014-10-23T18:52:48Z"
+ content="""
+The S3 library that git-annex is using does not support the authentication method that this region uses.
+
+It is supported by the aws library that git-annex uses in the `s3-aws` branch in git, and I already added the region there this morning.
+
+I can't merge `s3-aws` yet; the neccessary version of the aws library is not yet available in eg, Debian. And even upgrading aws from cabal seems to result in dependency hell, due to its needing a newer version of scientific. This should all sort itself out in time.
+
+If you need this region, you'll need to try to build git-annex's s3-aws branch, for now.
+"""]]
diff --git a/doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_2_6ceb3251b7067591d34cd146d19ccea9._comment b/doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_2_6ceb3251b7067591d34cd146d19ccea9._comment
new file mode 100644
index 000000000..fab525b66
--- /dev/null
+++ b/doc/bugs/new_AWS_region___40__eu-central-1__41__/comment_2_6ceb3251b7067591d34cd146d19ccea9._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 2"
+ date="2014-10-23T19:51:46Z"
+ content="""
+Looks like the cabal dependency hell is managable; if done in system without anything installed, cabal manages to install the new aws, and everything else, except for the dbus library. Still not ready to be merged though.
+"""]]
diff --git a/doc/devblog/day__228_new_AWS.mdwn b/doc/devblog/day__228_new_AWS.mdwn
new file mode 100644
index 000000000..3003a7985
--- /dev/null
+++ b/doc/devblog/day__228_new_AWS.mdwn
@@ -0,0 +1,13 @@
+New AWS region in Germany announced today. git-annex doesn't support it
+yet, unless you're using the `s3-aws` branch.
+
+I cleaned up that branch, got it building again, and re-tested it with
+`testremote`, and then fixed a problem the test suite found that was
+caused by some changes in the haskell aws library.
+
+Unfortunately, s3-aws is [not ready to be merged](http://git-annex.branchable.com/bugs/new_AWS_region___40__eu-central-1__41__)
+because of some cabal dependency problems involving `dbus` and `random`. I did
+go ahead and update Debian's haskell-aws package to cherry-pick
+from a newer version the change needed for Inernet Archive
+support, which allows building the s3-aws branch on Debian.
+Getting closer..
diff --git a/doc/forum/Copy_contents_of_directory_to_rsync_remotes_possible__63__.mdwn b/doc/forum/Copy_contents_of_directory_to_rsync_remotes_possible__63__.mdwn
new file mode 100644
index 000000000..abc2f8f26
--- /dev/null
+++ b/doc/forum/Copy_contents_of_directory_to_rsync_remotes_possible__63__.mdwn
@@ -0,0 +1,16 @@
+I'm having trouble sharing an rsync remote between two users (as a "transfer" repository). `git-annex` thinks `rsync` fails because it can't set the permissions on the root directory on the destination. I've added `--perms --chmod=Dug+rwxs,Fug+rw,o-rwx` to `annex-rsync-options` so all users in the specified group on the destination can create and delete files. However, I see in the logs errors like:
+
+ sending incremental file list
+ ./
+ rsync: failed to set permissions on "/home/shared-xfer/.": Operation not permitted (1)
+ 2fe/985/GPGHMACSHA1--b36ce0a18718e7ea7cf9827c2748608df7152dfc/GPGHMACSHA1--b36ce0a18718e7ea7cf9827c2748608df7152dfc
+
+ 32,768 0% 0.00kB/s 0:00:00
+ 3,359,405 100% 4.78MB/s 0:00:00 (xfr#1, to-chk=0/5)
+ rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]
+ [2014-10-18 15:16:24 EDT] chat: gpg ["--batch","--no-tty","--use-agent","--quiet","--trust-model","always","--batch","--passphrase-fd","22","--symmetric","--force-mdc","--no-textmode"]
+ [2014-10-18 15:16:24 EDT] read: rsync ["-e","'ssh' '-S' '.git/annex/ssh/blah@blah' '-o' 'ControlMaster=auto' '-o' 'ControlPersist=yes' '-l' 'blah' '-T'","--perms","--chmod=Dug+rwxs,Fug+rw,o-rwx","--progress","--recursive","--partial","--partial-dir=.rsync-partial","/blah/.git/annex/tmp/rsynctmp/24863/","blah@blah:/home/shared-xfer/"]
+
+ rsync failed -- run git annex again to resume file transfer
+
+The transfer actually completes fine, except for setting permissions of the root directory on the destination (which I don't really care about, because I have manually set them to be correct). Is it possible for `git-annex` to copy the contents of the directory to rsync remotes? For the example above, instead of `/blah/.git/annex/tmp/rsynctmp/24863/`, `/blah/.git/annex/tmp/rsynctmp/24863/2fe` would work. I can't come up with an alternate solution for this server, except using the same remote user (which I'd prefer not to do).
diff --git a/doc/forum/Recovering_deleted_file_in_direct_mode.mdwn b/doc/forum/Recovering_deleted_file_in_direct_mode.mdwn
new file mode 100644
index 000000000..9dc1bdaf1
--- /dev/null
+++ b/doc/forum/Recovering_deleted_file_in_direct_mode.mdwn
@@ -0,0 +1,13 @@
+I accidentally deleted a file from a git-annex repository with a plain "rm". How can I restore it from other repositories that have it?
+
+I tried using
+
+ git annex copy --from $REMOTE $REMOVED_FILE
+
+but git-annex complaints about
+
+ $REMOVED_FILE not found
+
+I suppose that I could switch to indirect mode and do checkout and older version, but I'd prefer not to. My repository contains thousands of quite big files; it would take a lot of time and the probability of something going wrong during the conversion is quite high (see other bugs reported during import).
+
+I'm using git-annex 5.20141024-g613f396.
diff --git a/doc/install.mdwn b/doc/install.mdwn
index adaaa3eb6..478044593 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -2,10 +2,10 @@
[[!table format=dsv header=yes data="""
detailed instructions | quick install
-[[OSX]] | [download git-annex.app](http://downloads.kitenet.net/git-annex/OSX/current/)
+[[OSX]] | [download git-annex.app](https://downloads.kitenet.net/git-annex/OSX/current/)
&nbsp;&nbsp;[[OSX/Homebrew]] | `brew install git-annex`
-[[Android]] | [download git-annex.apk](http://downloads.kitenet.net/git-annex/android/current/) **beta**
-[[Linux|linux_standalone]] | [download prebuilt linux tarball](http://downloads.kitenet.net/git-annex/linux/current/)
+[[Android]] | [download git-annex.apk](https://downloads.kitenet.net/git-annex/android/current/) **beta**
+[[Linux|linux_standalone]] | [download prebuilt linux tarball](https://downloads.kitenet.net/git-annex/linux/current/)
&nbsp;&nbsp;[[Debian]] | `apt-get install git-annex`
&nbsp;&nbsp;[[Ubuntu]] | `apt-get install git-annex`
&nbsp;&nbsp;[[Fedora]] | `yum install git-annex`
@@ -16,10 +16,10 @@ detailed instructions | quick install
&nbsp;&nbsp;[[ScientificLinux5]] |
&nbsp;&nbsp;[[openSUSE]] |
&nbsp;&nbsp;[[Docker]] |
-[[Windows]] | [download installer](http://downloads.kitenet.net/git-annex/windows/current/) **beta**
+[[Windows]] | [download installer](https://downloads.kitenet.net/git-annex/windows/current/) **beta**
"""]]
-All the downloads above use https for security. For added security, see
+All the download links above use https for security. For added security, see
[[verifying_downloads]].
## Building it yourself
diff --git a/doc/install/verifying_downloads.mdwn b/doc/install/verifying_downloads.mdwn
index c3413d431..b3664488f 100644
--- a/doc/install/verifying_downloads.mdwn
+++ b/doc/install/verifying_downloads.mdwn
@@ -9,8 +9,8 @@ file accompanying your package. Just append .sig to the url.
For example, on Linux:
- $ wget http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
- $ wget http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz.sig
+ $ wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
+ $ wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz.sig
You can then download the public key, and check that the package is signed
with it.
@@ -26,6 +26,8 @@ But, how do you know that the gpg-pubkey.asc you downloaded
is the right key? The answer is the GPG web of trust.
* Joey Hess generates these git-annex packages,
- and has a GPG key, [C910D9222512E3C Joey Hess <id@joeyh.name>](http://pgp.cs.uu.nl/stats/2512E3C7.html), which has
+ and has a GPG key, [C910D9222512E3C7 Joey Hess <id@joeyh.name>](http://pgp.cs.uu.nl/stats/2512E3C7.html), which has
been verified and signed by many people.
* Joey's GPG key has signed the git-annex distribution signing key.
+
+Don't take this page's word about this, check it yourself!
diff --git a/doc/news/version_5.20140915.mdwn b/doc/news/version_5.20140915.mdwn
deleted file mode 100644
index 7aa6477c9..000000000
--- a/doc/news/version_5.20140915.mdwn
+++ /dev/null
@@ -1,27 +0,0 @@
-git-annex 5.20140915 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * New annex.hardlink setting. Closes: #[758593](http://bugs.debian.org/758593)
- * init: Automatically detect when a repository was cloned with --shared,
- and set annex.hardlink=true, as well as marking the repository as
- untrusted.
- * Fix parsing of ipv6 address in git remote address when it was not
- formatted as an url.
- * The annex-rsync-transport configuration is now also used when checking
- if a key is present on a rsync remote, and when dropping a key from
- the remote.
- * Promote file not found warning message to an error.
- * Fix transfer lock file FD leak that could occur when two separate
- git-annex processes were both working to perform the same set of
- transfers.
- * sync: Ensure that pending changes to git-annex branch are committed
- before push when in direct mode. (Fixing a very minor reversion.)
- * WORM backend: Switched to include the relative path to the file inside
- the repository, rather than just the file's base name. Note that if you're
- relying on such things to keep files separate with WORM, you should really
- be using a better backend.
- * Rather than crashing when there's a problem with the requested bloomfilter
- capacity/accuracy, fall back to a reasonable default bloom filter size.
- * Fix build with optparse-applicative 0.10. Closes: #[761484](http://bugs.debian.org/761484)
- * webapp: Fixed visual glitch in xmpp pairing that was reported live by a
- user who tracked me down in front of a coffee cart in Portland.
- (New bug reporting method of choice?)"""]] \ No newline at end of file
diff --git a/doc/news/version_5.20141024.mdwn b/doc/news/version_5.20141024.mdwn
new file mode 100644
index 000000000..b50a81b85
--- /dev/null
+++ b/doc/news/version_5.20141024.mdwn
@@ -0,0 +1,21 @@
+git-annex 5.20141024 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * vicfg: Deleting configurations now resets to the default, where
+ before it has no effect.
+ * Remove hurd stuff from cabal file, since hackage currently rejects
+ it, and the test suite fails on hurd.
+ * initremote: Don't allow creating a special remote that has the same
+ name as an existing git remote.
+ * Windows: Use haskell setenv library to clean up several ugly workarounds
+ for inability to manipulate the environment on windows. This includes
+ making git-annex not re-exec itself on start on windows, and making the
+ test suite on Windows run tests without forking.
+ * glacier: Fix pipe setup when calling glacier-cli to retrieve an object.
+ * info: When run on a single annexed file, displays some info about the
+ file, including its key and size.
+ * info: When passed the name or uuid of a remote, displays info about that
+ remote. Remotes that support encryption, chunking, or embedded
+ creds will include that in their info.
+ * enableremote: When the remote has creds, update the local creds cache
+ file. Before, the old version of the creds could be left there, and
+ would continue to be used."""]] \ No newline at end of file
diff --git a/doc/walkthrough/unused_data/comment_2_e2ccd9a209c7a104004e998135d4b675._comment b/doc/walkthrough/unused_data/comment_2_e2ccd9a209c7a104004e998135d4b675._comment
new file mode 100644
index 000000000..91075ce24
--- /dev/null
+++ b/doc/walkthrough/unused_data/comment_2_e2ccd9a209c7a104004e998135d4b675._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawn3p4i4lk_zMilvjnJ9sS6g2nerpgz0Fjc"
+ nickname="Matthias"
+ subject="Keep historical data, but delete data never referenced"
+ date="2014-10-26T12:06:25Z"
+ content="""
+Is there an easy solution for the following? There are two kinds of \"unused\" I would like to treat differently:
+
+1. Kind \"really unused\": Was added once to the annex, but symlink was never committed
+2. Kind \"only history\": A commit contains a symlink to the data, but no active branch
+
+I want to preserve \"only history\", and only drop \"really unused\". What is an elegant way to do this? Thanks for your suggestions.
+"""]]
diff --git a/git-annex.cabal b/git-annex.cabal
index 863f35cf8..27050d30c 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -1,5 +1,5 @@
Name: git-annex
-Version: 5.20141013
+Version: 5.20141024
Cabal-Version: >= 1.8
License: GPL-3
Maintainer: Joey Hess <joey@kitenet.net>