你如何打电话给你的家?我想了解一些关于subrepos的信息

Som*_*DOS 2 linux macos version-control mercurial

我开始在mercurial中将一些文件放在版本控制中.它开始于.vim,然后用.bashrc,现在我意识到许多其他文件也可以被版本化(例如.zshrc,由taskwarrior创建的.task目录等)

事实是,我想知道哪些方法可用,以及SO中的人们如何做到这一点.

版本控制主页不是一个好主意,因为我需要编辑我的.hgignore,每次添加我不想要版本化的新文件夹时我也需要编辑.hgignore.

所以我想到了两种方法:

  • 创建一个"dotfiles"仓库及其中的所有内容(vim,bash,screenrc),在家中克隆它并在家中创建符号链接;
  • 为每个配置创建一个"dotfiles"repo和repo(vim,bash,screenrc,cvsrc等).这个"dotfiles"仓库将其他存储库作为子模块,但仍需要在家中创建符号链接.

您是否认为在第二种方法中为每个配置创建存储库是否过度?你有其他建议吗?我想在linux/mac上使用这种方法.我也在windows上使用vim,这就是为什么我要用子模块制作不同的存储库 - 在windows中我只是克隆vim repo:home repo将vim作为子模块.

(我正在使用bitbucket私人帐户.是否有可能在那里有子模块?还有一件事:是否有可能 mercurial存储库中将git子模块作为子模块?如何?)

谢谢!

Ry4*_*ase 7

大多数这样做的人在他们的~/.hgignore文件中添加了这样的东西:

.*
Run Code Online (Sandbox Code Playgroud)

它会自动忽略一切.然后他们只是hg add他们想要跟踪的文件 - hg add覆盖忽略规则(与CVS/svn不同).

需要注意的一点是,mercurial不会跟踪文件权限(执行位除外),因此您必须小心.ssh/authorized_keys等获取权限以外的权限600.像etckeeper这样的工具可以自动化处理这个hg(或git)部分的权限(和所有权),不仅适用于~系统之类的东西,也适用于系统之类的东西/etc.