Please describe the problem.
If there are staged changes in two files (one in git, one in annex) and I want to commit them by explicitly giving git-commit both paths (in order to exclude other changes that are possibly staged), the not annexed file stays staged, while committing everything staged by not giving any path to git-commit works just fine.
What steps will reproduce the problem?
mkdir testv6
cd testv6
git init
git annex init --version=6
echo some > file_in_git
git -c annex.largefiles=nothing annex add file_in_git
echo more > file_in_annex
git annex add file_in_annex
git commit -m "files added" file_in_git file_in_annex
git status
What version of git-annex are you using? On what operating system?
% git annex version
git-annex version: 6.20170307+gitg24ade8a25-1~ndall+1
build flags: Assistant Webapp Pairing Testsuite S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify ConcurrentOutput TorrentParser MagicMime Feeds Quvi
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
local repository version: 6
supported repository versions: 3 5 6
upgrade supported from repository versions: 0 1 2 3 4 5
operating system: linux x86_64
Please provide any additional information below.
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
# End of transcript or log.
Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
done; clean filter defaults to preserving git/annex state of file. --Joey
The root problem is, you have set annex.largefiles=nothing temporarily when adding the file. But, when git commit re-smudges the file, that is not set, so git-annex generates a v6 pointer, which is what gets committed.
I don't think you will have these problems if use use .gitattributes to configure annex.largefiles.
(There is something going on that I don't quite understand with why git status then thinks the file has changed. git diff --cached shows a diff between the pointer that got committed and the actual file contents; I would have expected that git would run the smudge/clean filter then and not show that diff.)