Package: git-annex
Version: 3.20121211
Severity: normal

As described in #696313 I am trying to use a annex on a VFAT USB drive.

A small number of files in the annex cannot be copied to VFAT because the path
contains a "\" (which is invalid in a FAT filesystem).

$ git annex copy --to=usbdrive 'Ministry - Rio Grande Blood/03-Gangreen (w\ 
Sgt. Major).ogg'
copy Ministry - Rio Grande Blood/03-Gangreen (w\ Sgt. Major).ogg (to 
usbdrive...) 
SHA256E-s4796874--\a91e4e04f60b9afe41224e32e87d07de6a09c92f85891d2cccaadbfc33b8bf31.ogg
       32768   0%    0.00kB/s    0:00:00  rsync: open 
"/media/IanCampbell/music.annex/annex/tmp/SHA256E-s4796874--\a91e4e04f60b9afe41224e32e87d07de6a09c92f85891d2cccaadbfc33b8bf31.ogg"
 failed: Invalid argument (22)
     4796874 100%  100.96MB/s    0:00:00 (xfer#1, to-check=0/1)
rsync error: some files/attrs were not transferred (see previous errors) (code 
23) at main.c(1070) [sender=3.0.9]

sent 4797609 bytes  received 31 bytes  9595280.00 bytes/sec
total size is 4796874  speedup is 1.00
failed
git-annex: copy: 1 failed

I expect this is because sha256sum quotes the checksum if the filename contains
certain characters:

$ sha256sum 'Ministry - Rio Grande Blood/03-Gangreen (w\ Sgt. Major).ogg'
\a91e4e04f60b9afe41224e32e87d07de6a09c92f85891d2cccaadbfc33b8bf31  Ministry - 
Rio Grande Blood/03-Gangreen (w\\ Sgt. Major).ogg

This isn't mentioned in the sha256sum info page but it is mentioned in the
md5sum page, both utilities are compiled from the same md5sum.c source file in
coreutils. The info page says:

   For each FILE, `md5sum' outputs the MD5 checksum, a flag indicating
a binary or text input file, and the file name.  If FILE contains a
backslash or newline, the line is started with a backslash, and each
problematic character in the file name is escaped with a backslash,
making the output unambiguous even in the presence of arbitrary file
names.  If FILE is omitted or specified as `-', standard input is read.

A "git annex copy --to usbdrive --auto" fails for 102 files, I can find 100
with a \ in the filename.

The other two have files ending in '.?.ogg' and '.".ogg' which g-a appears to
treat as part of the extension for SHA256E purposes:

$ git annex copy --to=usbdrive 'Hermano - Dare I Say/05-Is This O.K.?.ogg'
copy Hermano - Dare I Say/05-Is This O.K.?.ogg (to usbdrive...) 
SHA256E-s4220373--354e439a9212268e21b36843ed48f835183472636932eef042739e4755476d59.?.ogg
       32768   0%    0.00kB/s    0:00:00  rsync: open 
"/media/IanCampbell/music.annex/annex/tmp/SHA256E-s4220373--354e439a9212268e21b36843ed48f835183472636932eef042739e4755476d59.?.ogg"
 failed: Invalid argument (22)
     4220373 100%  153.60MB/s    0:00:00 (xfer#1, to-check=0/1)
rsync error: some files/attrs were not transferred (see previous errors) (code 
23) at main.c(1070) [sender=3.0.9]

sent 4221037 bytes  received 31 bytes  2814045.33 bytes/sec
total size is 4220373  speedup is 1.00
failed
git-annex: copy: 1 failed
$ git annex copy --to=usbdrive 'Queens Of The Stone Age - Lullabies To 
Paralyze/13-"You Got A Killer Scene There, Man...".ogg'
copy Queens Of The Stone Age - Lullabies To Paralyze/13-"You Got A Killer Scene 
There, Man...".ogg (to usbdrive...) 
SHA256E-s4162784--d78e3b998894e8408a299a649a5718fea097a1969da012499a8df6219686ecff.".ogg
       32768   0%    0.00kB/s    0:00:00  rsync: open 
"/media/IanCampbell/music.annex/annex/tmp/SHA256E-s4162784--d78e3b998894e8408a299a649a5718fea097a1969da012499a8df6219686ecff.".ogg"
 failed: Invalid argument (22)
     4162784 100%  115.84MB/s    0:00:00 (xfer#1, to-check=0/1)
rsync error: some files/attrs were not transferred (see previous errors) (code 
23) at main.c(1070) [sender=3.0.9]

sent 4163444 bytes  received 31 bytes  8326950.00 bytes/sec
total size is 4162784  speedup is 1.00
failed
git-annex: copy: 1 failed

Does g-a treat suffixes from the second last "." on purpose? I should probably
be using the SHA256 (no E) backend anyway.

Before I used git-annex I used a home grown script to convert my .flac files to
.ogg on my FAT device. That script ended up substituting everything in
":/\\?*\"\|" for something safe.

I munged my filenames to avoid all of these.

Ian.

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'stable-updates'), (500, 'unstable'), 
(500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages git-annex depends on:
ii  curl            7.26.0-1
ii  git             1:1.7.10.4-1+wheezy1
ii  libc6           2.13-37
ii  libffi5         3.0.10-3
ii  libgmp10        2:5.0.5+dfsg-2
ii  libgnutls26     2.12.20-2
ii  libgsasl7       1.8.0-2
ii  libidn11        1.25-2
ii  libpcre3        1:8.30-5
ii  libxml2         2.8.0+dfsg1-7
ii  libyaml-0-2     0.1.4-2
ii  openssh-client  1:6.0p1-3
ii  rsync           3.0.9-4
ii  uuid            1.6.2-1.3
ii  wget            1.13.4-3
ii  zlib1g          1:1.2.7.dfsg-13

Versions of packages git-annex recommends:
ii  bind9-host  1:9.8.1.dfsg.P1-4.4
ii  gnupg       1.4.12-6
ii  lsof        4.86+dfsg-1

Versions of packages git-annex suggests:
pn  bup          <none>
pn  graphviz     <none>
ii  libnss-mdns  0.10-3.2

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to