Контроль версий
Версии документов WebDAV
Экран WebDAV document versions позволяет управлять версиями документа, если для него включено версионирование.
Есть два основных способа открыть экран WebDAV document versions:
-
С помощью компонента WebdavDocumentUploadField, нажав на ссылку, отображающую номер версии документа.
-
С помощью кнопки Manage versions на экране WebDAV Documents.
После выполнения любого из этих действий откроется диалоговое окно WebDAV document versions.
Диалоговое окно WebDAV document versions поддерживает следующие операции:
-
Создание новой версии документа: нажатие кнопки Upload позволяет выбрать файлы для загрузки в систему. Загруженные файлы будут пронумерованы в соответствии с номером последней версии документа, а номера новых версий будут отмечены символом * — это означает, что они загружены, но еще не связаны с документом. Номера версий обновляются после сохранения изменений. Если вы закроете диалоговое окно без сохранения, все версии, отмеченные символом *, будут удалены после запуска задачи WebdavDocumentVersionsCleaningJob.
-
Создание новой версии документа на основе другой версии: выберите версию документа и нажмите кнопку Copy to head, чтобы скопировать ее и присвоить ей номер в соответствии с номером последней версии документа. Номера новых версий отмечаются символом * — это означает, что они загружены, но еще не связаны с документом. Номера версий обновляются после сохранения изменений. Если вы закроете диалоговое окно без сохранения, все версии, отмеченные символом *, будут удалены после запуска задачи WebdavDocumentVersionsCleaningJob.
-
Открытие документа для редактирования: выберите версию документа и нажмите кнопку Open, чтобы открыть документ для редактирования. Каждый раз при сохранении документа во внешнем приложении новая версия документа отправляется в базу данных. Используйте кнопку Refresh, чтобы обновить список версий документа, отображаемый в диалоговом окне WebDAV document versions.
Нажатие кнопки Refresh удаляет все несохраненные версии документа. Поэтому, если версия документа была скопирована, но не сохранена, изменения будут отменены. -
Открытие документа для чтения (только для чтения): чтобы открыть документ для чтения, нажмите на ссылку с именем файла.
-
Скачивание ZIP-архива с одной или несколькими версиями документа: кнопка Download предоставляет два варианта скачивания выбранных документов/версий. Первый вариант позволяет скачать документы как отдельные файлы. Опция Download as ZIP позволяет поместить все выбранные документы в ZIP-архив и скачать его. Для удобства имена файлов содержат суффиксы
-vс соответствующими номерами версий, напримерexample-v3.docx,document-v1.docx.
Политики разрешения конфликтов
Доступно несколько политик для разрешения конфликтов, которые могут возникать, когда несколько пользователей одновременно редактируют один и тот же документ.
Например, рассмотрим сценарий, когда два пользователя открывают один и тот же документ в WebDAV document versions и добавляют несколько новых версий. Первый пользователь завершает работу над своими версиями и сохраняет изменения. Затем второй пользователь делает то же самое. В результате база данных содержит версии, созданные обоими пользователями. Однако каждый пользователь видит в WebDAV document versions только свои собственные версии.
Такая ситуация может привести к проблемам с порядком и сохранением этих конфликтующих версий документа. Для разрешения таких конфликтов можно использовать политики, описанные ниже.
По умолчанию применяется RejectMergePolicy.
RebaseMergePolicy
RebaseMergePolicy позволяет вставлять новые версии документа после уже существующих в базе данных. Новые версии нумеруются в соответствии с номером последней версии документа, присутствующим в базе данных.
CancelMyMergePolicy
Если версии документа изменились во время работы в WebDAV document versions, все непостоянные версии (отмеченные символом *) удаляются.
CancelTheirMergePolicy
Если версии документа изменились во время работы в WebDAV document versions, все версии, отмеченные символом , сохраняются вместо тех, что были добавлены в *WebDAV document versions.
RejectMergePolicy
При возникновении конфликта отображается предупреждение, и все новые версии отменяются.
Переопределение политики разрешения конфликтов по умолчанию
Чтобы переопределить политику разрешения конфликтов по умолчанию, объявите бин типа DefaultMergePolicy в классе конфигурации Spring. Этот бин должен предоставлять требуемую политику слияния. Например:
@Bean
public DefaultMergePolicy defaultMergePolicy() {
return RebaseMergePolicy::new;
}