Я использую git-svn для отслеживания и работы с несколькими ветками svn с помощью git.Я использую следующую конфигурацию в .git/config
файле:
[svn-remote "svn"]
url = https://example.com/svn/some-dir/project-name/
fetch = trunk:refs/remotes/svn-trunk
fetch = branch/Topic:refs/remotes/svn-topic
Это отслеживает две ветви, ствол иногда объединяется в тему и обычно , работает просто отлично.Но с one, конкретным svn-репозиторием , git svn fetch --fetch-all
выдает следующую ошибку: Couldn't find revmap for https://example.com/svn/some-dir/project-name/some-dir/project-name/trunk
.И, конечно же, слияния не отражаются в истории git.
Основная, основная проблема: очевидно, неверный путь - "some-dir/project-name/
" повторяется дважды.Но, как я уже писал, для внутреннего svn это работает просто отлично.
Итак, что вызывает эту проблему и как я могу ее исправить?
Я попытался изменить конфигурацию следующим образом:
[svn-remote "svn"]
url = https://example.com/svn/
fetch = some-dir/project-name/trunk:refs/remotes/svn-trunk
fetch = some-dir/project-name/branch/Topic:refs/remotes/svn-topic
В этом случае команда git svn fetch --fetch-all
выдает следующую ошибку: W: Item is not readable: Item is not readable at /mingw64/share/perl5/site_perl/Git/SVN.pm line 153.
.
В качестве обходного пути я использую git replace --graft
(и соответственно изменяю файл .git/refs/remotes/svn-topic
) длявручную сохраняйте историю слияний, но это, очевидно, взлом.
Мое окружение:
- Windows 10 64 бит
- git версии 2.14.2.windows.3
- svn: неизвестно (это не под моим контролем)