Un outil de ligne de commande pour fusionner facilement les sauvegardes de la bibliothèque JW, écrite dans Go. Pour la version iOS, visitez iOS-JWLM.
Go-JWLM vous permet de fusionner deux fichiers de sauvegarde .JWLibrary, tout en vous donnant le contrôle du processus - vos notes sont précieuses, et vous ne devriez pas avoir besoin de faire confiance à un programme résolvant des conflits de fusion possibles pour vous.
J'ai créé ce projet dans le but d'avoir un outil capable de travailler sur plusieurs systèmes d'exploitation, et même de lui permettre d'être incorporé dans d'autres programmes en tant que bibliothèque (comme une application iOS). C'est - et sera pendant un certain temps - un projet de travail en cours, donc je suis toujours ouvert à la suggestion et surtout des rapports si vous rencontrez un comportement inattendu ou d'autres bugs.
L'utilisation est assez simple: vous avez une commande, vous nommez vos fichiers de sauvegarde - et appuyez sur Entrée. L'outil fusionnera toutes les entrées pour vous. S'il rencontre un conflit (comme la même note avec un contenu différent ou deux marques qui se chevauchent), il vous demandera des directions: devrait-elle choisir la version gauche ou la droite? Après cela terminé, vous avez une sauvegarde bien fusionnée que vous pouvez importer dans votre application de bibliothèque JW. Le premier processus de fusion pourrait prendre un certain temps en raison du nombre de conflits possibles, selon la distance entre vos sauvegardes. Mais si vous les fusionnez régulièrement, cela devrait être une question de secondes :)
go-jwlm merge < left-backup > < right-backup > < merged-backup >
Si un conflit se produit lors de la fusion, l'outil demandera des instructions: si elle choisit la version gauche ou la droite. Pour cela, cela vous montre les entrées réelles (je prévois d'améliorer cette vue et d'ajouter plus d'informations, en particulier sur les publications, à l'avenir). Si vous ne savez pas quoi faire, appuyez sur ?
pour l'aide.
Actuellement, il existe trois solveurs que vous pouvez utiliser pour résoudre automatiquement les conflits: chooseLeft
, chooseRight
et chooseNewest
(bien que le dernier ne soit utilisable que pour les notes). Comme leurs noms le suggèrent, chooseLeft
et chooseRight
choisiront toujours le même côté si un conflit se produit, tandis que chooseNewest
choisit toujours la dernière entrée.
Vous pouvez activer ces solveurs avec les --bookmarks
, --markings
, --notes
et --inputFields
Flags:
go-jwlm merge < left-backup > < right-backup > < merged-backup > --bookmarks chooseLeft --markings chooseRight --notes chooseNewest --inputFields chooseLeft
Les résolveurs de conflit sont utiles pour la fusion régulière lorsque vous êtes sûr qu'un côté est toujours le plus à jour. Pour une première fusion, il est toujours recommandé de résoudre manuellement les conflits, vous ne risquez donc pas d'écraser accidentellement les entrées.
Pour comparer rapidement deux fichiers de sauvegarde et vérifier si leur contenu est égal, vous pouvez utiliser la commande go-jwlm compare <left-backup> <right-backup>
. Celui-ci est principalement utilisé pour la validation, mais pourrait être utile dans d'autres situations :)
Vous pouvez trouver les binaires compilés pour Windows, Linux et Mac dans la section de version.
GO-JWLM peut être facilement installé à l'aide de Hombrew:
brew install andreassko/homebrew-go-jwlm/go-jwlm
Voir les instructions sur la façon d'installer Homebrew à https://brew.sh
Si vous souhaitez fusionner les sauvegardes à l'aide de votre iPhone ou iPad, consultez JWLM. Il utilise toute la logique de fusion de Go-JWLM, mais l'enveloppe dans une application iOS agréable et facile à utiliser. Il est déjà disponible sur l'App Store.
Il pourrait y avoir une version Android à un moment donné, mais comme je n'utilise personnellement aucun appareils Android, c'est - malheureusement - pas la priorité la plus élevée pour moi pour le moment. Si vous souhaitez aider avec ce projet, n'hésitez pas à me contacter ou simplement à le démarrer par vous-même :)
Gomobile permet d'inclure des packages GO dans une application mobile. Comme il y a encore quelques limitations, j'ai construit un wrapper pour la plupart des structures et des méthodes. Pour construire la liaison par vous-même, installez Gomobile, passez dans le répertoire gomobile
de ce référentiel et exécutez gomobile bind -target <ios or android>
.
Il m'a fallu un certain temps pour faire confiance à mon propre programme, mais je continue de garder des sauvegardes de mes bibliothèques - et vous aussi. Go-JWLM est toujours en phase bêta, il y a donc une possibilité que quelque chose puisse se perdre à cause d'un bug encore à trouver. Veuillez donc garder cela à l'esprit et - encore une fois - si vous avez trouvé un bug, n'hésitez pas à ouvrir un problème.
Quelque chose n'est pas clair, vous avez des suggestions de documentation ou vous avez trouvé un bug? N'hésitez pas à ouvrir un problème. Je suis heureux de vous aider, mais soyez patient s'il me faut un certain temps pour répondre :)