使用https://github.com/AndreyNikiforov/vault2git我能够将Vault repo转换为Git,然后使用Mercurial的hg convert
来获得hg repo。唯一的问题是在运行hg convert
后,更改集合提交日期的日期不正确。Vault to Git到Mercurial不能保存日期
日期显示更改集从got到mercurial而不是提交日期转换的时间。
我还需要做些什么来保存日期吗?
使用https://github.com/AndreyNikiforov/vault2git我能够将Vault repo转换为Git,然后使用Mercurial的hg convert
来获得hg repo。唯一的问题是在运行hg convert
后,更改集合提交日期的日期不正确。Vault to Git到Mercurial不能保存日期
日期显示更改集从got到mercurial而不是提交日期转换的时间。
我还需要做些什么来保存日期吗?
我得到这个通过删除检查在hg convert
git
扩展提交者信息的文件中https://www.mercurial-scm.org/repo/hg-stable/file/09b200396384/hgext/convert/git.py行125
到130
代码工作:
if n == "committer":
p = v.split()
tm, tz = p[-2:]
committer = " ".join(p[:-2])
if committer[0] == "<": committer = committer[1:-1]
committer = self.recode(committer)
一旦你删除此,hg convert
将用于作者信息日期。您需要复制repo链接中的convert扩展名,对其进行修改,然后将其添加到TortoiseHg。
为什么这需要做:
当git
犯,有两个记录在变更元数据:committer
和author
。
作者是代码负责人。
提交者实际上是对存储库进行了更改的人员。
这种区别是一个开源项目,其中谁编写代码的人并不一定是其提交至仓库的人员很重要:通常有接受拉项目的维护者(提交者)来自贡献者(作者)的请求并将其提交到存储库。
Vault2Git
使用Vault签入信息(提交者和提交日期)作为git changeset作者信息。 git提交者信息使用git用户的信息和提交的实际日期(您的存储库的默认用户)。您可以通过对Vault2Git
所做的更改集执行git cat-file <rev hash>
来查看此差异。
这适用于git,但是当您运行hg convert
时,Mercurial使用author
名称和committer
日期创建Mercruial变更集元数据。
可能是多余的问题,但为什么你会进一步从git转换为mercurial? :) – favoretti
我的目标是让repo进入mercurial,而vault2git是我找到的唯一的x库。 – Omar
@Omar git仓库中的时间戳是否正确? – Rudi