[[!comment format=mdwn
 username="joey"
 subject="""comment 1"""
 date="2017-03-06T16:08:55Z"
 content="""
Currently the best way to debug this kind of thing is to use git annex find
with options to find files that match the preferred content expression.
Once you have gotten git annex find to list the same files that are being
transferred, you can then modify/cut down the options to narrow down
what's going on.

The preferred content expression for a client repository is:

	(include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1

Translating this to command-line options:

	git annex find '-(' '--include=*' --and '-(' '-(' '--exclude=*/archive/*' --and '--exclude=archive/*' '-)' --or '-(' --not '-(' --copies=archive:1 --or --copies=smallarchive:1 '-)' '-)' '-)' '-)' --or --approxlackingcopies=1

You'll want to run that when the files are not located in the archive/
directory, and run it from the top of the repository.

Assuming that lists the files that are getting transferred, then you can
split it into two commands, each of which checks one of the two parts
of the expression that are ORed together:

	git annex find '-(' '--include=*' --and '-(' '-(' '--exclude=*/archive/*' --and '--exclude=archive/*' '-)' --or '-(' --not '-(' --copies=archive:1 --or --copies=smallarchive:1 '-)' '-)' '-)' '-)'
	git annex find --approxlackingcopies=1

Assuming the first of those lists the files and not the second, you can
then split it further. The include=* part must be matching then, so
checking two parts ORed within the second part:
	
	git annex find '-(' '--exclude=*/archive/*' --and '--exclude=archive/*' '-)'
	git annex find '-(' --not '-(' --copies=archive:1 --or --copies=smallarchive:1 '-)' '-)'

Probably one of those will list the files and the other won't.
Which will point fairly strongly at what's happening.
"""]]
