When a SV_FILE_DELETE arrives, and the directory is *not* empty, we move it to conflict.
We will do the following: in this case, we'll check all the nodes of the tree that starts from that dir, and see if there's any file in LOCAL (a change that still not in the server). If we found any, we signal a conflict like now, if not, we remove everything.
During the time that takes us to review all the nodes (that is very small, but not zero), the user can execute any action in the filesystem... if that's a FS_FILE/DIR_CREATE, FS_FILE_CLOSE_WRITE, or FS_FILE/DIR_MOVE, we consider the trees as "dirty" and go to conflict.
When a SV_FILE_DELETE arrives, and the directory is *not* empty, we move it to conflict.
We will do the following: in this case, we'll check all the nodes of the tree that starts from that dir, and see if there's any file in LOCAL (a change that still not in the server). If we found any, we signal a conflict like now, if not, we remove everything.
During the time that takes us to review all the nodes (that is very small, but not zero), the user can execute any action in the filesystem... if that's a FS_FILE/DIR_CREATE, FS_FILE_ CLOSE_WRITE, or FS_FILE/DIR_MOVE, we consider the trees as "dirty" and go to conflict.