Mercurial:合并在意外创建的子文件夹中

马克·W。

TLDR:我似乎在主项目的子文件夹中创建了一个单独的存储库。如何合并它们?

我有一个项目文件夹,我们称它为BOB我将(hg cloneBOB克隆到一个名为BOB2的新文件夹中为了添加新功能,我在BOB2上创建了一个名为BOB-newfeatures的子文件夹我已经在BOB-newfeatures文件夹上工作了一段时间了,并且签到了很多东西。

今天,我意识到以某种方式为BOB-newfeatures创建了一个单独的存储库直到今天,我还没有BOB2 main进行任何更改,因此我没有注意到没有跟踪更改)。如果我hg statusBOB2执行操作,它将不知道子文件夹中的更改,反之亦然。

有没有办法将它们缝合在一起?我知道我可以hg addBOB-newfeatures中的所有文件都保存BOB,但是后来我认为我丢失了所有签入历史记录。

懒Bad

好的,我从(从头开始)以您的名字重建(希望)您的案子

BOB2>hg log -T "{node|short}\tFiles: {join(files, ', ')}\n"
25a16a8fea5e    Files: Sub/3.txt
bf3c6cacb4a4    Files: 1.txt, 2.txt
ff71a2b1bbe3    Files: 1.txt

和嵌套回购

BOB2\BOB-newfeatures>hg log -T "{node|short}\tFiles: {join(files, ', ')}\n"
acac7d413ed2    Files: f1.txt
15a1f9cacf25    Files: f2.txt
f3055921fa01    Files: f1.txt

作为BOB-newfeatures内部隐形的补充确认BOB2

BOB2>hg manifest
1.txt
2.txt
Sub/3.txt

解决问题的方法-与Wiki相比,将Convert扩展与--filemapinverse反向使用:例如,将repo的子目录转换为单独的存储库,我将存储库根目录移至子文件夹

  • 映射文件,准备进行转换
rename . BOB-newfeatures
  • 转换
hg convert --filemap map z:\BOB2\BOB-newfeatures z:\BOB-newfeatures-conv
initializing destination z:\BOB-newfeatures-conv repository
scanning source...
sorting...
converting...
2 New feature started
1 Change 1
0 Change 2
  • 测试结果
BOB-newfeatures-conv>hg log -T "{node|short}\tFiles: {join(files, ', ')}\n"
a3b2c462a3b9    Files: BOB-newfeatures/f1.txt
f5f1168cfe2f    Files: BOB-newfeatures/f2.txt
da27a50a5cb6    Files: BOB-newfeatures/f1.txt

将文件路径与嵌套仓库中的日志进行比较,注意变更集的不同哈希值

  • 下一个坏消息:您不能轻松地将BOB | BOB2拉到转换后的存储库中缺少的部分
BOB-newfeatures-conv>hg pull ../BOB2
pulling from ../BOB2
searching for changes
abort: repository is unrelated

即使使用--force(因为存储库实际上是不相关的并且不共享历史记录),您也会得到“脏”的组合存储库(root和inBOB-newfeatures/的更改是具有自己的root和tip的两行单独的更改)

BOB-newfeatures-conv>hg pull ../BOB2 -f
pulling from ../BOB2
searching for changes
warning: repository is unrelated
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 4 changes to 3 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)

力拉结果

最后,您必须将两个历史重新链接到一个共同点。就我而言,由于我的行为(将其拉到转换的存储库,并具有的先前存在的历史记录BOB-newfeatures),我不得不在3-4-5之后链接0-1-2修订版(历史上较早的更改),而且我不知道更优雅的方式这样做,然后再次转换(HG-> HG)存储库,--splicemap这一次

带日志输出

>hg log -T "{rev} {node}\n"
5 25a16a8fea5e5b4dac42a0a6b2c8e82890c220a3
4 bf3c6cacb4a4c22cb5720ddeab1ec5f8238a98c9
3 ff71a2b1bbe30a56c9dabc9a7ddb2bbccad840af
2 a3b2c462a3b917b3ba58daee3df2632875baee17
1 f5f1168cfe2f4b6c67d0af8a9259665ae2d40bd5
0 da27a50a5cb6246c03c6af7485ac7ffc33e62738

可以创建规则“ 5之后的0”的splicemap(格式为“ liner”“ ChildHash ParentHash”)

da27a50a5cb6246c03c6af7485ac7ffc33e62738 25a16a8fea5e5b4dac42a0a6b2c8e82890c220a3

最后执行的转换

>hg convert  --splicemap z:\map z:\BOB-newfeatures-conv z:\BOB3
scanning source...
sorting...
converting...
5 Initial data
4 Changes
3 More changes
2 New feature started
spliced in 25a16a8fea5e5b4dac42a0a6b2c8e82890c220a3 as parents of da27a50a5cb6246c03c6af7485ac7ffc33e62738
1 Change 1
0 Change 2

