Сценарий:
У меня есть 2 репозитория Hg: один, который отслеживает SVN-репозиторий, скажем SVN-track , и локальный pure-Hg репозиторий, в который я перетаскиваю наборы изменений из первого.
Я помещаю ревизии из моего репо pure-Hg в репо SVN-track , затем перебираю сдвинутые ревизии в репо SVN-track до история хороша и прямолинейна, так что я могу перейти к хранилищу SVN.
После того как я нажал на SVN, hgsubversion извлекает набор изменений из SVN и удаляет исходный набор изменений. Вот как он отслеживает, я понимаю (но ... почему бы просто не сохранить оригинал и не отслеживать это ?).
Проблема:
Теперь, если вы долго зависали, возникает проблема: я хочу перетащить наборы изменений SVN обратно в репозиторий pure-Hg , но все исходные наборы изменений возвращаются как дупл (но с разные идентификаторы узлов) на другой голове. Возможно, я смогу перебазировать все наборы изменений, которые я добавил в репозиторий pure-Hg , но тогда я потеряю историю и, на самом деле, это кажется слишком большой работой. Я также мог бы просто жить с ревизиями pull-SVN с дублированным контентом и локальным слиянием, но в результате получаемые результаты возвращаются к SVN-track все сложнее и сложнее.
Вопросы:
- Есть ли какой-нибудь лучший способ выполнить этот рабочий процесс, который я не могу предугадать без посторонней помощи?
- Если нет, то как заменить исходные наборы изменений, которые hgsubversion возвращает из SVN в pure-Hg ?
- Почему hgsubversion (замечательный инструмент поддержки по большей части) должен возвращать наборы изменений SVN просто для их отслеживания, не может ли он просто сохранить исходный набор изменений и добавить строку к
.hg/svn/rev_map
, указывающую исходный идентификатор набора изменений?
- Если это так, что за хитрость?