Инструмент командной строки, чтобы легко объединить резервное копирование библиотеки JW, написанное в Go. Для версии iOS посетите iOS-JWLM.
Go -JWLM позволяет вам объединить два файла.
Я создал этот проект с целью наличия инструмента, способного работать над несколькими операционными системами, и даже позволяя его включать в другие программы в качестве библиотеки (например, приложение для iOS). Это - и будет в течение довольно долгого времени - проект по производству работы, поэтому я всегда открыт для предложения и особенно отчетов, если вы столкнетесь с неожиданным поведением или другими ошибками.
Использование довольно простое: у вас есть одна команда, вы называете свои файлы резервного копирования - и нажимаете Enter. Инструмент объединит все записи для вас. Если он столкнется с конфликтом (например, с одной и той же нотой с различным содержанием или двумя маркировками, которые перекрываются), он попросит вас указания: Должен ли он выбрать левую версию или правую? После того, как это закончено, у вас есть прекрасно объединенная резервная копия, которую вы можете импортировать в приложение JW Library. Первый процесс слияния может занять некоторое время из -за количества возможных конфликтов, в зависимости от того, насколько далеко вы, резервные копии. Но если вы регулярно их объединяете, это должно быть вопросом секунд :)
go-jwlm merge < left-backup > < right-backup > < merged-backup >
Если конфликт происходит во время слияния, инструмент будет запрашивать указания: если он выберет левую версию или правую. Для этого это показывает вам реальные записи (я планирую улучшить эту точку зрения и добавить больше информации, особенно о публикациях, в будущем). Если вы не уверены, что делать, нажмите ?
за помощью.
В настоящее время есть три решателя, которые вы можете использовать для автоматического разрешения конфликтов: chooseLeft
, chooseRight
и chooseNewest
(хотя последний можно использовать только для примечаний). Как предполагают их имена, chooseLeft
и chooseRight
всегда выберут ту же сторону, если произойдет конфликт, в то время как chooseNewest
всегда выбирают новейшую запись.
Вы можете включить эти решатели с флагами --bookmarks
, --markings
, --notes
и --inputFields
:
go-jwlm merge < left-backup > < right-backup > < merged-backup > --bookmarks chooseLeft --markings chooseRight --notes chooseNewest --inputFields chooseLeft
Конфликтные резолюры полезны для регулярного слияния, когда вы уверены, что одна сторона всегда является самой современной. Для первого слияния все еще рекомендуется вручную решать конфликты, поэтому вы не рискуете случайно перезаписать записи.
Чтобы быстро сравнить два файла резервного копирования и проверить, является ли их контент равным, вы можете использовать команду go-jwlm compare <left-backup> <right-backup>
. Этот в основном используется для проверки, но может быть полезен в других ситуациях :)
Вы можете найти составленные двоичные файлы для Windows, Linux и Mac в разделе выпуска.
go-jwlm можно легко установить с помощью Hombrew:
brew install andreassko/homebrew-go-jwlm/go-jwlm
Смотрите инструкции о том, как установить Homebrew по адресу https://brew.sh
Если вы хотите объединить резервные копии, используя свой iPhone или iPad, посмотрите на JWLM. Он использует всю логику Merge of Go-JWLM, но завершает ее в красивое и простое в использовании приложение для iOS. Он уже доступен в App Store.
В какой -то момент может появиться версия для Android, но, поскольку я лично не использую какие -либо устройства Android, это - к сожалению - не самый высокий приоритет для меня прямо сейчас. Если вы заинтересованы в помощи в этом проекте, не стесняйтесь обращаться ко мне или просто запустите его самостоятельно :)
Gomobile позволяет включать пакеты GO в мобильное приложение. Поскольку все еще есть некоторые ограничения, я построил обертку для большинства структур и методов. Чтобы построить привязку самостоятельно, установите Gomobile, измените в каталог gomobile
этого репо и запустите gomobile bind -target <ios or android>
.
Мне потребовалось некоторое время, чтобы доверять моей собственной программе, но я все еще продолжаю резервные копии своих библиотек - и вы тоже. Go-JWLM все еще находится в бета-фазе, поэтому есть вероятность, что что-то может быть потеряно из-за еще одной ошибки. Поэтому, пожалуйста, имейте это в виду и - снова - если вы нашли ошибку, не стесняйтесь открывать проблему.
Что -то неясно, у вас есть предложения для документации или вы нашли ошибку? Не стесняйтесь открывать проблему. Я рад помочь, хотя, пожалуйста, будьте терпеливы, если мне понадобится время, чтобы ответить :)