2010-03-12 5 views
2

Je travaille avec une équipe qui édite de grands DAG représentés sous la forme de fichiers uniques. Actuellement, nous ne pouvons pas travailler avec plusieurs utilisateurs en modifiant simultanément le DAG. Existe-t-il un outil (un peu comme le plugin SVN d'Eclipse) capable de contrôler les révisions du fichier (gérer les horodatages/révisions) pour identifier les modifications entrantes/sortantes/conflictuelles (insertion/suppression/modification de noeud/lien) et fusionner les modifications tout comme les programmeurs avec les fichiers de code source?Outil de comparaison et de versionnage de graphiques

Le système devrait également pouvoir gérer les dépendances. Par exemple. un lien entrant ne doit pas être accepté lorsque l'un des deux nœuds est absent. Autrement dit, il ne devrait pas "casser" le DAG existant en permettant des mises à jour partielles.

S'il existe un cadre pour ce faire en utilisant des interfaces génériques "Node" et "Link"?

Note: Je suis au courant de Protege et de ses plugins. Ils ne satisfont pas actuellement mes exigences.

Répondre

0

Je ne connais aucun plugin. Si je dois écrire du code personnalisé, je vais stocker le DAG dans une matrice d'adjacence. Toutes les autres opérations deviennent maintenant simples.

1

Vous pouvez utiliser Graphviz.

Vous pouvez simplement mettre sous le contrôle de version seulement les fichiers source, puis utiliser un Makefile pour construire et mettre à jour vos graphiques. De cette façon, vous pouvez utiliser SVN, Mercurial, Git ou tout autre élément que vous préférez pour le contrôle de version.

Les fichiers source ont une extension .gv et ressemblent à this.

Vérifiez le Graphviz complements pour voir si quelque chose pourrait correspondre à vos besoins. Ils ont beaucoup d'interfaces graphiques qui pourraient faire exactement ce que vous voulez.

0

Si vous ne pouvez pas trouver un tel outil, un VCS classique semble toucher tout sauf la gestion des dépendances. La gestion des dépendances est quelque chose que les programmeurs traitent aussi (oups j'ai supprimé cette fonction dont votre nouveau code dépendait). Il peut être utile de considérer vos vérifications de dépendance comme une «construction» et de rechercher des VCS qui appliquent le code qui se construit avant d'accepter une vérification.

+0

@algorithmist. Oui. Je comprends que. La gestion des dépendances dans le contrôle de version DAG est beaucoup plus complexe en raison de l'absence de cadres de compilateurs standardisés pour les DAG. En outre, les personnes qui éditent des DAG ne sont généralement pas des programmeurs (lexicographes/ontologues, etc.) et peuvent ne pas être conscients de l'impact de "casser une build". – hashable

0

Un simple arbre de versions ne vous aiderait-il pas avec la partie visualisation? Les dépendances sont une histoire différente.

Questions connexes