Merge branch 'master' of ssh://git-annex.branchable.com

This commit is contained in:
Joey Hess 2012-07-10 12:00:09 -06:00
commit d76bafb2e6
14 changed files with 344 additions and 14 deletions

View file

@ -0,0 +1,60 @@
As you can see, I'm running a pretty recent build of git-annex (ac799c3f363e0008b23e9c174e6fedc35e6fa92a),
$ git annex version
git-annex version: 3.20120630
local repository version: 3
default repository version: 3
supported repository versions: 3
upgrade supported from repository versions: 0 1 2
We have a file here which isn't currently available yet isn't
currently available (the link is shown in red),
$ ls -l plot.py
lrwxrwxrwx 1 ben ben 77 Jul 6 14:01 plot.py -> ../.git/annex/objects/WORM:1301941019:720:plot.py/WORM:1301941019:720:plot.py
$
Yet git-annex should be able to tell us where it is,
$ git-annex whereis plot.py
$
Hmm, well that's strange. What's happening here,
$ git-annex whereis plot.py -d
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","show-ref","git-annex"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","show-ref","--hash","refs/heads/git-annex"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","log","refs/heads/git-annex..d5582e05f41011b571a17003934fe9e40859e4be","--oneline","-n1"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","cat-file","--batch"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","ls-files","--cached","-z","--","plot.py"]
$
Alright, well maybe `git-annex get` will work,
$ git annex get plot.py -d
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","ls-files","--cached","-z","--","plot.py"]
$ ls -l plot.py
lrwxrwxrwx 1 ben ben 77 Jul 6 14:01 plot.py -> ../.git/annex/objects/WORM:1301941019:720:plot.py/WORM:1301941019:720:plot.py
Nope, the link is still shown in red.
Alright, what about `git-annex copy`?
$ git annex copy plot.py --from=goldnerlab --to=here -d
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","show-ref","git-annex"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","show-ref","--hash","refs/heads/git-annex"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","log","refs/heads/git-annex..d5582e05f41011b571a17003934fe9e40859e4be","--oneline","-n1"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","cat-file","--batch"]
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","ls-files","--cached","-z","--","plot.py"]
$ ls -l plot.py
lrwxrwxrwx 1 ben ben 77 Jul 6 14:01 plot.py -> ../.git/annex/objects/WORM:1301941019:720:plot.py/WORM:1301941019:720:plot.py
Still red.
Alright, what if I just try to get a non-existent file?
$ git annex get adsflkah -d
git ["--git-dir=/home/ben/lori/analysis/data/.git","--work-tree=/home/ben/lori/analysis/data","ls-files","--cached","-z","--","adsflkah"]
$
Alright, it didn't fail with an error, that's very strange. What is going on here?

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0"
nickname="Ben"
subject="comment 10"
date="2012-07-10T14:17:42Z"
content="""
Hmm, the commands above seem to have worked on both machines (both running 3.20120630). I guess I should probably just try rebuilding my data/ repository from scratch, eh?
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"
nickname="Justin"
subject="comment 11"
date="2012-07-10T14:26:06Z"
content="""
I suppose.. joey can probably help you investigate exactly what went wrong. You might want to save an empty clone of the git repository for later..
The easiest way to fix the data is probably to run a `git annex uninit` in the old repository which will put the files back how they were before and then `git-annex import` them into a new repository.
"""]]

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="http://joeyh.name/"
subject="comment 1"
date="2012-07-09T23:16:32Z"
content="""
`git ls-files` is not listing your file. Perhaps your file is not checked into git?
"""]]

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0"
nickname="Ben"
subject="comment 2"
date="2012-07-09T23:31:08Z"
content="""
Not really sure what to say about that other than,
$ git --git-dir=/home/ben/lori/analysis/data/.git --work-tree=/home/ben/lori/analysis/data ls-files --cached -- plot.py
plot.py
$
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"
nickname="Justin"
subject="Remotes? "
date="2012-07-10T00:23:11Z"
content="""
What does
git-annex status
Show?
Do you have any remotes configured? It looks like you don't somehow.
"""]]

View file

@ -0,0 +1,46 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0"
nickname="Ben"
subject="comment 4"
date="2012-07-10T01:46:23Z"
content="""
$ git annex status
supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
supported remote types: git S3 bup directory rsync web hook
trusted repositories: 0
semitrusted repositories: 3
00000000-0000-0000-0000-000000000001 -- web
02e4ea72-a77c-11e1-bbd7-0749b04e4b59 -- goldnerlab (Data for Goldner)
3c1fd026-c794-11e1-8ebb-dbe8684e8a73 -- here
untrusted repositories: 0
dead repositories: 0
transfers in progress: none
available local disk space: 16 gigabytes (+1 megabyte reserved)
local annex keys: 0
local annex size: 0 bytes
known annex keys: 0
known annex size: 0 bytes
bloom filter size: 16 mebibytes (0% full)
backend usage:
$ git remote
goldnerlab
$ git remote show goldnerlab
* remote goldnerlab
Fetch URL: goldnerlab:data
Push URL: goldnerlab:data
HEAD branch (remote HEAD is ambiguous, may be one of the following):
master
synced/master
Remote branches:
git-annex tracked
master tracked
synced/master tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
git-annex pushes to git-annex (up to date)
master pushes to master (up to date)
synced/master pushes to synced/master (up to date)
"""]]

View file

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"
nickname="Justin"
subject="comment 5"
date="2012-07-10T03:03:27Z"
content="""
Well that's odd. You have remotes but no annexed files..
Can you post the commands you used to arrive at this situation? I'm not sure how you would have done that.. Maybe you just need a
git-annex sync
to get things going?
I think somehow you cloned the git repo but not the annex stuff.
"""]]