预期效果良好

最终回购

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash - 在分离的子文件夹中合并文件

来自分类Dev

在 Python 中浏览和合并文件夹及其子文件夹中的 Excel 文件

来自分类Dev

csv文件中的perl数组在意外的地方创建换行

来自分类Dev

意外创建指向该文件夹中的文件夹的符号链接

来自分类Dev

将子文件夹中的多个 CSV 文件合并到一个唯一的文件中,并在新列中添加文件名

来自分类Dev

如何合并文件夹和子文件夹?

来自分类Dev

如何合并文件夹和子文件夹?

来自分类Dev

如何在子文件夹 SharePoint Online C# 中创建子文件夹

来自分类Dev

循环浏览文件夹树并在子文件夹中并行执行bat文件(访问子文件夹中的文件)

来自分类Dev

遍历文件夹和子文件夹中的所有文件并获取创建日期

来自分类Dev

可以在Android Studio中的drawable文件夹中创建子文件夹吗?

来自分类Dev

可以在Android Studio中的drawable文件夹中创建子文件夹吗?

来自分类Dev

如何在CMD中目录的每个文件夹中递归创建子文件夹

来自分类Dev

如何在用户选择的根文件夹中创建包含某些子文件夹的文件夹?

来自分类Dev

递归循环到子文件夹并在文件中寻找子字符串

来自分类Dev

在VB2010中创建子文件夹?

来自分类Dev

在子文件夹中创建svn项目

来自分类Dev

如何在git分支中创建子文件夹?

来自分类Dev

在VB2010中创建子文件夹?

来自分类Dev

IntelliJ:在子文件夹中创建 gradle 模块

来自分类Dev

如何在文件夹中合并所有JS文件并在GruntJS中使用SASS?

来自分类Dev

如何使用WiX在安装文件夹中创建子文件夹

来自分类Dev

使用PowerShell在多个父文件夹中创建子文件夹

来自分类Dev

是否可以在lang / en文件夹中创建子文件夹?

来自分类Dev

在多个文件夹中创建一个子文件夹

来自分类Dev

在另一个文件夹中创建相同的子文件夹

来自分类Dev

如何在现有文件夹中创建子文件夹?

来自分类Dev

在多个根文件夹中创建子文件夹所需的批处理或PowerShell脚本

来自分类Dev

使用该包在脚本文件夹中创建子文件夹的 Python 包

Related 相关文章

  1. 1

    Bash - 在分离的子文件夹中合并文件

  2. 2

    在 Python 中浏览和合并文件夹及其子文件夹中的 Excel 文件

  3. 3

    csv文件中的perl数组在意外的地方创建换行

  4. 4

    意外创建指向该文件夹中的文件夹的符号链接

  5. 5

    将子文件夹中的多个 CSV 文件合并到一个唯一的文件中,并在新列中添加文件名

  6. 6

    如何合并文件夹和子文件夹?

  7. 7

    如何合并文件夹和子文件夹?

  8. 8

    如何在子文件夹 SharePoint Online C# 中创建子文件夹

  9. 9

    循环浏览文件夹树并在子文件夹中并行执行bat文件(访问子文件夹中的文件)

  10. 10

    遍历文件夹和子文件夹中的所有文件并获取创建日期

  11. 11

    可以在Android Studio中的drawable文件夹中创建子文件夹吗?

  12. 12

    可以在Android Studio中的drawable文件夹中创建子文件夹吗?

  13. 13

    如何在CMD中目录的每个文件夹中递归创建子文件夹

  14. 14

    如何在用户选择的根文件夹中创建包含某些子文件夹的文件夹?

  15. 15

    递归循环到子文件夹并在文件中寻找子字符串

  16. 16

    在VB2010中创建子文件夹?

  17. 17

    在子文件夹中创建svn项目

  18. 18

    如何在git分支中创建子文件夹?

  19. 19

    在VB2010中创建子文件夹?

  20. 20

    IntelliJ:在子文件夹中创建 gradle 模块

  21. 21

    如何在文件夹中合并所有JS文件并在GruntJS中使用SASS?

  22. 22

    如何使用WiX在安装文件夹中创建子文件夹

  23. 23

    使用PowerShell在多个父文件夹中创建子文件夹

  24. 24

    是否可以在lang / en文件夹中创建子文件夹?

  25. 25

    在多个文件夹中创建一个子文件夹

  26. 26

    在另一个文件夹中创建相同的子文件夹

  27. 27

    如何在现有文件夹中创建子文件夹?

  28. 28

    在多个根文件夹中创建子文件夹所需的批处理或PowerShell脚本

  29. 29

    使用该包在脚本文件夹中创建子文件夹的 Python 包

热门标签

归档