Сохранение истории за один месяц при использовании Mercurial в качестве интеллектуального локального кэша для Subversion - PullRequest
1 голос
/ 03 декабря 2009

Здесь есть похожие вопросы и здесь , однако они не совпадают, так как они спрашивают об использовании вместе ртути и подрывной деятельности в общем смысле.

Считывая страницу 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 ревизий.

Кто-нибудь знает, как это сделать?

1 Ответ

2 голосов
/ 03 декабря 2009

Не можете использовать расширение для преобразования с параметром --config convert.svn.startrev = STARTREV?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...