我使用的MySQL比MongoDB更多,但是从我从MongoDB学到的东西,它正是我所需要的,但它也有MySQL可以做的限制(例如自动增量)
将MongoDB用于所有事情是否明智,并仅将MySQL用于某些事情?
例如,使用MongoDB存储用户和其他所有内容,但使用MySQL来制作票证系统.
我最近在家用机器(OSX 10.9)和远程服务器(Ubuntu 12.04 64位)上安装了unison.
我在这两个地方安装了2.40.102版本.我在Mac上使用'brew install unison',我在服务器上从源代码编译.
问题是我不能让"重复观察"工作.它连接,但后来什么也没做.
Contacting server...
Connected [//... -> //...]
Run Code Online (Sandbox Code Playgroud)
就是这样.如果我传递任何东西,比如'1'到-repeat
旗帜它就可以了.
还有什么我需要做的事情才能让它在变化时观察变化和同步吗?
升级到 Mac OS X Catalina 后,我试图让一致工作。不幸的是,macports 安装了更新版本的 ocaml (4.08.1),这意味着 unison 2.51.2 版本将无法编译。
好吧,那没问题,我只是同步更新到 git master,然后重新编译。不幸的是,这在同步时失败,因为用于在 mac (4.08.1) 上编译的 ocaml 版本与用于在另一台机器 (4.07.1) 上编译的版本不同。叹。好的,使用 opam magic 在我的机器上安装 4.07.1。一切都应该没问题吧?不!
这是错误:
Connected [//zzzmyhost//home/clements/unison-home -> //zzzmyotherhost//Users/clements/clements]
Looking for changes
Uncaught exception Failure("input_value: ill-formed message")
Raised at file "/private/tmp/unison/src/lwt/lwt.ml", line 126, characters 16-23
Called from file "/private/tmp/unison/src/lwt/generic/lwt_unix_impl.ml", line 102, characters 8-23
Called from file "/private/tmp/unison/src/update.ml" (inlined), line 2105, characters 2-69
Called from file "/private/tmp/unison/src/uitext.ml", line 978, characters 16-56
Called from file "/private/tmp/unison/src/uitext.ml", line 1066, characters 6-90 …
Run Code Online (Sandbox Code Playgroud) 我想在两台机器上同步一个包含我的dotfiles的git repo的目录.两台机器都将对repo中的文件进行更改.通常我使用unison来同步目录,但在这种情况下,.git
即使目录内容表面上相同,目录中的文件也会发散.当它看到这一点时,Unison会举手并退出.
$ unison dotfiles
changed <-?-> changed .git/FETCH_HEAD
changed <-?-> changed .git/ORIG_HEAD
changed <-?-> changed .git/index
changed <-?-> changed .git/logs/HEAD
changed <-?-> changed .git/logs/refs/heads/master
changed <-?-> changed .git/logs/refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
这里的逐字节同步不起作用,因为即使使用相同的文件和git状态,内部git文件也可能不同.我该如何同步这些目录?同步后,两台计算机上的所有非git文件和git状态应该相同.通过git状态我的意思是提交历史记录和暂存,但不一定是每个内部git文件的每个字节(例如.gitignore,.git).我不太了解git,我会详细了解我的意思,但如果不清楚只是评论.
我不想将任何git提交作为同步的一部分.我认为版本控制和同步是两个独立的问题.
将git和sync这些单词放入google会产生描述如何克隆repo的结果.需要明确的是,上面"同步"的使用都不是指git动作.
如何使用opam(或其他包管理器)安装特定版本的ocaml编译器(和兼容包)?
我快速浏览了一下opam文档,但是没有找到相关信息.
我需要ocaml编译器(最好是本机代码编译器)来构建unison,一个用于文件同步的软件.我需要使用相同版本的ocaml在两台机器上构建unison,否则unison会发出错误并中止其职责(yiiii!).
我尝试从tar球构建ocaml版本4.04.0,然后使用它来构建unison,但在其中一台机器上,unison的构建失败并显示错误消息,
make[1]: Entering directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
ocamlc -o mkProjectInfo unix.cma str.cma mkProjectInfo.ml
File "mkProjectInfo.ml", line 1:
Error: Error while linking /home/norio/Downloads/unison/ocaml_for_unison/lib/ocaml/unix.cma(Unix):
The external function `unix_has_symlink' is not available
if [ -f `which etags` ]; then \
etags *.mli */*.mli *.ml */*.ml */*.m *.c */*.c *.txt \
; fi
make[1]: Leaving directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
Run Code Online (Sandbox Code Playgroud)
我不想出发寻求unix_has_symlink
功能,并致力于探索图书馆依赖的沼泽,许多开发人员在文明来临之前已经倒下,并且发明了包裹管理者.
有没有什么,
opam install ocamlc-4.04
和opam install all-packages
?
附录
unix_has_symlink
在运行Linux Mint 18 Cinnamon 64 bit的计算机上观察到错误消息.这个函数是某个unix/linux库的一部分,而不是ocaml包吗?
我在家里和工作中都有几乎相同的Linux(Fedora)机器,我使用优秀的Unison程序将我的文件保存在两台机器上.我一直试图让eclipse工作区在两台机器上保持同步,但这已经失败了.我试过两个:
会发生什么是我在一台机器上工作,在日食上创建新项目等等.然后一致.然后,当我去另一台机器时,项目有时候不会出现,有时它们会出现,但eclipse无法找到文件,有时(很少)它可以工作.
我不明白为什么eclipse因为我有相同的工作空间,eclipse版本甚至.eclipse目录而变得如此困惑.
使用最新的Debian版本的git(我正在使用1.7.2.5),我注意到.git/index
文件可能会神秘地改变,而我没有执行任何我认为应该更改存储库的操作.(我的shell偶尔运行,git branch
因此它可以显示检出的分支,但不应该更改任何内容.)更改会生成一个.git/index
与原始文件长度相同但包含不同位的文件. 导致这种变化的原因是什么,我怎么能阻止它呢?
(这种变化很不方便,因为它会让Unison文件同步器变得混乱.)
我有一个目录~/x7/music/sfx
.
根目录中有一些文件和文件夹~/x7/music
.
我需要只同步sfx
文件夹并忽略其他任何内容music
.
我尝试过很多变种,但都错了.
ignore = Name music/*
ignorenot = Regex music/sfx/.* (OR just *)
Run Code Online (Sandbox Code Playgroud)
不起作用.
我期待用类似的东西
ignore = Name music/*^/
Run Code Online (Sandbox Code Playgroud) 在 Unison(双向文件同步程序)手册中,当您设置-times=true
首选项时,只有文件的时间戳保持不变,目录不变:
从手册:
times 当此标志设置为 true 时,将传播文件修改时间(但不是目录修改时间)。
我想看看是否有任何方法可以在同步过程中保留目录时间?
Unison 手册的一部分force
:
您还可以指定
-force newer
(或-force older
) 来强制 Unison 选择修改时间较晚(较早)的文件。在这种情况下,-times
还必须启用该首选项。
我的理解是,当发生冲突时,将采用更新的文件版本。但还有其他选项prefer
,也可以设置newer
为。不幸的是,描述prefer
很少,所以我不知道什么prefer=newer
意思以及有什么区别?