У меня есть распределенная система, которая использует XML-файлы в репозитории SVN в качестве средства связи (как вы можете догадаться из этого, связь обычно медленная). Некоторые обрабатывающие узлы добавляют или удаляют некоторые данные в репозиторий, другой узел обработки принимает это как входное событие и реагирует соответственно.Есть ли гарантия того, что svn автоматически объединяет параллельные строки «добавить строку» и «удалить строку» в один и тот же файл?
На данный момент все в порядке, но мне интересно, могу ли я столкнуться с проблемами с автоматическим слиянием SVN.
Скажем, один узел добавляет конкретное задание другому узлу, добавляя строку в файл xml, указывающую на другой XML-файл с заданиями. Это выглядит как следующий код:
----File: nodename.xml----
<assignments>
<file>537f7acb382326.xml</file>
<file>572919a90c0234.xml</file>
<file>58a7c3e2015922.xml</file>
</assignments>
Каждый файл, перечисленных в этом файле является назначение задания на хост nodename
. При выполнении задания соответствующая строка будет удалена цессионарием.
С точки зрения хранилища SVN у меня есть один «сумматор» и один «чтение и удаление». Один узел только добавляет строки к этому файлу, один узел удаляет только строки из этого файла. Я могу гарантировать, что только один узел может добавить, и только один узел может удалить. Но: Хотя имена файлов имеют уникальные идентификаторы, они могут быть добавлены повторно, поэтому строка может быть добавлена и удалена одновременно, что может теоретически вызвать проблемы.
Мой вопрос: есть ли гарантия, что SVN автоматически объединяет параллельную строку «добавить строку» и «удалить строку» без взаимодействия с пользователем? Если нет, есть ли гарантия, добавляю ли временную метку каждой добавленной строке, делая каждую линию уникальной?
Этот вопрос был настолько старым, что ваш ответ для меня уже не имеет значения ... но поскольку это правильно, я даю вам галочку :) – orithena
@maligree, спасибо ... Я отвечал на старые вещи с самого начала, не понимая этого. –