summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-10-13 15:05:44 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-10-13 15:05:44 -0400
commitf0cf034faa674921dae63d7a54270861bbe86e29 (patch)
treee980593037c29c330b05de08bf0fc28389151682
parenta8728440dec6213c1e9e5347175effca30c1118e (diff)
parent03d5ee36f6c36eea42d21bbf6879800d452aa651 (diff)
Merge branch 'master' into incrementalfsck
-rw-r--r--Command/Status.hs7
-rw-r--r--debian/changelog2
-rw-r--r--doc/assistant/fsckconfig.pngbin0 -> 59050 bytes
-rw-r--r--doc/bugs/addurl_fails_on_the_internet_archive.mdwn65
-rw-r--r--doc/bugs/addurl_fails_on_the_internet_archive/comment_1_e227aa25eea0b41f1176037a601c5844._comment10
-rw-r--r--doc/bugs/addurl_fails_on_the_internet_archive/comment_2_6d4fd58f0caa1f75ee2dd3f0a909cd91._comment8
-rw-r--r--doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos.mdwn197
-rw-r--r--doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos/comment_1_294c33af08649256908a97894f93c05d._comment10
-rw-r--r--doc/design/assistant/disaster_recovery.mdwn14
-rw-r--r--doc/devblog/day_27__locking_fun/comment_4_0759644baf26b75f4e48dbb387d725a5._comment10
-rw-r--r--doc/devblog/day_32__fsck_config_UI.mdwn20
-rw-r--r--doc/forum/bash_completion/comment_3_948c40f1e46ca220d61365aebcd4f6d7._comment136
-rw-r--r--doc/forum/git-annex:_status:_1_failed/comment_5_05c84dde377298adfd3fc20749b3108f._comment10
-rw-r--r--doc/forum/git-annex:_status:_1_failed/comment_6_bb5141e29c665bc0bb82611ea27d4be8._comment11
-rw-r--r--doc/tips/Internet_Archive_via_S3/comment_3_e23cf781c532f80d47d52265f2b2c87e._comment8
-rw-r--r--doc/tips/using_the_web_as_a_special_remote.mdwn2
-rw-r--r--standalone/android/Makefile2
17 files changed, 504 insertions, 8 deletions
diff --git a/Command/Status.hs b/Command/Status.hs
index 9da1bea98..c3713f073 100644
--- a/Command/Status.hs
+++ b/Command/Status.hs
@@ -371,10 +371,11 @@ staleSize label dirspec = go =<< lift (dirKeys dirspec)
onsize size = stat label $
json (++ aside "clean up with git-annex unused") $
return $ roughSize storageUnits False size
- keysizes keys = map (fromIntegral . fileSize) <$> stats keys
- stats keys = do
+ keysizes keys = do
dir <- lift $ fromRepo dirspec
- liftIO $ forM keys $ \k -> getFileStatus (dir </> keyFile k)
+ liftIO $ forM keys $ \k -> catchDefaultIO 0 $
+ fromIntegral . fileSize
+ <$> getFileStatus (dir </> keyFile k)
aside :: String -> String
aside s = " (" ++ s ++ ")"
diff --git a/debian/changelog b/debian/changelog
index 853f9a854..d558b83ae 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,8 @@ git-annex (4.20131003) UNRELEASED; urgency=low
* Remove bogus runshell loop check.
* addurl: Improve message when adding url with wrong size to existing file.
* Fixed handling of URL keys that have no recorded size.
+ * status: Fix a crash if a temp file went away while its size was
+ being checked for status.
-- Joey Hess <joeyh@debian.org> Thu, 03 Oct 2013 15:41:24 -0400
diff --git a/doc/assistant/fsckconfig.png b/doc/assistant/fsckconfig.png
new file mode 100644
index 000000000..81ae755cf
--- /dev/null
+++ b/doc/assistant/fsckconfig.png
Binary files differ
diff --git a/doc/bugs/addurl_fails_on_the_internet_archive.mdwn b/doc/bugs/addurl_fails_on_the_internet_archive.mdwn
new file mode 100644
index 000000000..556575db6
--- /dev/null
+++ b/doc/bugs/addurl_fails_on_the_internet_archive.mdwn
@@ -0,0 +1,65 @@
+### Please describe the problem.
+
+`addurl` doesn't support the internet archive:
+
+1. it doesn't actually accept the proper URL as a secondary source of content
+2. it doesn't parse the HTML from the video page (the "details page")
+
+### What steps will reproduce the problem?
+
+ # download eben moglen's excellent re:publica presentation from youtube
+ git annex addurl https://www.youtube.com/watch?v=sKOk4Y4inVY
+ # copy that file aside
+ cp -L re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm-bak
+ # drop it so we can try again
+ git annex drop re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+ # add the IA URL for the same video, failing
+ git annex addurl --file=re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm http://ia601009.us.archive.org/9/items/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+ # try again with --relaxed to skip some checks
+ git annex addurl --relaxed --file=re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm http://ia601009.us.archive.org/9/items/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+ # observe both files are the same size and checksum
+
+The files should look like this:
+
+[[!format txt """
+anarcat@angela:presentations$ ls -alL re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm*
+-r--r--r-- 1 anarcat anarcat 419359123 oct 9 23:41 re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+-r--r--r-- 1 anarcat anarcat 419359123 oct 11 19:40 re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm-bak
+anarcat@angela:presentations$ md5sum re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm*
+7892df24a9e1c40e2587be1035728ef0 re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+7892df24a9e1c40e2587be1035728ef0 re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm-bak
+"""]]
+
+There are two separate bugs here: one is the above need to use --relaxed even though the file is the same.
+
+The second is probably simply that quvi doesn't support the internet archive, and maybe that one should be moved to a separate [[todo]]/[[wishlist]]. I was expecting this to "do the right thing" (ie. download the video):
+
+ git annex addurl http://archive.org/details/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia
+
+... but instead it downloads the HTML.
+### What version of git-annex are you using? On what operating system?
+
+my good old faithful `4.20130921-g434dc22` i compiled manually some time ago. :)
+
+This is [[done]] in git-annex version: 4.20131011-g2c0badc. Thanks!
+
+### Please provide any additional information below.
+
+[[!format sh """
+anarcat@marcos:presentations$ git annex addurl --file=re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm http://archive.org/download/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+addurl re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+ failed to verify url exists: http://archive.org/download/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+failed
+git-annex: addurl: 1 failed
+anarcat@marcos:presentations$ git annex addurl --debug --file=re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm http://ia601009.us.archive.org/9/items/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+[2013-10-09 18:26:30 EDT] call: quvi ["-v","mute","--support","http://ia601009.us.archive.org/9/items/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm"]
+addurl re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm [2013-10-09 18:26:30 EDT] read: curl ["-s","--head","-L","http://ia601009.us.archive.org/9/items/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm","-w","%{http_code}"]
+
+ failed to verify url exists: http://ia601009.us.archive.org/9/items/Republica2012-EbenMoglen-FreedomOfThoughtRequiresFreeMedia/re_publica_2012___Eben_Moglen___Freedom_of_Thought_Requires_Free_Media.webm
+failed
+git-annex: addurl: 1 failed
+"""]]
+
+Originally reported in [[tips/Internet_Archive_via_S3]]. --[[anarcat]]
+
+> [[done]] --[[Joey]]
diff --git a/doc/bugs/addurl_fails_on_the_internet_archive/comment_1_e227aa25eea0b41f1176037a601c5844._comment b/doc/bugs/addurl_fails_on_the_internet_archive/comment_1_e227aa25eea0b41f1176037a601c5844._comment
new file mode 100644
index 000000000..4754b8366
--- /dev/null
+++ b/doc/bugs/addurl_fails_on_the_internet_archive/comment_1_e227aa25eea0b41f1176037a601c5844._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="4.154.4.22"
+ subject="comment 1"
+ date="2013-10-11T18:49:25Z"
+ content="""
+Afaik this was fixed in 747f5b123cb3c6b3b87d4e79f8767e69d842b96b.
+
+Probably noone has bothered to add IA support to quvi, but it should be doable.
+"""]]
diff --git a/doc/bugs/addurl_fails_on_the_internet_archive/comment_2_6d4fd58f0caa1f75ee2dd3f0a909cd91._comment b/doc/bugs/addurl_fails_on_the_internet_archive/comment_2_6d4fd58f0caa1f75ee2dd3f0a909cd91._comment
new file mode 100644
index 000000000..f24d0583f
--- /dev/null
+++ b/doc/bugs/addurl_fails_on_the_internet_archive/comment_2_6d4fd58f0caa1f75ee2dd3f0a909cd91._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://id.koumbit.net/anarcat"
+ ip="72.0.72.144"
+ subject="awesome, fix confirmed, and IA+quvi forwarded upstream"
+ date="2013-10-12T11:23:31Z"
+ content="""
+Great! I confirm latest versions work properly.. I have [written the quvi-devel mailing list](http://sourceforge.net/mailarchive/forum.php?thread_name=20131012104904.GA11972%40angela.anarcat.ath.cx&forum_name=quvi-devel) to ask for help for archive.org support, we'll see where it goes...
+"""]]
diff --git a/doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos.mdwn b/doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos.mdwn
new file mode 100644
index 000000000..69364ae63
--- /dev/null
+++ b/doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos.mdwn
@@ -0,0 +1,197 @@
+### Please describe the problem.
+Data loss due to incorrect merge of repos in direct mode. (I tested the same scenario in indirect mode and it worked fine there)
+
+Given 2 repos A and B, in direct mode:
+
+1. in A: mkdir f, with a file f in it
+2. in B: touch f
+3. in B: sync
+
+Result: Only an f.variant-f###remains, which is file f of B, and the merge conflict has already been automatically resolved. I.e. Directory f containing file f, is lost.
+
+Expected result: remaining contents: f.variant-AAA which is file f of B, f.variant-BBB which is directory f of A, containing a file f. Merge conflict marked resolved.
+
+### What steps will reproduce the problem?
+Execute the script given below in additional information.
+
+### What version of git-annex are you using?
+git-annex version: 4.20130911-g6625d0e
+build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP Feeds Quvi
+
+### On what operating system?
+Linux basementcat 3.10.10-1-ARCH #1 SMP PREEMPT Fri Aug 30 11:30:06 CEST 2013 x86_64 GNU/Linux
+
+### Please provide any additional information below.
+
+[[!format sh """
+[~]$ mkdir test
+[~/test]$ mkdir a
+[~/test/a]$ git init
+Initialized empty Git repository in /home/limyreth/test/a/.git/
+[~/test/a]$ git annex init test
+init test ok
+(Recording state in git...)
+[~/test/a]$ touch firstfile
+[~/test/a]$ git annex add firstfile
+add firstfile (checksum...) ok
+(Recording state in git...)
+[~/test/a]$ git annex sync
+commit
+ok
+git-annex: no branch is checked out
+[~]$ git clone test/a
+Cloning into 'a'...
+done.
+[~]$ mv a test/b
+[~/test/a]$ git annex direct
+commit
+# On branch master
+nothing to commit, working directory clean
+ok
+direct firstfile ok
+direct ok
+[~/test/a]$ ls -l
+total 0
+-rw-r--r-- 1 limyreth users 0 Oct 12 15:09 firstfile
+[~/test/a]$ mkdir f
+[~/test/a]$ touch f/f
+[~/test/a]$ git annex add f/f
+add f/f (checksum...) ok
+(Recording state in git...)
+[~/test/a]$ git annex sync
+commit
+ok
+[~/test/b]$ git remote -v
+origin /home/limyreth/test/a (fetch)
+origin /home/limyreth/test/a (push)
+[~/test/b]$ ls
+firstfile
+[~/test/b]$ git annex direct
+commit
+(Recording state in git...)
+# On branch master
+nothing to commit, working directory clean
+ok
+direct ok
+[~/test/b]$ touch f
+[~/test/b]$ git annex add f
+add f (checksum...) ok
+(Recording state in git...)
+[~/test/b]$ git annex sync
+(merging origin/git-annex into git-annex...)
+(Recording state in git...)
+commit
+ok
+pull origin
+remote: Counting objects: 14, done.
+remote: Compressing objects: 100% (7/7), done.
+remote: Total 9 (delta 1), reused 0 (delta 0)
+Unpacking objects: 100% (9/9), done.
+From /home/limyreth/test/a
+ 2a8fa45..ad6802d master -> origin/master
+ 1f39016..19e3e12 git-annex -> origin/git-annex
+ * [new branch] synced/master -> origin/synced/master
+
+Adding f/f
+CONFLICT (file/directory): There is a directory with name f in refs/remotes/origin/master. Adding f as f~HEAD
+Automatic merge failed; fix conflicts and then commit the result.
+f: needs merge
+(Recording state in git...)
+ok
+[master 37a8019] git-annex automatic merge conflict fix
+
+Already up-to-date.
+ok
+(merging origin/git-annex into git-annex...)
+(Recording state in git...)
+push origin
+Counting objects: 36, done.
+Delta compression using up to 4 threads.
+Compressing objects: 100% (20/20), done.
+Writing objects: 100% (25/25), 2.16 KiB | 0 bytes/s, done.
+Total 25 (delta 5), reused 0 (delta 0)
+To /home/limyreth/test/a
+ ad6802d..37a8019 master -> synced/master
+ * [new branch] git-annex -> synced/git-annex
+ok
+[~/test/b]$ ls -l
+total 0
+-rw-r--r-- 1 limyreth users 0 Oct 12 15:11 firstfile
+-rw-r--r-- 1 limyreth users 0 Oct 12 15:11 f.variant-f874
+[~/test/b]$ git log --summary
+commit 37a80199abe3cf82100bbdb5dd2217ed6bcb4b62
+Merge: 5a8942a ad6802d
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:11:47 2013 +0200
+
+ git-annex automatic merge conflict fix
+
+commit 5a8942a9a1735cb313c1f6624cbd3f48b252d9d9
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:11:47 2013 +0200
+
+ git-annex automatic sync
+
+ create mode 120000 f
+
+commit ad6802dc231d389b86154e2df900a70b18e17b29
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:11:40 2013 +0200
+
+ git-annex automatic sync
+
+ create mode 120000 f/f
+
+commit 2a8fa45bea996ab5ae219a017d4b642153e6d9c9
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:09:40 2013 +0200
+
+ git-annex automatic sync
+
+ create mode 120000 firstfile
+[~/test/a]$ git annex sync
+(merging synced/git-annex into git-annex...)
+commit
+ok
+merge synced/master
+Updating ad6802d..37a8019
+Fast-forward
+ f.variant-f874 | 1 +
+ f/f | 1 -
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+ create mode 120000 f.variant-f874
+ delete mode 120000 f/f
+ok
+[~/test/a]$ git log --summary
+commit 37a80199abe3cf82100bbdb5dd2217ed6bcb4b62
+Merge: 5a8942a ad6802d
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:11:47 2013 +0200
+
+ git-annex automatic merge conflict fix
+
+commit 5a8942a9a1735cb313c1f6624cbd3f48b252d9d9
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:11:47 2013 +0200
+
+ git-annex automatic sync
+
+ create mode 120000 f
+
+commit ad6802dc231d389b86154e2df900a70b18e17b29
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:11:40 2013 +0200
+
+ git-annex automatic sync
+
+ create mode 120000 f/f
+
+commit 2a8fa45bea996ab5ae219a017d4b642153e6d9c9
+Author: timdiels <timdiels.m@gmail.com>
+Date: Sat Oct 12 15:09:40 2013 +0200
+
+ git-annex automatic sync
+
+ create mode 120000 firstfile
+
+"""]]
diff --git a/doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos/comment_1_294c33af08649256908a97894f93c05d._comment b/doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos/comment_1_294c33af08649256908a97894f93c05d._comment
new file mode 100644
index 000000000..1b22d2ce5
--- /dev/null
+++ b/doc/bugs/data_loss:_incorrect_merge_upon_conflicting_directory-file_of_direct_repos/comment_1_294c33af08649256908a97894f93c05d._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlWskoNgUB7r70OXglR-4iKI4bOuPJb-xg"
+ nickname="Tim"
+ subject="comment 1"
+ date="2013-10-13T12:35:47Z"
+ content="""
+I've just tested a similar scenario with 2 conflicting files, a file-file conflict, and then it works fine. That makes sense, as there's a test written for that.
+
+So the specific bits are: directory-file conflict of repos in direct mode.
+"""]]
diff --git a/doc/design/assistant/disaster_recovery.mdwn b/doc/design/assistant/disaster_recovery.mdwn
index 29db34fc4..c9164880a 100644
--- a/doc/design/assistant/disaster_recovery.mdwn
+++ b/doc/design/assistant/disaster_recovery.mdwn
@@ -24,7 +24,7 @@ check that nothing else is using it, fix the problem, and redo the commit.
## incremental fsck
-TODO: Add webapp UI to enable incremental fsck
+Add webapp UI to enable incremental fsck **done**
Of course, incremental fsck will run as an niced (and ioniced) background
job. There will need to be a button in the webapp to stop it, in case it's
@@ -33,8 +33,16 @@ annoying. **done**
When fsck finds a damanged file, queue a download of the file from a
remote. **done**
-TODO: If no accessible remote has the file, prompt the user to eg, connect
-a drive containing it
+TODO: If no accessible remote has a file that fsck reported missing,
+prompt the user to eg, connect a drive containing it. Or perhaps this is a
+special case of a general problem, and the webapp should prompt the user
+when any desired file is available on a remote that's not mounted?
+
+TODO: Detect when a removable drive is connected in the Cronner, and check
+and try to run its remote fsck jobs.
+
+TODO: git-annex-shell fsck support, which would allow cheap fast fscks
+of ssh remotes.
## git-annex-shell remote fsck
diff --git a/doc/devblog/day_27__locking_fun/comment_4_0759644baf26b75f4e48dbb387d725a5._comment b/doc/devblog/day_27__locking_fun/comment_4_0759644baf26b75f4e48dbb387d725a5._comment
new file mode 100644
index 000000000..cbeae8b78
--- /dev/null
+++ b/doc/devblog/day_27__locking_fun/comment_4_0759644baf26b75f4e48dbb387d725a5._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="4.154.4.22"
+ subject="comment 4"
+ date="2013-10-12T23:31:16Z"
+ content="""
+Git simply creates a file as a lock file, and does not use any form of locking on it, so if the git process dies for any reason before it gets a chance to remove the lock file, a stale lock file remains, and future git commands will fall over it.
+
+It's really surprisingly bad..
+"""]]
diff --git a/doc/devblog/day_32__fsck_config_UI.mdwn b/doc/devblog/day_32__fsck_config_UI.mdwn
new file mode 100644
index 000000000..66f4cfd54
--- /dev/null
+++ b/doc/devblog/day_32__fsck_config_UI.mdwn
@@ -0,0 +1,20 @@
+Last night, built this nice user interface for configuring periodic fscks:
+
+[[!img assistant/fsckconfig.png]]
+
+Rather happy that that whole UI needed only 140 lines of code to build.
+Though rather more work behind it, as seen in this blog..
+
+Today I added some support to git-annex for smart fscking of remotes.
+So far only git repos on local drives, but this should get extended to
+git-annex-shell for ssh remotes. The assistant can also run periodic fscks
+of these.
+
+Still need to test that, and find a way to make a removable drive's fsck
+job run when the drive gets plugged in. That's where picking "any time"
+will be useful; it'll let you configure fscking of removable drives when
+they're available, as long as they have not been fscked too recently.
+
+----
+
+Today's work was sponsored by Georg Bauer.
diff --git a/doc/forum/bash_completion/comment_3_948c40f1e46ca220d61365aebcd4f6d7._comment b/doc/forum/bash_completion/comment_3_948c40f1e46ca220d61365aebcd4f6d7._comment
new file mode 100644
index 000000000..fbe659164
--- /dev/null
+++ b/doc/forum/bash_completion/comment_3_948c40f1e46ca220d61365aebcd4f6d7._comment
@@ -0,0 +1,136 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkUwqII7LhbatqAQY1T5ZZOdPEFcQJKG6I"
+ nickname="Rafael"
+ subject="comment 3"
+ date="2013-10-13T16:14:34Z"
+ content="""
+This code needs the bash-completion file for git by Shawn O. Pearce, I think it is distributed by default on debian. Any feed-back or improvement is welcome! I'm far from expert, use at your own risks.
+
+
+ #!bash
+ #
+ # bash completion support for git-annex
+
+ # depends on git completion file (by Shawn O. Pearce):
+ [ -n \"$__git_whitespacelist\" ] || . $BASH_COMPLETION_DIR/git
+
+
+ # almost copy of __git_aliased_command
+ # requires 2 arguments: alias and main command (after git)
+ __git_aliased_subcommand ()
+ {
+ local word cmdline=$(git --git-dir=\"$(__gitdir)\" \
+ config --get \"alias.$1\")
+ for word in $cmdline; do
+ case \"$word\" in
+ \!*) : shell command alias ;;
+ -*) : option ;;
+ *=*) : setting env ;;
+ git) : git itself ;;
+ \"$2\") : main command
+ local found=1 ;;
+ *)
+ [ -n \"${found-}\" ] && echo \"$word\"
+ return
+ esac
+ done
+ }
+
+
+ _git_annex ()
+ {
+ _get_comp_words_by_ref -n =: cur words
+ # $ git annex 2>&1 |sed '1,6d '|grep -v '^$'|grep -v 'commands:$'|cut -c1-12
+ local subcommands=\"
+ add addurl assistant copy drop edit get import importfeed lock
+ mirror move rmurl sync unlock watch webapp content dead describe
+ direct enableremote group indirect init initremote semitrust
+ trust ungroup untrust vicfg addunused dropunused fix forget fsck
+ merge unused upgrade find help list log map status version
+ whereis migrate reinject unannex uninit dropkey
+ \"
+ # plumbing (to complete?): fromkey fuzztest pre-commit rekey test
+ # transferkey transferkeys xmppgit
+ local subcommand=\"$(__git_find_on_cmdline \"$subcommands\")\"
+ if [ -z \"$subcommand\" ]; then
+ ## search for aliased subcommand
+ ## works only if the alias is invoked just after git
+ ## (simpler, cf _git function)
+ local maybesubcom maybealias=${words[1]}
+ [ -n \"$maybealias\" ] && # false with a bash alias='git annex'
+ [ \"${maybealias:0:1}\" != '-' ] &&
+ maybesubcom=$(__git_aliased_subcommand \"$maybealias\" annex)
+ for subcommand in $subcommands \"\"; do
+ [ \"$maybesubcom\" = \"$subcommand\" ] && break
+ done
+ [ -z \"$subcommand\" ] &&
+ __gitcomp \"$subcommands\" &&
+ return
+ fi
+ case \"$cur\" in
+ --from=*|--to=*|--trust=*|--semitrust=*|--untrust=*|--in=*)
+ __gitcomp \"here $(__git_remotes)\" \"\" \"${cur##*=}\"
+ ;;
+ --*)
+ __gitcomp \"
+ --force --fast --auto --all --unused --quiet --verbose --json --debug
+ --no-debug --from= --to= --numcopies= --time-limit= --trust= --semitrust=
+ --untrust= --trust-glacier-inventory --backend= --format= --user-agent=
+ --exclude= --include= --in= --copies= --inbackend= --inallgroup=
+ --smallerthan= --largerthan= --not --and --or
+ \"
+ ;;
+ # -*)
+ # __gitcomp \"-( -) -c\"
+ # ;;
+ *)
+ case \"$subcommand\" in
+ # subcommands with PATH (currently outputs wrongly \"uninit\",
+ # and not \"reinject\")
+ # $ tr ' ' '|' <<< $(git annex 2>&1 |sed '1,6d '|grep -v '^$' | \
+ # grep -v 'commands:$'|grep PATH |cut -c1-12)
+ add|copy|drop|edit|get|import|lock|mirror|move|unlock|fix| \
+ fsck|find|list|log|status|whereis|migrate|unannex| \
+ fromkey|pre-commit|rekey|reinject)
+ COMPREPLY=() # complete with paths
+ ;;
+ addurl|importfeed|rmurl) # URL commands
+ COMPREPLY=() # at least works with file://...
+ ;;
+ init|uninit|unused|merge|status|map|upgrade|version|assistant| \
+ watch|webapp|direct|indirect|vicfg|forget|help) # | plumbing...
+ COMPREPLY= # no more args expected
+ # is 'COMPREPLY=' correct? (seems not standard practice...)
+ ;;
+ describe|trust|untrust|semitrust|sync|content|dead|group|ungroup)
+ __gitcomp \"here $(__git_remotes)\"
+ # TODO: handle git-annex special remotes
+ ;;
+ initremote|enableremote)
+ case \"$cur\" in
+ type=*)
+ __gitcomp \"S3 bup directory rsync gcrypt webdav\" \"\" \"${cur##type=}\"
+ ;;
+ encryption=*)
+ __gitcomp \"none hybrid shared pubkey\" \"\" \"${cur##encryption=}\"
+ ;;
+
+ buprepo=|directory=|rsyncurl=)
+ COMPREPLY=()
+ # use COMPREPLY (and compgen below) directly because
+ # __gitcomp does not handle '*=*' pattern, only '--*=*'
+ # Writing a __gitannexcomp function may be worth it.
+ ;;
+ *)
+ local initremoteopts=\"
+ type= encryption= buprepo= directory= rsyncurl= \"
+ COMPREPLY=($(compgen -W \"$initremoteopts \" -- \"$cur\"))
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ }
+
+"""]]
diff --git a/doc/forum/git-annex:_status:_1_failed/comment_5_05c84dde377298adfd3fc20749b3108f._comment b/doc/forum/git-annex:_status:_1_failed/comment_5_05c84dde377298adfd3fc20749b3108f._comment
new file mode 100644
index 000000000..61af9e9df
--- /dev/null
+++ b/doc/forum/git-annex:_status:_1_failed/comment_5_05c84dde377298adfd3fc20749b3108f._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="RaspberryPie"
+ ip="213.61.149.100"
+ subject="comment 5"
+ date="2013-10-13T06:33:24Z"
+ content="""
+I use v4.20130909 and get the same error when running `git-annex status`. Does it matter that my filename in question is shown to have two dashes (--) at the end, just as in OP's case? Other files in .git/annex/tmp only have one dash at the end.
+
+Joey, I straced the command and sent the output to your kitenet e-mail address. Hope it helps.
+"""]]
diff --git a/doc/forum/git-annex:_status:_1_failed/comment_6_bb5141e29c665bc0bb82611ea27d4be8._comment b/doc/forum/git-annex:_status:_1_failed/comment_6_bb5141e29c665bc0bb82611ea27d4be8._comment
new file mode 100644
index 000000000..ab720b6ce
--- /dev/null
+++ b/doc/forum/git-annex:_status:_1_failed/comment_6_bb5141e29c665bc0bb82611ea27d4be8._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="4.154.4.22"
+ subject="comment 6"
+ date="2013-10-13T17:35:20Z"
+ content="""
+What is the last line printed before this error message?
+
+My preliminary analysis is that it is checking the sizes of stale files in .git/annex/tmp, and could fail if a temp file was deleted just as it was running.
+But if so it would be unlikely to happen every time `git annex status` is run. Or even if it did happen every time (perhaps because you appear to be running the git-annex assistant and it might be adding a lot of files in the background), the filename in the error message would be different every time. I have just committed a fix for that problem to git, but am not 100% sure it's really the problem that you're seeing.
+"""]]
diff --git a/doc/tips/Internet_Archive_via_S3/comment_3_e23cf781c532f80d47d52265f2b2c87e._comment b/doc/tips/Internet_Archive_via_S3/comment_3_e23cf781c532f80d47d52265f2b2c87e._comment
new file mode 100644
index 000000000..3745d544c
--- /dev/null
+++ b/doc/tips/Internet_Archive_via_S3/comment_3_e23cf781c532f80d47d52265f2b2c87e._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://id.koumbit.net/anarcat"
+ ip="72.0.72.144"
+ subject="still a bug, filed separately!"
+ date="2013-10-11T18:49:06Z"
+ content="""
+Aaah, of course, sorry for the noise here. It turns out that this is *not* because the filesize (or even the checksum, for that matter) are different, so there's clearly a bug there, and i filed it in [[bugs/addurl_fails_on_the_internet_archive]]. Thanks!
+"""]]
diff --git a/doc/tips/using_the_web_as_a_special_remote.mdwn b/doc/tips/using_the_web_as_a_special_remote.mdwn
index 4304c0e77..e04ba800d 100644
--- a/doc/tips/using_the_web_as_a_special_remote.mdwn
+++ b/doc/tips/using_the_web_as_a_special_remote.mdwn
@@ -68,7 +68,7 @@ number takes that many paths from the end.
## videos
-<a name=quvi />
+<a name=quvi></a>
There's support for downloading videos from sites like YouTube, Vimeo,
and many more. This relies on [quvi](http://quvi.sourceforge.net/) to find
diff --git a/standalone/android/Makefile b/standalone/android/Makefile
index 4d15bc38b..1a2ef0f1a 100644
--- a/standalone/android/Makefile
+++ b/standalone/android/Makefile
@@ -114,7 +114,7 @@ $(GIT_ANNEX_ANDROID_SOURCETREE)/rsync/build-stamp: rsync.patch
touch $@
$(GIT_ANNEX_ANDROID_SOURCETREE)/gnupg/build-stamp:
- cd $(GIT_ANNEX_ANDROID_SOURCETREE)/gnupg && git checkout gnupg-1.4.13
+ cd $(GIT_ANNEX_ANDROID_SOURCETREE)/gnupg && git checkout gnupg-1.4.15
cd $(GIT_ANNEX_ANDROID_SOURCETREE)/gnupg && ./autogen.sh
cd $(GIT_ANNEX_ANDROID_SOURCETREE)/gnupg && ./configure --host=arm-linux-androideabi --disable-gnupg-iconv --disable-card-support --disable-agent-support --disable-photo-viewers --disable-keyserver-helpers --disable-nls
cd $(GIT_ANNEX_ANDROID_SOURCETREE)/gnupg; $(MAKE) || true # expected failure in doc build