Je souhaite pouvoir empêcher une 'poussée' (ou réplication) vers l'instance centrale de CouchDB à partir de l'instance locale d'un utilisateur (où il y a beaucoup d'utilisateurs) s'il y a des conflits - en copiant essentiellement la fonctionnalité à partir de quelque chose comme Git ou Mercurial, où les utilisateurs doivent résoudre les conflits sur leur copie locale avant de pousser sur le serveur central (de sorte que le serveur peut rester «propre»). D'après ce que je peux voir, il y a deux options:CouchDB empêche la réplication en cas de conflit
empêcher un utilisateur de valider s'il y a des conflits (bien que je ne vois aucun moyen de le faire sans terminer la réplication), ou terminer la réplication, voir s'il y a des conflits, puis supprimer la réplication poussée (et les documents) s'il y a des conflits (bien que cela puisse également entraîner un comportement indésirable si un retrait est effectué avant que les documents ne soient à nouveau supprimés, en plus d'être un peu inefficace). Donc, pour réduire cela, idéalement, Je voudrais une réplication pour revenir en arrière s'il y a un conflit, et pour m'informer qu'un conflit s'est produit (Je me fiche de la nature du conflit, parce que je peux alors lancer une réplication de demande de traction pour répliquer la base de données centrale sur la base de données locale).
Y a-t-il un moyen de réaliser l'une ou l'autre approche que j'ai manquée?
Merci Bernhard, je vais essayer et revenir vers vous. L'autre option sur laquelle je travaille est de comparer checkpoint_seq de la réplication pull la plus récente par cette machine (en utilisant le MAC de la machine dans l'ID de réplication), puis en vérifiant _changes pour identifier s'il y a eu des changements ultérieurs. Votre solution est plus jolie cependant, si cela fonctionne! – Ian
D'après ce que j'ai vu - j'ai appelé les clés (newDoc) et connecté les propriétés de l'objet - semble qu'il a seulement _id, _rev et _revisions malheureusement. Je suppose que s'il est supprimé, il peut obtenir la propriété supplémentaire _deleted comme indiqué par les docs. – Ian
Merci pour l'info, dommage que cela ne fonctionne pas ... –