在创建本地存储库时,Mercurial是否会创建服务器进程?

Geo*_*Geo 3 mercurial

Mercurial的网站说到以这种方式创建项目:

创建一个项目并提交

$ hg init (project-directory)
$ cd (project-directory)
$ (add some files)
$ hg add
$ hg commit -m 'Initial commit'
Run Code Online (Sandbox Code Playgroud)

我需要一个用户,本地存储库.我认为这样做了,对吧?我不明白的是:它会打开一个服务器进程,还是hg二进制文件在每次调用时都会完成所有工作?

Omn*_*ous 10

hg二进制做所有的工作在每次调用的时间.

hg真的不需要服务器.您可以使用该hg serve命令轻松创建一个,但这更适合与其他人交互,而且默认情况下不允许写访问.

Mercurial在一台不允许写访问的服务器上幸存了很长时间.分散式VC系统确实不需要一个,或者至少它不能满足集中式系统的绝对要求.每个人都只是写入他们的本地存储库,然后将其更改广告给其他人(比如"官方"树的维护者).

事实上,即使有一个可以推送的中央服务器,在推送它们之前,总是将更改提交到本地存储库.推送更像是同步一个数据库而不是像你想象的那样,如果你已经习惯了像Subversion或Perforce这样的东西.

Mercurial查找.hg当前目录中调用的目录,或父目录,或父目录的父目录等,以确定它是否在Mercurial存储库中.该hg init命令适用于没有任何管理权限的用户.