У меня есть хранилище. В середине его жизненного цикла я удалил из него много ненужных файлов (я решил оставить их без изменений).
hg remove
hg commit
Репо становится все больше и больше.
И я решил избавиться от старых ревизий от начальной до ревизии, где было удалено много файлов (назовем это X).
Другими словами, я хочу объединить эти ревизии (от начального до X) в одну начальную ревизию.
Но в то же время, чтобы сохранить историю следующих ревизий (X + 1 и т. Д.), Как они есть.
Я гуглил решение, но не смог.
И не нашел ничего умного, чем сделать это:
hg init newrepo
cd oldrepo
hg archive -r X newrepo
hg export -r X+1: -o "~/patches/%R-%h.diff"
cd newrepo
hg commit -A -m 'initial release (after archiving)'
hg import ~/patches/*.diff
И, черт побери, после нескольких успешно примененных патчей
Я получаю:
Hunk #1 FAILED at xxx
Hunk #2 FAILED at xxx
2 out of 2 hunks FAILED -- saving rejects to file xxx.rej
abort: patch failed to apply
Что я делаю не так?
У меня 1 репо без веток (точнее, до ревизии X все ветви были объединены).
Второе решение было
* HG конвертировать в SVN
* HG конвертировать в Mercurial от Revisiob X + 1
Сбой при обратной трассировке Python (вероятно, это было вызвано тем, что в нашем репо было около 3K файлов).