标签: git-fast-import

将大bzr存储库转换为git,可以期待什么?

我正在尝试将一些旧的集市存储库转换为git,虽然一切似乎都顺利进行,但我有点不确定它是否真的像它声称的那样好.

我的bazaar存储库结构如下:

  • 回购
    • 树干
    • 特性/功能branchX
    • 特性/功能枝

我正在使用快速导出/快速导入方法在bzr和git之间进行迁移.

最初,我使用--export-marks迁移"trunk",如下所示:

bzr fast-export --export-marks=../$1/marks.bzr ../$1/trunk | git fast-import --export-marks=../$1/marks.bzr --export-marks=../$1/marks.git
Run Code Online (Sandbox Code Playgroud)

以1美元为名称

然后迭代"repo"目录中的所有其他文件夹并调用

bzr fast-export --marks=../$1/marks.bzr  --git-branch=$nick ../$1/$b/.. | git fast-import --import-marks=../$1/marks.git --export-marks=../$1/marks.git
Run Code Online (Sandbox Code Playgroud)

$ nick是bzr的分支昵称,$ 1/$ b是分支的目录名称.

正如我所说,它处理所有预期的目录,但在完成后,我做了一个

git branch
Run Code Online (Sandbox Code Playgroud)

它显示了20个分支,原始的集市存储库有80多个.

现在,只是在git中查看"master",它似乎就在那里,缺少的60个分支很容易成为已经合并到trunk中的分支.但我不确定快速导出/快速导入工具是否足够巧妙地说"呸 - 你不会需要这个",但也许它们是.

有人对这个有经验么?

在从bzr迁移到git之后,我是否应该留下"master"和任何已经在其中保留未提交的分支?

最后,为了历史,有没有办法强迫所有分支转换,即使它们在技术上已经不存在了?

git version-control bazaar migrate git-fast-import

12
推荐指数
1
解决办法
2592
查看次数

git快速导入流的合并语义是什么?

我编写并维护了一个名为reposurgeon的开源工具,它编辑版本控制存储库历史记录,可用于在VCS之间移动项目历史记录.最近我发送完全支持读取Subversion转储文件和repos.但是有一件事reposurgeon还没有做得很好,那就是通过复制到git风格的DAG合并来翻译Subversion分支合并.

为了使这一部分正确,我需要比git更快地理解git快速导入流中的合并提交的语义.我的问题是关于合并提交后应该看到哪个版本的内容.

当然,附加合并提交的文件修改使其内容可见.我的问题是关于提交没有触及的路径.

  1. 如果路径仅在合并的祖先只有一个提交链上有内容,我认为内容应该是可见的.那是对的吗?

  2. 如果路径在合并中具有多个祖先的提交链中的内容,那么哪个版本可见?

  3. 如果沿着合并的某些路径删除文件,那么什么规则会预测合并修订中何时删除它?

git git-fast-import

7
推荐指数
1
解决办法
647
查看次数

使用commit-properties将bazaar迁移到git以链接修复的错误

我们使用bazaar-vcs已经有好几年了,但是由于一些长期存在的烦恼而停止了bzr的开发,因此决定迁移到git.

在使用bazaar时,我们广泛使用了bazaar的"bug tracker metadata"功能(http://doc.bazaar.canonical.com/bzr.dev/en/user-reference/bugs-help.html).因此,每个错误修复提交都包含相应的mantis-bug-Id的ID,以便我们在source和mantis之间建立链接.

我们的commit-message不包含mantis-id,我们只使用了"metadata-feature":

在此输入图像描述

对我们来说非常重要的是我们不要放弃这些信息,因此我需要一种解决方案来以某种形式迁移这些错误链接.

我已经尝试使用fast-import/fast-export命令将我们的bazaar存储库导出/导入到git中:

bzr fast-export --no-plain --rewrite-tag-names/var/www/source_branch/| git快速导入

不幸的是我收到以下错误:

fatal: This version of fast-import does not support feature commit-properties.
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用选项--plain而不是--no-plain导入工作,但我们失去了与我们的错误的所有连接.

是否有一些解决方案/解决方法从bzr迁移到git而不会丢失对我们来说如此重要的所有这些错误链接?

[编辑]:我刚刚分析了快速导入/快速导出文件格式,这非常简单.应该可以编写一些脚本来修改文件并将(属性错误...)行移动到相应的提交消息行中.但是,如果有一个开箱即用的解决方案,我会很高兴听到它:)

