Проблемы при применении исправления SVN к ртутному хранилищу - PullRequest
5 голосов
/ 09 марта 2010

Файл исправления сделан с помощью TortoiseSVN-> Создать исправление ...

Попытка импортировать патч в хранилище Mercurial с помощью hg import patchfile.

Кажется, есть проблемы с тем, как hg выглядит для файлов, на которые есть ссылки в файле патча:

unable to find 'gui/gui/RemoteFramework.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file gui/gui/RemoteFramwork.cpp.rej

Похоже, это проблема того, где был сделан патч с точки зрения каталогов и где его следует применять. Я пытался поиграть с опцией --base для импорта hg, но пока ничего не получил.

У кого-нибудь есть советы?

Ответы [ 2 ]

10 голосов
/ 13 марта 2010

Я подозреваю, что вам нужно сделать hg import --strip 0 patchfile, поскольку Subversion не содержит префикса в пути к файлу. --base указывает, где следует искать файлы, а --strip указывает, сколько элементов пути (по умолчанию 1) игнорировать в начале заголовков diff.

0 голосов
/ 27 сентября 2011

У меня была такая же проблема при переносе моего проекта, CartoType, из Subversion в Mercurial. Я проверил материал Subversion в C: \ CartoType и клон репозитория Mercurial в C: \ CartoType-mercurial.

Я использовал TortoiseSVN для создания унифицированных файлов diff и обнаружил, что в них используются пути типа C: /CartoType/src/main/router/cartotype_router.h. Запустив hg patch в C: \ CartoType-mercurial, я обнаружил, что правильно сделать, чтобы убрать два элемента с пути, таким образом:

hg patch -p2 c:\temp\patch1982.diff

Другая важная вещь, которую мне нужно было сделать, это заменить строки 'Index' в файле diff на комментарии о регистрации, потому что именно здесь hg patch их получает. Так что в этом примере мне пришлось изменить первую строку моего файла различий с

Index: C:/CartoType/src/main/router/cartotype_router.h

до

Added an optional parameter to NewRoadOrWalkingRouter... (etc.)

Если в файле diff несколько строк индекса, измените их все на один и тот же комментарий для регистрации.

...