Merge remote-tracking branch 'branchable/master'

This commit is contained in:
Joey Hess 2011-04-02 21:36:51 -04:00
commit c7c0a229c8
9 changed files with 118 additions and 2 deletions

View file

@ -0,0 +1,5 @@
When copying data to my remote, I regularly see speeds in excess of 100 MB/s on my home DSL line.
2073939 100% 176.96MB/s 0:00:00 (xfer#1, to-check=0/1)
This is definitely not correct.

View file

@ -0,0 +1,10 @@
My local git index got corrupted and I needed to clone and annex get all data from my main repo.
Some files were never copied anywhere so I am stuck with symlinks to nowhere.
I tried to copy over the symlink with a copy of the actual file, which did not work. Trying to unlock, copying over the symlink, and relock did not work, either.
Then, I copied the annex object to the correct place in .git/annex/objects/..., set all modes, re-ran fsck and the file re-appeared.
Long story short, I think there should be a `git annex reinject $file` or similar which will take a file, either one replacing the symlink or with an arbitrary path, and put it into the correct place in the object store. Called normally, it should reject all reinjects where the checksum does not match. With --force, this should be overridden. For reasons of safety, WORM should always require --force.

View file

@ -0,0 +1,45 @@
I ran git-annex (git version) on three machines with ghc-7.0.2 for about a month, but recently (no more than a week ago) I've started getting this error for every file on "git annex get":
git-annex-shell: internal error: evacuate(static): strange closure type 30799
(GHC version 7.0.2 for i386_unknown_linux)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
There were no changes to ghc or it's modules, so I assume something has changed in git-annex itself.
strace shows "git annnex get" (on "host1") performing following exec's:
[pid 9481] execve("/usr/bin/rsync", ["rsync", "-p", "--progress", "--inplace", "-e", "'ssh' 'user@host2' 'git-annex-shell ''sendkey'' ''/remote/path'' ''SHA1-s6654080--abd8edec20648ade69351d68ae1c64c8074a6f0b'' ''--'''", ":", "/local/path/.git/annex/tmp/SHA1-s6654080--abd8edec20648ade69351d68ae1c64c8074a6f0b"], [/* 41 vars */]) = 0
[pid 9482] execve("/usr/bin/ssh", ["ssh", "user@host2", "git-annex-shell 'sendkey' '/remote/path' 'SHA1-s6654080--abd8edec20648ade69351d68ae1c64c8074a6f0b' '--'", "", "rsync", "--server", "--sender", "-vpe.Lsf", "--inplace", ".", ""], [/* 41 vars */] <unfinished ...>
I've tried running the second command directly from the shell and got the same error message from a remote GHC.
Adding strace before git-annex-shell to remote command yielded something like this in the end:
stat64("/local/path.git", 0xb727d610) = -1 ENOENT (No such file or directory)
stat64("/local/path.git", 0xb727d6b0) = -1 ENOENT (No such file or directory)
waitpid(7525, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 7525
chdir("/home/user") = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
write(2, "git-annex-shell: internal error: ", 33git-annex-shell: internal error: ) = 33
...
Note that "/local/path" here is not what's specified in rsync arguments at all, and git repo with files-to-be-fetched on "host2" is in "/remote/path", but "/local/path" is present in git remotes there since I mount it via nfs from "host1" (yes, to the same path as it's there):
[remote "nfs"]
url = /local/path
fetch = +refs/heads/*:refs/remotes/nfs/*
push = refs/heads/*:refs/remotes/host2/*
annex-uuid = 0a4e14ba-5236-11e0-9004-7f24452c0f05
If I comment that remote out from "/remote/path/.git/config", "git annex get" works fine.
The only git-command git-annex-shell seem to exec there (on "host2") is "git config --list", so it's shouldn't be git trying to do something with it's remotes - it's git-annex itself, right?
Anyways, looks like a simple path-joining error, if "/local/path.git" should be "/local/path/.git" there.
I'm actually quite confused about what it's trying to do with that path.
Connect from "host1" to "host2" just to connect back to "host1"?
What for, when it should just fetch files from "host2"?
Not sure if it's a bug or I'm doing something wrong, but if git-annex really need to check something in git remotes' paths, error message (the one at the top of this post) can be a more descriptive, I guess.
Something like "error: failed to do something with git remote X on a remote host" would've been a lot less confusing than that GHC thing.
Thanks!

View file

@ -0,0 +1,14 @@
git's index broke and I was unable to restore it. While this is not git-annex' problem, it should still be possible to get my data in an un-annexed state.
% git status
fatal: index file smaller than expected
% git annex unannex foo
fatal: index file smaller than expected
% git annex uninit
fatal: index file smaller than expected
uninit
pre-commit hook (/path/to/git-annex/.git/hooks/pre-commit) contents modified; not deleting. Edit it to remove call to git annex.
ok
%
Ttbomk, the softlinks and objects are enough to un-annex the files; side-stepping git's index if necessary.

View file

@ -0,0 +1,11 @@
I upgraded another one of my git-annex clones. The upgrade worked fine (i.e.
according to the manual) on two other clones before, but this time something is
different.
After 'git pull' and 'git annex upgrade', which took a long time and seemed to
have succeeded, there are no staged changes in git. Instead there are lots of
untracked directories in .git-annex. Aside from that, nothing seems to be
wrong.
At the time I had git-annex version 0.20110329 and I've been using the SHA1
backend since version 1.

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U"
nickname="Richard"
subject="comment 2"
date="2011-04-02T21:34:24Z"
content="""
I'll give it a try as soon as I get rid of this:
% git annex fsck
fatal: index file smaller than expected
fatal: index file smaller than expected
% git status
fatal: index file smaller than expected
%
And no, I am not sure where that is coming from all of a sudden... (it might have to do with a hard lockup of the whole system due to a faulty hdd I tested, but I didn't do anything to it for ages before that lock-up. So meh. Also, this is prolly off topic in here)
Richard
"""]]

View file

@ -1 +1,3 @@
As git annex keeps logs about file transfers anyway, it should be relatively easy to add traffic accounting to a repo. That would allow me to monitor how much traffic a given repo creates. As I might end up hosting git-annex repos for a few personal friends, I need/want a way to track the heavy hitters. -- RichiH
As git annex keeps logs about file transfers anyway, it should be relatively easy to add traffic accounting to a repo. That would allow me to monitor how much traffic a given repo generates. As I might end up hosting git-annex repos for a few personal friends, I need/want a way to track the heavy hitters. -- RichiH
PS: If you ever plan to host git-annex similar branchable, this would probably be of interest to you, as well :)

View file

@ -4,7 +4,7 @@ Alice is always on the move, often with her trusty netbook and a small
handheld terabyte USB drive, or a smaller USB keydrive. She has a server
out there on the net. She stores data in the Cloud. All these things can
have different files on them, but Alice no longer has to deal with the
tedious process of keeping them manually in sync, or rembering where
tedious process of keeping them manually in sync, or remembering where
she put a file.
When she has 1 bar on her cell, Alice queues up interesting files on her

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="http://dieter-be.myopenid.com/"
nickname="dieter"
subject="comment 3"
date="2011-04-02T20:24:33Z"
content="""
* why the `git remote add laptop ~/annex` ? this remote already exists under the name origin.
* doesn't the last command need to be `git remote add usbdrive /media/usb/annex`? because the actual repo would be in /media/usb/annex, not /media/usb?
"""]]