git bazaar git-fast-import

5
推荐指数
1
解决办法
563
查看次数

如何将72GB的转储文件导入git?

我已经使用cvs2git(cvs2svn)迁移了旧的cvs存储库。现在生成的转储文件大了72GB,由于内存不足错误,我尝试通过git fast-import导入转储的尝试始终失败:

致命:内存不足,malloc失败(尝试分配6196691字节
快速导入:将崩溃报告转储到fast_import_crash_13097
错误:git-fast-import因信号11死亡

因此,我的系统具有32GB RAM和50GB交换空间。我在具有Git 1.8.3.4(gcc44,python2.6.8,cvs2svn2.4.0)的Red Hat 5.3上运行导入。我也尝试过限制堆栈大小和文件描述符,但是内存错误仍然存​​在。

有人知道吗?

git import git-fast-import

5
推荐指数
1
解决办法
337
查看次数

Bzr快速出口返回bzr:破管

我需要将我的bzr repo导出到git.为此,我正在尝试使用bzr fast-export --git-branch=mybranch --plain | git fast-import --force.bzr开始运行但停止并返回错误:

15:11:58 Calculating the revisions to include ... 
15:11:58 Starting export of 8961 revisions ... 
15:12:17 1000/8961 commits exported at 3155/minute  
15:12:30 2000/8961 commits exported at 3718/minute  
15:13:12 3000/8961 commits exported at 2421/minute  
fatal: Path data/sql/patch-02-27.sql not in branch 
fast-import: dumping crash report to .git/fast_import_crash_4632
bzr: broken pipe
Run Code Online (Sandbox Code Playgroud)

谁来帮帮我!谢谢!

git bazaar git-fast-import

5
推荐指数
1
解决办法
316
查看次数

从集市转换为git并同步它们的正确方法

我在集市上有一个开发库,我想将其转换为git并保持同步。我需要这样做,因为我将与不认识集市的人共享我的代码。

首先,我需要将集市仓库转换为git。我到处搜索,发现博客提到了从集市转换为git的简单步骤。但是当我尝试运行bzr fast-export它时,它说没有这样的命令。

我尝试通过安装bzr fast-export sudo apt-get install bzr-fastexport。看来我实际上必须安装fastimport。所以我尝试了:sudo apt-get install bzr-fastimport。现在,我也可以运行bzr fastexport。并且以下命令成功完成了:

bzr fast-export | git fast-import
Run Code Online (Sandbox Code Playgroud)

现在我在git中有相同的仓库。但是如何保持同步?谷歌搜索后,我发现我必须使用git-bzr-ng,但是在github仓库上没有说明。任何想法如何?或其他任何选择?

git bazaar git-fast-import

5
推荐指数
1
解决办法
1512
查看次数

没有 blob 的 Git 克隆裸仓库

在我的 git 存储库中,我使用一种算法根据分支名称和标签为每个提交分配一个或多个唯一的版本号。我想将此机制与另一个大型存储库一起使用,我想在不传输任何文件的情况下克隆它。

裸克隆帮助我摆脱了 blob 的工作副本,但它仍然从服务器下载它们。具有--depth 1跳过大多数 blob 的浅克隆,但也跳过下载除一个之外的所有提交的元数据。

git fast-export --no-data我可以在客户端使用类似的东西来获取包含提交元数据和文件名的图形信息,而无需先从我的服务器克隆存储库?理想情况下,我可以像通过git log|show|rev-parse|show-ref.

(我知道 git LFS 和 git Annex 存在并且可以帮助减少某些存储库的大小,但是我不能在不更改现有存储库的情况下使用它们。)

git metadata git-clone git-fast-import git-plumbing

5
推荐指数
2
解决办法
1704
查看次数