Я получил эту работу, удалив код, который проверяет информацию о коммитере в расширении 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
будет использовать информацию об авторе для даты. Вам нужно будет скопировать расширение конвертации из ссылки на репозиторий, изменить его и затем добавить в TortoiseHg.
Почему это нужно сделать:
При фиксации с помощью git
в метаданных набора изменений есть две записи: committer
и author
.
Автор - лицо, ответственное за код.
Отправитель - это лицо, которое фактически внесло изменения в хранилище.
Это различие важно в проекте с открытым исходным кодом, где тот, кто создал код, не обязательно тот, кто его фиксирует в репозитории: обычно есть сопровождающие (коммиттеры) проекта, которые принимают запросы извлечения от участника (автор) и зафиксируйте его в хранилище.
Vault2Git
использует информацию о регистрации Vault (коммиттер и дату принятия) в качестве информации об авторе git changeset. Информация о коммитере git использует информацию о пользователе git и фактическую дату фиксации (ваш пользователь по умолчанию для хранилища). Вы можете увидеть эту разницу, выполнив git cat-file <rev hash>
для набора изменений, который Vault2Git
делает.
Это прекрасно работает для git, но когда вы запускаете hg convert
, Mercurial использует имя author
и дату committer
для создания метаданных набора изменений Mercruial.