Как импортировать ртутный патч с другой структурой каталогов - PullRequest
3 голосов
/ 19 марта 2010

У меня есть патч, сделанный с hg export 42 в другом репозитории, который изменяет файлы

asd/fgh/foo/bar.c
asd/fgh/foo/fish.h
boo/hoo.txt

Мне нужно импортировать этот патч в репозиторий, который имеет следующую структуру:

src/foo/bar.c
src/foo/fish.h
boo/hoo.txt

Есть ли какая-либо команда, которая может выполнить это - я могу повторно запустить hg export на старом репо, если это необходимо, и готов игнорировать файлы с одинаковым путем (например, boo/hoo.txt) )

Первоначально я думал, что hg import -p3 patch.diff в repository/src сделал бы это, но, очевидно, он все еще хочет создать иерархию asd/fgh/ на верхнем уровне (и поместить туда файлы .rej)

Ответы [ 2 ]

2 голосов
/ 19 марта 2010

Один из вариантов - зайти в файл патча и просто изменить названия.Несколько поисков и замен, и вы, вероятно, готовы.

Единственная известная мне команда mercurial, которая принимает карту перевода имен файлов, - это команда 'convert', поэтому, вероятно, можно найти решение, выполнив командустарого репо через что-то вроде hg convert --filemap thefilemap exportingrepo newexportingrepo, где в файле есть файл:

rename asd/fgh src

, затем экспортируйте его из newexportingrepo и импортируйте в принимающее репо.

Я, я бы, наверное, отредактировал вручнуюпатч.:)

0 голосов
/ 20 марта 2010

вы всегда можете сделать это в два изменения. переименуйте каталоги, затем примените патч.

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