有一段时间我只在源代码控制下使用了我的代码,但是我觉得将我的东西放在我的.vim文件夹中以及其他东西放在回购中会很酷。 (我显然不会将所有内容存储在我的仓库中,只包含各种配置文件,我的src目录,以及其他一些内容)
我能够设置一个repo,然后将其推送到我的服务器,我可以从其他计算机访问它,但我无法将其克隆到我的其他计算机上。当我尝试克隆它时失败,因为主目录不为空。有没有办法在这里做我想要的?
答案 0 :(得分: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/
答案 1 :(得分:1)
假设你有 proj1 和 proj2 。 proj1 是您想要克隆到 proj2 的mercurial repo,但 proj2 已经包含文件。
试试这个:
hg clone proj1 proj3
mv proj3/.hg proj2
rmdir proj3
cd proj2
hg update -C -r tip
答案 2 :(得分:0)
在已存在的其他目录中,您可以hg init
,hg add
您想要的内容,hg commit
来自中央仓库的hg pull
,并处理结果合并。