On 2011-04-07 at 22:12:54, Joey Hess wrote:
> Well, surely there must be a way to reproduce this by running
> *something* at the command line.
>
> fatal:
> '/pub/music/cds/.git-annex/SHA1:305f0714d940ddc9dc1922c5d41b0fef0d48511e.log'
> is outside repository
Alright, I've made some progress on this.
I have just added a file to my laptop's git-annex and I copied it to my
desktop:
git annex copy --to egilsstadir Autechre/Oversteps/01-r_ess.mp3
The rsync worked but the git-add failed with the usual message:
copy Autechre/Oversteps/01-r_ess.mp3 (checking egilsstadir...) (to
egilsstadir...)
SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36
12603602 100% 153.36kB/s 0:01:20 (xfer#1, to-check=0/1)
fatal:
'/pub/music/cds/.git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log'
is outside repository
Command xargs
["-0","git","--git-dir=/pub/music/cds/.git","--work-tree=/pub/music/cds","add","--"]
failed; exit code 123
git-annex: user error (Command xargs
["-0","git","--git-dir=/pub/music/cds/.git","--work-tree=/pub/music/cds","add","--"]
failed; exit code 123)
git-annex-shell: 1 failed
sent 12605248 bytes received 31 bytes 130624.65 bytes/sec
total size is 12603602 speedup is 1.00
rsync error: syntax or usage error (code 1) at main.c(1070) [sender=3.0.8]
rsync failed -- run git annex again to resume file transfer
failed
git-annex: 1 failed
If I log into the box, I can see that it created the file holding the actual
MP3:
/pub/music/cds/.git/annex/objects/SHA1\:895c73987dc2d5d1c8ff52c1a63528e19b136d36/SHA1\:895c73987dc2d5d1c8ff52c1a63528e19b136d36
as well as the log file:
francois@egilsstadir:/pub/music/cds$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log
nothing added to commit but untracked files present (use "git add" to track)
If I switch to that directory, I can add the file without problems:
$ cd /pub/music/cds/
$ git add -- .git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: .git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log
#
On the other hand, if I do it from another directory, say my homedir:
$ cd /home/francois/
$ git --git-dir=/pub/music/cds/.git --work-tree=/pub/music/cds add --
/pub/music/cds/.git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log
fatal:
'/pub/music/cds/.git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log'
is outside repository
Note that using a path relative to the working tree does work:
$ cd /home/francois/
$ git --git-dir=/pub/music/cds/.git --work-tree=/pub/music/cds add --
.git-annex/SHA1:895c73987dc2d5d1c8ff52c1a63528e19b136d36.log
I thought I might be able to replicate this manually by creating a new repo:
mkdir /tmp/foo
cd /tmp/foo/
git init
echo ".git-annex/*.log merge=union" > .gitattributes
mkdir .git-annex
touch .git-annex/notempty
git add .
git commit -a -m initial
adding a file with a similar name:
touch .git-annex/bar.log
and adding it from elsewhere:
cd /home/francois/
git --git-dir=/tmp/foo/.git --work-tree=/tmp/foo add --
/tmp/foo/.git-annex/bar.log
However that did work. I can't think of anything else might be different between
my simple repo and the git-annex one I've got in /pub/music/cds/.
Cheers,
Francois
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]