Разве мы не должны использовать Subversion, когда частые и большие изменения вносятся в источник? - PullRequest
1 голос
/ 16 февраля 2011

У нас есть МНОГО XML-файлов, которые мы проверяем в хранилище Subversion (скажем, 30 000).Мы выполняем преобразования этих файлов, и это иногда приводит к большим различиям.На этом этапе разработки мы часто видим полную переписывание / реструктуризацию xml.Позже изменения будут незначительными, и мы, безусловно, захотим воспользоваться всем, что предлагает система контроля версий;однако сейчас подрывная деятельность создает проблемы.В частности, обновления, слияния создают массивные конфликты, которые практически невозможно разрешить.Разве мы не должны сейчас использовать subversion для управления этим XML?ИЛИ (надеюсь) кто-то может порекомендовать лучший способ синхронизации всех разработчиков (нам всем нужен XML) и, в конечном итоге, поддерживать правильную версию.

Ответы [ 3 ]

6 голосов
/ 16 февраля 2011

Вы должны избегать помещения автоматически сгенерированного контента под контроль версий. Вместо этого интегрируйте генерацию файлов в Makefile, который вы запускаете при каждом изменении необработанных входных данных.

Если вы работаете с автоматическим редактированием и ручным редактированием, попробуйте выделить ручное редактирование в какое-то определение настроек, которое вы затем интегрируете в автоматическую сборку.

Если все вышеперечисленное нецелесообразно, в крайнем случае сообщает Subversion, что файлы являются двоичными файлами . Это не предотвратит конфликты слияния, но предотвратит искажение XML Subversion, пытаясь аннотировать конфликты.

2 голосов
/ 16 февраля 2011

Наличие больших различий между различными ревизиями в целом не должно быть проблемой. Но если вы получаете массовые конфликты, происходит нечто иное. Возможно, вы не рассказали нам весь сценарий полностью. Конфликты могут возникать только тогда, когда два человека одновременно вносят изменения в один и тот же файл. Когда один из них выполняет реструктуризацию одного файла, в то время как другой работает с ним одновременно, как вы ожидаете объединить эти изменения?

Если коротко, , это не проблема, вызванная использованием SVN. Когда вы что-то реструктурируете, делайте это только на одной машине, и не позволяйте никому работать над тем же файлом время параллельно.

AFAIK. Вы можете настроить SVN для пессимистической (эксклюзивной) блокировки файлов, что поможет вам убедиться, что только один человек одновременно вносит изменения в один и тот же файл.

0 голосов
/ 16 февраля 2011

Сохранение данных, представляемых в файлах XML, в базе данных.Затем напишите довольно простую программу для преобразования этих данных в документ XML с использованием LINQ to XML.

Вы также можете сохранить последующие версии «XML» документов в разных таблицах, чтобы можно было архивировать предыдущие версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...