Hello. (Tried with SVN r1297653)
Please, consider the following scenario: We have a clean working copy at the latest revision (say, r1) with one file. 1. Set lock on a file file locally wc$ svn lock file ...... 2. Unset lock on the file remotely wc$ svn unlock file:///url/for/file ...... As result the lock is broken wc$ svn status -u file B 1 file Status against revision: 1 3. Let's update to the latest revision (r1) now. wc$ svn update Updating '.': At revision 1. wc$ svn status -u file Status against revision: 1 So the lock is removed. Actually "notify" function of SVN was called only twice for update start and for update end (both for working copy path, none for path to the file). Here's why it happens. update_editor.c , function "close_file". Notification condition looks like if (eb->notify_func && !fb->already_notified && fb->edited) { ... } fb->edited is false here because the update didn't change contents or properties, so the notification is not generated even though "lock_state" is not unchanged. For SVN 1.6.9 the same condition looks like if (((content_state != svn_wc_notify_state_unchanged) || (prop_state != svn_wc_notify_state_unchanged) || (lock_state != svn_wc_notify_lock_state_unchanged) || (fb->tree_conflicted)) && eb->notify_func /* Supress notifications for files within locally deleted trees, we will have already raised a tree conflict notification. ### When is FB->PATH absolute? Will we ever use the wrong key? */ && !in_deleted_tree(eb, fb->path, TRUE, pool)) that seems to be more reasonable with respect to "lock_state" processing. So I propose to add (lock_state != svn_wc_notify_lock_state_unchanged) condition somewhere to SVN 1.7 (maybe not only to close_file but to close_directory too).