Skip to content

non-annex superdataset causes saving in subdataset to use git add not git-annex add #7351

Description

@yarikoptic

I will not report amount of time it left me and @afni-rickr confused on why .nii.gz and other monsters get committed to git instead of git-annex, and I was surprised to realize that we have such a bug

this script reproduces the problem
#!/bin/bash
set -ex

cd "$(mktemp -d ${TMPDIR:-/tmp}/dl-XXXXXXX)"

# if you remove --no-annex -- all is good

datalad create --no-annex super
cd super
datalad create  -d . -c text2git subds

dd if=/dev/random of=subds/data.dat  count=1 bs=1024

cp subds/data.dat subds/data2.dat

# lets save in subds first the same content
datalad save -d subds -m 'saved one in subds directly' subds/data.dat

# now save the same content but from the super
datalad save -m "Super with data in subdataset" -r -d . -r subds

# you will see that the one saved while referring to non-annex super
# is committed directly to git because we call  "git add" instead of
# "git annex"
ls -l subds/data*.dat

which at the end would result in

+ ls -l subds/data2.dat subds/data.dat
-rw------- 1 yoh yoh 1024 Mar 23 18:51 subds/data2.dat
lrwxrwxrwx 1 yoh yoh  122 Mar 23 18:51 subds/data.dat -> .git/annex/objects/zj/54/MD5E-s1024--867e9587850130c42bdf311b8e15493d.dat/MD5E-s1024--867e9587850130c42bdf311b8e15493d.dat

showing that data2.dat is committed (while saving from super dataset) from identical in content data.dat.

Metadata

Metadata

Assignees

Labels

severity-importantmajor effect on the usability of a package, without rendering it completely unusable to everyone

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions