Ответ VonC убедил меня, что doc-open не время для обновления свойства документа. Например, если файл отправлен кому-то по электронной почте или скопирован с компакт-диска, или «экспортирован», он не может обновить свою версию SVN при открытии. Было бы трудно гарантировать, что файл никогда не будет содержать ошибочный устаревший номер ревизии. Таким образом, чтобы сделать это «правильно», номер версии файла должен быть обновлен при проверке / обновлении SVN.
Я полагаю, что для ключевых слов SVN в текстовых файлах клиент выполняет "манипулирование" файлом, обновляя его при извлечении и возвращаясь к "канонической" форме перед фиксацией. Так что для Word было бы здорово использовать хуки на стороне клиента, чтобы сделать то же самое. TortoiseSVN имеет клиентские хуки, , но я не думаю, что другие клиенты SVN имеют. На моей работе мы почти всегда используем TortoiseSVN, чтобы это работало хорошо.
Итак, я хотел бы написать две клиентские ловушки TortoiseSVN:
1) Хук после обновления для вставки свойства документа «SvnRevision», содержащего соответствующую SVN-версию коммита файла.
2) Хук предварительной фиксации для удаления свойства документа «SvnRevision». Это делает файл, хранящийся в репозитории, «чистым» в том случае, если его проверяет не-TortoiseSVN-клиент. (Это может также предотвратить конфликты слияния?)
Обновление: Arrr Я только что понял другую проблему: если я сделаю выше, то SVN будет думать, что файл изменился. Хм, это кажется трудным. Чтобы эта функция работала правильно, она действительно нуждается в достаточно тесной интеграции с клиентом.