Здесь есть похожие вопросы и здесь , однако они не совпадают, так как они спрашивают об использовании вместе ртути и подрывной деятельности в общем смысле.
Считывая страницу Mercurial и Subversion , есть четыре варианта: hgsubversion, mq, convert и hgsvn. Для hgsubversion и convert требуется полная локальная копия репозитория, а мой репозиторий огромен (более 10 гигабайт), в основном в бинарных чеках, которые мне не нужны, поэтому я не заинтересован в этой опции. С другой стороны, mq не позволяет выполнять поиск по истории в автономном режиме, поэтому он побеждает одну из основных причин желания использовать mercurial.
Это сужает параметры до использования hgsvn. Я установил это и играю с ним, и он, кажется, делает большую часть того, что я хочу. По разным причинам, главным образом из-за дискового пространства, мне не особо важна история более шести месяцев назад, поэтому я хотел бы иметь возможность хранить только шесть месяцев истории. Однако когда вы используете hgimportsvn для настройки своей копии дерева svn, вы устанавливаете начальный репозиторий на импорт, и нет способа (с помощью hgsvn) удалить эти начальные ревизии, когда они выходят из шестимесячного окна.
Глядя на https://www.mercurial -scm.org / wiki / EditingHistory , похоже, нет легко автоматизируемого способа сделать это. Расширение HistEdit позволяет делать именно то, что я хочу, но не похоже на сценарий. Мое понимание MQ состоит в том, что он не будет делать то, что я хочу, поскольку он никогда не удалит первую ревизию, хотя потенциально может использоваться для сворачивания некоторых средних ревизий.
Редактировать : Чтобы попытаться немного прояснить мой вопрос.
По сути, я хочу сохранить последние 1000 ревизий Subversion в моем ртутном хранилище. Это легко сделать, чтобы начать:
hgimportsvn -r$((TRUNKREV-1000)) $TRUNKURL
Однако через неделю в моем ртутном хранилище теперь 1200 ревизий, поэтому я хочу снова сократить его до 1000, удалив / свернув первые 200 ревизий.
Кто-нибудь знает, как это сделать?