- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个项目在 Mercurial 存储库中有 24 个月的源代码控制历史。
我最近发现了一些早于源代码控制的项目的旧 tarball,我认为将它们作为“史前”变更集导入到存储库中会很有用。
我能否以某种方式向我的初始提交添加父项?
或者,是否可以在压缩包之上重播我的整个存储库历史记录,同时保留所有元数据(时间戳等)?
是否可以让新的父提交使用这些旧压缩包的时间戳?
最佳答案
您可以使用 convert extension构建一个新的存储库,其中 tarball 作为当前根修订版之前的修订版导入。
首先,您导入基于 null
修订版的压缩包:
$ hg update null
$ tar -xvzf backup-2010.tar.gz
$ hg addremove
$ hg commit -m 'Version from 2010'
$ rm -r *
$ tar -xvzf backup-2011.tar.gz
$ hg addremove
$ hg commit -m 'Version from 2011'
我正在使用 addremove上面让 Mercurial 有机会检测每个 tarball 之间的重命名(查看 --similarity
标志来微调它并手动使用 hg rename --after
来帮助Mercurial 进一步)。此外,我在导入新的 tarball 之前删除了工作副本中的所有文件:这样下一次提交将完全包含您解压的 tarball 中存在的快照。
像上面一样导入所有压缩包后,您的存储库中就有了平行历史:
[c1] --- [c2] --- [c3] ... [cN]
[t1] --- [t2] --- [tM]
您的旧提交是 c1
到 cN
,压缩包中的提交是 t1
到 tM
。目前它们没有共享历史记录——就好像您使用 hg pull -f
将不相关的存储库拉入当前存储库。
convert 扩展现在可用于执行 Mercurial 到 Mercurial 的转换,您可以在其中将 c1
的父修订版重写为 tM
。为此使用 --splicemap
标志。它需要一个文件
<full changeset hash for c1> <full changeset hash for tM>
使用hg log --template '{node} ' -r c1 -r tM > splicemap
生成这样的文件。然后运行
$ hg convert --splicemap splicemap . spliced
用 merge 的历史生成一个新的存储库拼接
。存储库是新的,因此您需要让每个人重新克隆它。
此技术类似于 Kindread 建议的使用 hg rebase
。不同之处在于 convert 不会尝试 merge 任何内容:它只是将 c1
中的父指针重写为 tM
。由于不涉及 merge ,因此不会因奇怪的 merge 冲突而失败。
关于mercurial - 在 Mercurial 中将父级添加到原始变更集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215571/
我目前正在寻找一些关于 jQuery 的建议,因为我认为我做错了,即使我得到了我想要的结果。 我想在更改时将输入的值更改为最接近的具有 .milestone 类的输入的值。我想要更改的输入是保持输入,
我已经阅读有关绑定(bind)、调用、申请的文章近一周了,对我来说仍然很复杂。我想我写的这个 jsfiddle 需要它们。然而,我没能做到,因为我仍然很困惑。 我尽力写了一些我上周从遇到这个问题的开发
我有一个项目生成代码。生成时间真的很长,所以我把它分成了多个项目,每个项目产生了整体的 20%。原始 POM 成为“父 POM”,子项依赖于它,仅包含一个单独的 Artifact ID 和一两个更改的
我正在使用局部 View 来创建父 subview 。我最理想的是父 View 上的提交按钮,用于保存子值。 我有以下模型。 public class Course { public int
我刚刚开始学习Rust,并且在理解所有权如何在我的案例中遇到一些麻烦: use std::ops::IndexMut; // =====================================
我是 JavaScript 新手,想了解更多有关它实例化父/子对象的顺序的信息。更具体地说,我想从编译器/浏览器的 Angular 理解以下代码片段。 var parent = { child:
我正在测试 Azure IaaS,并遇到了一个非常基本的问题。我有一个父 VHD 和子 VHD,已使用 csupload 将其作为页面 blob 上传,并且门户中显示图像和磁盘。然后我尝试将 pare
我的应用程序会定期为我坚持使用的对象请求更新 Core Data到网络服务。然后我需要更新我在主要上下文中拥有的对象(默认情况下 AppDelegate 中提供的对象)。编辑对象的不是用户,所以我需要
texT text text text text text 如何直接获取来自.menu ? 里面的 child 不应该采取。
我一直需要影响与其他元素相关的元素,但我的方法有点业余! 即到 // matched item where script is called from LINK 我使用; $(thi
我有两个表: 父子“类别”: id name parent_id 1 Food NULL 2 Pizza 1 3 Pasta
Linux 上的 Python 2.7.6。 我正在使用从父级继承的测试类。父类保存了许多子类共有的许多字段,我需要调用父类的 setUp 方法来初始化这些字段。调用 ParentClass.setU
我有一个处理图像、相册和相册类别的数据库。 一个专辑可以有多个专辑(子专辑),并且只有 1 级深度。 一张专辑仅属于一个专辑类别。 在这里做了一些研究,我相信最合适的数据库模型是这个 album_ca
我有一个关键字表,其中每个关键字都分配有一个 ID,并且是唯一的。我有第二个表,将父关键字的 ID 链接到子关键字的 ID。一个关键字最多可以有大约 800 个 child 或根本没有。 child
我经常使用这个 CSS 选择器 parent>child。我的设计在 Mozilla 和 Opera 中看起来不错。 但在 IE 中,它很糟糕。我知道 > 在 IE 中无法识别,但在 IE 中有什么替
我一直在用一个父对象构建一个系统,它在其中创建各种子对象,每个子对象都需要一个主对象才能运行。现在,到目前为止,我一直在创建 shared_ptr和 Child* ,所以当 Parent 和 所有 C
我从以下两个类中收到序列化兼容性错误。只有父类CommericalCustomer 实现了序列化。当具有如下所示的父/子关系时,使用可序列化接口(interface)的正确方法是什么? public
我正在开发一个程序并学习父/子进程。目前我的子进程是 exit(variable); 在我的 main() 中我有: signal(SIGCHLD, chldHandler); 在我的 main()
考虑以下两个具体类: public class A { protected void foo() { System.out.println("A foo"); bar
所以,我正在尝试建立这样的父/子类关系: class ParentClass where C : ChildClass { public void AddChild(C child)
我是一名优秀的程序员,十分优秀!