我可能正在寻找错误的工具,但我有一个在多个服务器上配置如下的系统:$ HOME / module / submodule / {bin,config,log,tmp}。我想将源代码控制添加到所有配置目录,而不是其他任何配置目录(尤其是日志!)。我猜我可以将git指向$ HOME并使用.gitignore排除我不感兴趣的所有内容,但新模块可能会不时添加,这意味着很多我想要立即排除的内容。有任何想法吗?我错过了一些明显的东西吗顺便说一下,我没有和git结婚,我接受任何满足我需求的系统。中央变更存储库会很好,但不是必需的;我只想要一种方法来回滚错误,并添加一些更改跟踪。
答案 0 :(得分:2)
.gitignore是一种非常强大的方法。
如果您希望将来也排除所有内容并且没有自动添加目录或文件,但已经存在一些目录,则可以使用$StopExisting = New-ScheduledTaskSettingsSet
$StopExisting.CimInstanceProperties['MultipleInstances'].Value=3
模式和*
前缀。
它是一个放在根目录中的!
的例子:
.gitignore
请注意。对不起,但我不是在我的笔记本电脑上,我无法尝试,所以我正在写下这个例子。查看文档中的任何细节。
答案 1 :(得分:1)
愚蠢明显的方式
在%REPO-ROOT
创建$HOME
存储库(如您所愿),在添加任何内容之前忽略所有文件(语法依赖于VCS)在repo中,手动添加所需文件到repo
略有不同的版本:忽略除PATH/TO/config
dirs之外的所有版本(理论上可能在Mercurial中使用Negative Lookahead,在Git中也存在不同名称的相同技术,AFAICR),在调试阶段{{3 (BitBucket上的hg-isignored extension)非常有用 - 对于Mercurial的正则表达式
更好的'n'easy方式
在每个%REPO-ROOT
创建一个$HOME/module/submodule/config
的存储库,忽略任何内容(?)。链接超级仓库中的所有小回购与Git的子模块|子树,Mercurial的子版本或只在本地仓库中使用多个远程和分支(LIVE-repositories的聚合)
最后的注释
忘记RCS(也是CVS,Monotone,Bazaar,ClearCase,Rational Team Concert),不要买头痛