我有一个单人单文件夹mercurial存储库.目录结构很简单:
P104 lecture_notes files under version control live here
过了一会儿,我意识到我想在存储库中有两个目录,就像这样
P104 lecture_notes files under version control live here (.hg is here) homework more files under version control
现在,如果我只是尝试将文件添加到存储库,它将失败:
br@ymir:~/P104/lecture_notes$ll .. total 16 drwxr-xr-x 4 br br 4096 2012-02-02 18:05 ./ drwxr-xr-x 4 br br 4096 2012-02-01 20:46 ../ drwxr-xr-x 2 br br 4096 2012-02-02 17:44 homework/ drwxr-xr-x 4 br br 4096 2012-02-02 18:06 lecture_notes/ br@ymir:~/P104/lecture_notes$hg add ../homework/hw1_P104.tex abort: ../homework/hw1_P104.tex not under root
我的第一个想法是在目录结构中将repo克隆一级,将文件添加到克隆,并删除原始repo.但即使是克隆也失败了:
br@ymir:~/P104/2011/lecture_notes$hg clone . .. abort: destination '..' is not empty
所以问题是,除了在其他地方创建一个干净的存储库并手动复制文件之外,是否还有Mercurial-ish方法?
解决方法
如果Mercurial仓库的根目录在/ P104 /讲话笔记下,我宁愿:
>将讲座注释重命名为P104
>制作一个子目录讲座
>移动该新子目录中的所有现有文件
>在重命名的P104目录中添加作业及其文件
> hg添加一切
我们的想法是将.hg repo保持原样(/ P104 / lecture_notes重命名为/ P104 / P104)并重新组织该重命名目录中的文件.无需克隆.