View file

@ -0,0 +1,44 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0"
nickname="Ben"
subject="comment 6"
date="2012-07-10T03:26:35Z"
content="""
I can easily reproduce the issue as follows,
$ git clone goldnerlab:data
Cloning into 'data'...
remote: Counting objects: 61902, done.
remote: Compressing objects: 100% (61354/61354), done.
remote: Total 61902 (delta 356), reused 61902 (delta 356)
Receiving objects: 100% (61902/61902), 5.50 MiB | 894 KiB/s, done.
Resolving deltas: 100% (356/356), done.
$ cd data
$ git annex sync
(merging origin/git-annex into git-annex...)
commit
(Recording state in git...)
# On branch master
nothing to commit (working directory clean)
ok
pull origin
ok
push origin
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 726 bytes, done.
Total 6 (delta 1), reused 1 (delta 0)
Auto packing the repository for optimum performance.
warning: There are too many unreachable loose objects; run 'git prune' to remove them.
To goldnerlab:data
d5582e0..aaddf3c git-annex -> git-annex
ok
Everything looks good so far. I verify that alex/plot.py doesn't exist. Now let's try getting it,
$ git annex get alex/plot.py -d
git [\"--git-dir=/home/ben/data/.git\",\"--work-tree=/home/ben/data\",\"ls-files\",\"--cached\",\"-z\",\"--\",\"alex/plot.py\"]
Uh oh. ls confirms that get was unsucessful.
"""]]

View file

@ -0,0 +1,67 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"
nickname="Justin"
subject="comment 7"
date="2012-07-10T12:37:43Z"
content="""
But how was the goldnerlab:data repository created? That looks to be where the problem is..
I have a slightly older version, but in general it should work the same..
you can see right away, when I do git annex status it shows \"known annex keys: 1\".
if you do git annex status on goldnerlab, does it say you have any annex keys?
$ git-annex version
git-annex version: 3.20120614~bpo60+1
$ mkdir a
$ cd a
$ git init
Initialized empty Git repository in /tmp/a/.git/
$ git annex init a
init a ok
(Recording state in git...)
$ echo hi > file
$ git annex add file
add file (checksum...) ok
(Recording state in git...)
$ git commit -m added
fatal: No HEAD commit to compare with (yet)
fatal: No HEAD commit to compare with (yet)
[master (root-commit) cfa9049] added
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 file
$ cd ..
$ git clone a a_clone
Cloning into a_clone...
done.
$ cd a_clone
$ git annex status
(merging origin/git-annex into git-annex...)
supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
supported remote types: git bup directory rsync web hook
trusted repositories: 0
semitrusted repositories: 3
00000000-0000-0000-0000-000000000001 -- web
445d616e-ca8b-11e1-b170-ff8b03c54243 -- origin (a)
5d3db51c-ca8b-11e1-bbc3-039dd06ab47b -- here
untrusted repositories: 0
dead repositories: 0
available local disk space: 63 megabytes (+1 megabyte reserved)
local annex keys: 0
local annex size: 0 bytes
known annex keys: 1
known annex size: 3 bytes
backend usage:
SHA256: 1
(Recording state in git...)
$ ls
file
$ cat file
cat: file: No such file or directory
$ git annex get file
get file (from origin...) ok
(Recording state in git...)
$ cat file
hi
"""]]

View file

@ -0,0 +1,30 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0"
nickname="Ben"
subject="comment 8"
date="2012-07-10T13:02:37Z"
content="""
On goldnerlab,
$ git annex status
supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
supported remote types: git S3 bup directory rsync web hook
trusted repositories: 0
semitrusted repositories: 4
00000000-0000-0000-0000-000000000001 -- web
02e4ea72-a77c-11e1-bbd7-0749b04e4b59 -- here (Data for Goldner)
351f3ddc-ca3e-11e1-a3fc-6338ef4724a7
3c1fd026-c794-11e1-8ebb-dbe8684e8a73
untrusted repositories: 0
dead repositories: 0
transfers in progress: none
available local disk space: 2 terabytes (+1 megabyte reserved)
local annex keys: 19101
local annex size: 41 gigabytes
known annex keys: 19122
known annex size: 41 gigabytes
bloom filter size: 16 mebibytes (3.8% full)
backend usage:
WORM: 38223
"""]]

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"
nickname="Justin"
subject="comment 9"
date="2012-07-10T14:08:10Z"
content="""
Can you run the series of commands I had above on your two machines? I figure there are two possibilities:
1. There is something wrong with the git-annex versions you are using.
2. There is something wrong with your repository. (\"warning: There are too many unreachable loose objects\"?)
so if you can make a temp repository on goldnerlab, then clone it on the other machine and see where it fails, that would be helpful.
after cloning git-annex status should hopefully say that you have 1 known key, not 0.
Obviously this won't fix the problem, but it will at least narrow it down.
"""]]

View file

@ -1,14 +0,0 @@
We need a way to calculate space taken by certain files.
Use cases: I want to drop some files from my small disk. I need to figure out things that take most space, and drop them.
Usage examples:
git annex du -hs *.mp3
git annex du -sBm --in=here *.ogg
Would be nice if it was compatible with standard unix `df`.
> `du -L` works.
>
> See also: [[forum/Wishlist:_getting_the_disk_used_by_a_subtree_of_files]]

View file

@ -0,0 +1,12 @@
Is there a way to pull from an encrypted remote?
Use case:
1. Have annex in an encrypted public rsync remote
2. Have USB stick with PGP keys (but not the annex repository)
3. Get to a new computer
4. Set up a new annex using the PGP keys I have.
1-3 work fine :) However, 4'th is the issue:
How would I do `git pull <remote>` for an encrypted remote? Is it possible?