11

有一段时间,我只是将我的代码置于源代码控制之下,但我认为将我的东西放在我的 .vim 文件夹中以及其他东西中的 repo 中会很酷。(我显然不会将所有内容存储在我的 repo 中,只是各种配置文件、我的 src 目录,也许还有其他一些东西)

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

4

3 回答 3

8

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

~$ hg clone ssh://myserver/hg/dotfiles mydotfiles
~$ mv mydotfiles/.hg .
~$ rm -rf mydotfiles

就是这样,现在您的主文件夹受版本控制,但是当然,如​​果您的点文件在计算机之间不相同,您将不得不对其进行处理。

因为我只想版本化一些文件而不是我的主文件夹下的所有内容,所以我有这个简单的规则~/.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
*

这样,当我这样做时,我不会得到大量文件,hg status而只会看到那些我在版本控制下已修改的文件。

但是由于我想在另一个 hg 存储库中工作时查看未版本化的文件,所以我的~/.hgrc文件中有这个

[ui]
ignore=/home/gajon/.hgignore_global

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

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

syntax: regexp
^\.pc/
于 2011-02-04T18:17:35.083 回答
1

假设您有proj1proj2proj1是您要克隆到proj2的 mercurial 存储库,但proj2中已经有文件。

尝试这个:

hg clone proj1 proj3
mv proj3/.hg proj2
rmdir proj3
cd proj2
hg update -C -r tip
于 2011-02-04T18:06:39.693 回答
0

在已经存在的其他目录中,您可以从hg init中央hg add存储库中获取所需的内容,并处理生成的合并。hg commithg pull

于 2011-02-04T17:49:00.670 回答