Инструмент сравнения графиков и версий

Я работаю с командой, которая редактирует большие DAG, представленные в виде отдельных файлов. В настоящее время мы не можем работать с несколькими пользователями, одновременно изменяющими DAG.

Есть ли инструмент (что-то вроде плагина Eclipse SVN), который может выполнять контроль версий в файле (управлять временными метками/метками редакций), чтобы идентифицировать входящие/исходящие/конфликтующие изменения (вставка/удаление/модификация узла/ссылки) и просто объединять изменения? как программисты делают с файлами исходного кода?

Система также должна уметь управлять зависимостями. Например. входящая ссылка не должна приниматься, если один из двух узлов отсутствует. То есть он не должен «сломать» существующую DAG, разрешив частичные обновления.

Есть ли структура для этого с использованием общих интерфейсов «Узел» и «Ссылка»?

Примечание. Мне известно о Protege и его подключаемых модулях. В настоящее время они не удовлетворяют моим требованиям.


person hashable    schedule 12.03.2010    source источник


Ответы (4)


Вы можете использовать Graphviz.

Вы можете просто поставить под контроль версий только исходные файлы, а затем использовать Makefile для построения и обновления ваших графиков. Таким образом, вы можете использовать SVN, Mercurial, Git или что-то еще, что вы предпочитаете для контроля версий.

Исходные файлы имеют расширение .gv и выглядят так: этим.

Проверьте дополнения Graphviz, чтобы узнать, подходит ли что-то для ваших нужд. У них есть много графических интерфейсов, которые могут делать именно то, что вы хотите.

person Roberto Aloi    schedule 12.03.2010

Я не знаю ни о каких плагинах. Если мне нужно написать собственный код, я буду хранить DAG в матрице смежности. Все остальные операции теперь становятся простыми.

person Boolean    schedule 12.03.2010

Если вы не можете найти такой инструмент, обычная система контроля версий, похоже, работает со всем, кроме управления зависимостями. Управление зависимостями — это то, с чем имеют дело и программисты (к сожалению, я удалил ту функцию, от которой зависел ваш новый код). Может быть полезно думать о проверках зависимостей как о «сборке» и искать системы контроля версий, которые обеспечивают выполнение сборки перед принятием проверки.

person user287792    schedule 12.03.2010
comment
@алгоритмист. да. Я это понимаю. Управление зависимостями в системе управления версиями DAG намного сложнее из-за отсутствия стандартизированных компиляторов для DAG. Кроме того, люди, которые редактируют DAG, обычно не являются программистами (лексикографами/онтологами и т. д.) и могут не знать о влиянии взлома сборки. - person hashable; 12.03.2010

Разве простое дерево версий не поможет вам с визуализацией? Зависимости — это отдельная история.

person pablo    schedule 30.03.2010