我经常使用三台不同的计算机。我使用 git 在它们之间保持大量数据同步。这对于大多数用途来说都非常有效。
我唯一的问题是浏览器书签。Firefox 现在将它们保存在某种 sqlite 数据库中。我可以将其放入 git,但合并等操作就变得毫无意义了。
我看过很多书签同步扩展。目前我使用的是 Xmarks,它是最好的一个,但即使是它在某些方面也很烦人。(例如,它现在坚持让我每次启动浏览器时都登录。)
在线书签存在各种缺陷,最重要的是它们的用户界面与浏览器内置的用户界面相比通常很糟糕。
有没有好的办法可以将书签无缝地放入像 git 这样的版本控制中?如果 Firefox 只是将书签保存在纯文本或 HTML 文件中而不是 sqlite 中,这会简单得多。到目前为止,我只能想到两个解决方案。一是将 Firefox 转储为另一个浏览器。不幸的是,Chromium 可能不会有太大帮助,因为我认为它也使用数据库。有乌兹别尔,这肯定会将书签保存为纯文本,但如果可以的话,我宁愿不走这条路,因为让 uzbl 工作起来需要做很多工作。第二,只将书签保存在我可以用 vim 编辑的纯文本文件中。我可以使用 awk 做一个简单的标记系统。这并没有给我带来太多的用户界面,但这确实是我迄今为止能想到的最好的主意。
答案1
Firefox 本身提供了两个选项:
转到(在版本 < 4 中)Bookmarks>Organize Bookmarks
或(在版本 4 及以上中)Bookmarks>Show All Bookmarks
。在出现的对话框顶部附近会有一个用于备份/恢复/导入书签的按钮下拉菜单。将有选项可以将书签导出为 JSON 文件或 HTML 文件。从 JSON 文件恢复将完全替换当前书签,而导入 HTML 文件只会将所有书签添加到书签菜单中。
我认为 HTML 版本可能更适合合并书签文件,但需要您在导入最新的 HTML 文件之前删除 Firefox 中的所有当前书签,以避免发生所有重复。JSON 版本没有这个问题,但我不确定它是否适合合并,因为它不使用线喙。
更新:
刚刚注意到 Firefox 4 至少提供了同步书签等的选项。转到Tools>Options
并选择“同步”选项卡。
答案2
我认为最直接的方法是将书签从 Sqlite 数据库转储到 CSV 文件中,然后将其签入 DVCS。从
此链接Sqlite.org 上的指南应该可以帮助您从 Sqlite 开始使用 CSV。
没有什么可以阻止您将 Sqlite db 放入版本控制中——您只是不会有任何比较历史记录,因为(我认为)Sqlite 以二进制形式存储内容。我看不出在书签集上拥有比较历史记录有什么好处。它可能是一个大文件,但这似乎是阻力最小的路径。
答案3
也许有一种方法可以“复制”/“同步”SQLite3 数据库,也许可以使用调度工具定期运行,例如cron
/systemd
(或 macOS / Windows 同等版本)。
如果可行,该方法还应允许不同品牌的网络浏览器之间同步,并为用于书签分析和管理的本机桌面或移动应用程序提供基础。
一旦实现上述目标,从直接在 SQLite3 实例之间同步转变为在 SQLite3 数据库和中央服务器之间同步几乎是微不足道的。颞DBMS - 提供历史记录/版本控制功能并允许人们查看他们的书签随时间的变化情况。