一种可以轻松合并JW库备份的命令行工具,并编写为GO。对于iOS版本,请访问iOS-JWLM。
GO -JWLM允许您合并两个.jwlibrary备份文件,同时赋予您对流程的控制 - 您的笔记是宝贵的,并且您不需要信任程序解决可能的合并冲突。
我创建了这个项目,目的是拥有能够在多个操作系统上工作的工具,甚至允许将其作为库中(例如iOS应用程序)合并到其他程序中。这是 - 并且将在相当长的一段时间内 - 一个正在进行的项目,因此,如果您遇到意外的行为或其他错误,我始终为建议,尤其是报告。
用法非常简单:您有一个命令,命名备份文件 - 然后按Enter。该工具将为您合并所有条目。如果它遇到冲突(例如与不同的内容或两个重叠的标记相同的注释),它会要求您提供说明:它应该选择左版本还是右版?完成之后,您可以将其备份良好,可以将其导入到JW库应用程序中。由于可能的冲突数量,第一个合并过程可能需要一些时间,具体取决于您的备份相距多远。但是,如果您定期合并它们,那应该是几秒钟的问题:)
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的编译二进制文件。
可以使用Hombrew轻松安装GO-JWLM:
brew install andreassko/homebrew-go-jwlm/go-jwlm
查看有关如何在https://brew.sh上安装自制的说明
如果您想使用iPhone或iPad合并备份,请查看JWLM。它使用GO-JWLM的整个合并逻辑,但将其包装在一个易于使用的iOS应用程序中。它已经在App Store上可用。
在某个时候可能会出现Android版本,但是由于我个人不使用任何Android设备,但这是 - 不幸的是 - 现在不是我的最高优先事项。如果您有兴趣帮助该项目,请随时与我联系,或者自己启动它:)
Gomobile可以在移动应用程序中包含GO软件包。由于仍然存在一些局限性,我为大多数结构和方法构建了包装器。要自行构建绑定,请安装gomobile,更改为此存储库的gomobile
目录并运行gomobile bind -target <ios or android>
。
我花了一段时间才相信自己的程序,但我仍然保留库的备份 - 您也应该。 GO-JWLM仍处于β相,因此由于尚未找到的错误,有可能会丢失某些东西。因此,请记住这一点,并且 - 再次 - 如果您发现一个错误,请随时打开问题。
尚不清楚,您有有关文档的建议,还是发现了一个错误?随意打开一个问题。我很乐意提供帮助,尽管如果需要一段时间才能做出回应,请耐心等待:)