将主目录置于源代码管理下(hg)

Ale*_*lex 11 mercurial home-directory

有一段时间我只在源代码控制下使用了我的代码,但是我觉得将我的东西放在我的.vim文件夹中以及其他东西在回购中会很酷.(我显然不会将所有内容存储在我的仓库中,只包含各种配置文件,我的src目录,以及其他一些内容)

我能够设置一个repo罚款,然后将其推送到我的服务器,我可以从其他计算机访问它,但我无法将其克隆到我的其他计算机.当我尝试克隆它时失败,因为主目录不为空.有办法在这里做我想做的事吗?

Jor*_*jon 8

由于我的计算机之间的版本化文件是相同的,我所做的是:

~$ hg clone ssh://myserver/hg/dotfiles mydotfiles
~$ mv mydotfiles/.hg .
~$ rm -rf mydotfiles
Run Code Online (Sandbox Code Playgroud)

就是这样,现在您的主文件夹受版本控制,但当然如果你的点文件在计算机之间不相同,你将不得不对它做些什么.

因为我只想版本化一些文件,而不是我家文件夹下的所有文件,所以我有这个简单的规则 ~/.hgignore

# This .hgignore is for the dotfiles repository only,
# the rest of my HG repositories use the file
# .hgignore_global as referenced by [ui]'s ignore setting.

syntax:glob
*
Run Code Online (Sandbox Code Playgroud)

这样,当我这样做时,我没有得到文件的海洋,hg status只看到我在版本控制下已经修改过的那些文件.

但是因为我想在另一个hg存储库中工作时看到未版本控制的文件,所以我在我的~/.hgrc文件中有这个

[ui]
ignore=/home/gajon/.hgignore_global
Run Code Online (Sandbox Code Playgroud)

~/.hgignore_global包含一些常见瞬态文件的过滤器:

syntax: glob
*.pyc
*~
.*.swp
.svn*
*.svn*
*.fasl

syntax: regexp
^\.pc/
Run Code Online (Sandbox Code Playgroud)

  • 另一个选择是'hg init'和'hg pull'而不是克隆. (2认同)