When using fsdiff -C, files are always uploaded, regardless of the change. I'd like to see an option for fsdiff that would make it work more like fsdiff -A; files that need to be uploaded would be prefaced with a + and files that have merely changed attributes (say, modtime) would not. For instance, if we have this transcript:
d ./foo 0755 183575 20
f ./foo/bar 0644 183575 20 1255976903 0 -
f ./foo/baz 0644 183575 20 1255976906 0 -
If I change bar while only touching baz, this is the current output (1.13):
aristotle:~ slauncha$ echo "test" >> ./foo/bar; touch ./foo/baz; fsdiff -C -I ./foo
f ./foo/bar 0644 183575 20 1255977020 5 -
f ./foo/baz 0644 183575 20 1255977020 0 -
Ideally, the output would look like this:
aristotle:~ slauncha$ echo "test" >> ./foo/bar; touch ./foo/baz; fsdiff -C -I ./foo
+ f ./foo/bar 0644 183575 20 1255977020 5 -
f ./foo/baz 0644 183575 20 1255977020 0 -
Then, lcreate would only upload ./foo/bar, not ./foo/baz.
On the server side, lmerge would simply link the old version of the file with the new transcript. This would save a ton of hard disk space in the case where a version update for a program touches every file in its directory, not just the ones that have changed.