I'm glad it's working for you! :)
File changes are determined by comparing the last modified time of the
resource store folder against the last modified time of the resource
itself. Whenever the resource changes, deltas are generated and the
last modified time of the resource folder is updated.
The ResourceManager interface is responsible for performing these
checks. The FileResourceManager provides a file-system based
implementation of this interface, and the code for performing the
check is located on line 212:
http://code.google.com/p/diffable/source/browse/trunk/j2ee-diffable/src/main/java/com/google/diffable/data/FileResourceManager.java#212
If you change the whole content of a file, there are two options:
1.) Change the name of the resource. The FileResourceManager will see
it as a new resource and it will be managed/versioned separately.
This is probably the easiest path.
2.) The second option is to delete the corresponding resource store
folder for the given resource. This is a little more difficult as
there isn't a straightforward way to identify which folder corresponds
to which managed resource, since the folder names are hashes of the
resource path. But if you look at the contents of the files within a
resource store folder, you should be able to identify which resource
is being stored in which folder. Once you know for sure, if you
delete the folder, then the monitor will recreate it with the current
version of the file being the starting point for creating deltas.
I have created an issue around this though so that a more sane system
can be devised:
http://code.google.com/p/diffable/issues/detail?id=15