Merge branch 'master' into incrementalfsck
This commit is contained in:
commit
a1040a38c5
18 changed files with 505 additions and 9 deletions
|
@ -18,7 +18,6 @@ import qualified Remote
|
|||
import Types.Remote (RemoteConfig)
|
||||
import Types.StandardGroups
|
||||
import Logs.Remote
|
||||
import Assistant.Gpg
|
||||
import Assistant.WebApp.Utility
|
||||
import Git.Remote
|
||||
|
||||
|
@ -26,6 +25,7 @@ import qualified Data.Map as M
|
|||
#endif
|
||||
import qualified Data.Text as T
|
||||
import Network.URI
|
||||
import Assistant.Gpg
|
||||
|
||||
webDAVConfigurator :: Widget -> Handler Html
|
||||
webDAVConfigurator = page "Add a WebDAV repository" (Just Configuration)
|
||||
|
|
|
@ -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 ++ ")"
|
||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -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
|
||||
|
||||
|
|
BIN
doc/assistant/fsckconfig.png
Normal file
BIN
doc/assistant/fsckconfig.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
65
doc/bugs/addurl_fails_on_the_internet_archive.mdwn
Normal file
65
doc/bugs/addurl_fails_on_the_internet_archive.mdwn
Normal file
|
@ -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]]
|
|
@ -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.
|
||||
"""]]
|
|
@ -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...
|
||||
"""]]
|
|
@ -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
|
||||
|
||||
"""]]
|
|
@ -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.
|
||||
"""]]
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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..
|
||||
"""]]
|
20
doc/devblog/day_32__fsck_config_UI.mdwn
Normal file
20
doc/devblog/day_32__fsck_config_UI.mdwn
Normal file
|
@ -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.
|
|
@ -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
|
||||
}
|
||||
|
||||
"""]]
|
|
@ -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.
|
||||
"""]]
|
|
@ -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.
|
||||
"""]]
|
|
@ -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!
|
||||
"""]]
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue