Fail to add attachment.

This commit is contained in:
https://www.google.com/accounts/o8/id?id=AItOawlu7K3h7Ry1uDAU_ERYGuqt0LoGNJqGuRo 2012-08-18 00:35:46 +00:00 committed by admin
parent 45fd6e294a
commit fb8f75c2d7

View file

@ -73,7 +73,153 @@ annexes using `git annex copy`.
The above example is a simplification of a real problem I am
experiencing. In my real scenario, the file is not empty. See the
attachment for some variations, including with non-empty files.
attachment for some variations, including with non-empty
files. UPDATE: I'm not allowed to add attachments. See below.
May be related to these (long-ago fixed) bugs:
http://git-annex.branchable.com/todo/support-non-utf8-locales/
"Attachment": Here are my notes, including more examples:
Programs I'm using:
$ echo $LANG
en_US.UTF-8
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric
$ uname -a
Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux
$ bash --version
GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.2
$ git annex version
git-annex version: 3.20120807
local repository version: 3
default repository version: 3
supported repository versions: 3
upgrade supported from repository versions: 0 1 2
Simplest way to see problem: one empty file with weird character
(accented e: $'\351') in name:
$ git init a.git
Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/
$ cd a.git
$ git annex init a
init a ok
(Recording state in git...)
$ touch Ren$'\351'
$ git annex add Ren$'\351'
add René (checksum...) ok
(Recording state in git...)
$ git ci -m "Added Rene'."
[master (root-commit) a61b796] Added Rene'.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 "Ren\351"
$ cd ..
$ git clone -o a a.git b.git
Cloning into b.git...
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 13 (delta 1), reused 0 (delta 0)
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (1/1), done.
$ cd b.git
$ git annex copy --from=a --fast -v
(merging a/git-annex into git-annex...)
copy René
git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)
failed
(Recording state in git...)
git-annex: copy: 1 failed
Problem disappears with two empty files:
$ cd ..
$ git init a2.git
Initialized empty Git repository in /var/tmp/git-annex-bug/a2.git/.git/
$ cd a2.git
$ git annex init a2
init a2 ok
(Recording state in git...)
$ touch Ren$'\351'
$ git annex add Ren$'\351'
add René (checksum...) ok
(Recording state in git...)
$ git ci -m "Add Ren$'\351'."
[master (root-commit) 62ac1c8] Add Ren$'\351'.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 "Ren\351"
$ touch Rene
$ git annex add Rene
add Rene (checksum...) ok
(Recording state in git...)
$ git ci -m "Add Rene."
[master c455523] Add Rene.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 Rene
$ cd ..
$ git clone -o a2 a2.git b2.git
Cloning into b2.git...
done.
$ cd b2.git
$ git annex copy --from=a2 --fast -v
(merging a2/git-annex into git-annex...)
copy Rene (from a2...) ok
(Recording state in git...)
Problem returns with two non-empty files:
$ cd ..
$ git init a4.git
Initialized empty Git repository in /var/tmp/git-annex-bug/a4.git/.git/
$ cd a4.git
$ git annex init a4
init a4 ok
(Recording state in git...)
$ touch Ren$'\351'
$ rm Ren$'\351'
$ ls
$ echo "some content" > Ren$'\351'
$ git annex add Ren$'\351'
add René (checksum...) ok
(Recording state in git...)
$ git ci -m "Add Ren$'\351'."
[master (root-commit) f090d90] Add Ren$'\351'.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 "Ren\351"
$ echo "some other content" > Rene
$ git annex add Rene
add Rene (checksum...) ok
(Recording state in git...)
$ git ci -m "Add Rene."
[master 97c20cd] Add Rene.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 120000 Rene
$ cd ..
$ git clone -o a4 a4.git b4.git
Cloning into b4.git...
done.
$ cd b4.git
$ git annex copy --from=a4 --fast -v
(merging a4/git-annex into git-annex...)
copy Rene (from a4...) ok
copy René
git-annex: /var/tmp/git-annex-bug/b4.git/.git/annex/transfer/download/a5fcd0d4-e8c8-11e1-bb41-43ce1cb9a9f1/SHA256-s13--1c87b6727f523662df714f06a94ea27fa4d9050c38f4f7712bd4663ffbfdfa01: commitBuffer: invalid argument (invalid character)
failed
(Recording state in git...)
git-annex: copy: 1 failed