Я использую git для разработки текущего проекта на моей локальной машине.Существует сервер Subversion, который я должен время от времени обновлять, основываясь на моей текущей главной ветке.
Допустим, мой каталог в svn:
project/module/
В этом каталогеэто один общий каталог и моя структура svn
project/module/aDirectory
project/module/myGitDirectory/trunk
project/module/myGitDirectory/branches
project/module/myGitDirectory/tags
Следуя git-svn, я настроил свой git на использование каталога в качестве апстрима:
[svn-remote "svn"]
url = https://mygit.test.com/project
fetch = module/myGitDirectory/trunk:refs/remotes/trunk
branches = module/myGitDirectory/branches/*:refs/remotes/*
tags = module/myGitDirectory/tags/*:refs/remotes/tags/*
Я нормально работал в git и зафиксировал мойизменяется только с
git svn dcommit
на частичное дерево SVN
Это работало довольно хорошо, пока кто-то еще не совершил в
project/module/aDirectory
, которого нет в моем локальном репозитории git.
Ошибка для git svn dcommit
была:
Unable to determine upstream SVN information from HEAD history.
Я нашел эту проблему в Google и нашел здесь несколько решений, но решения не помогли мне.Либо это не сработало вообще, либо мне пришлось объединить десятки файлов, которые мне не нужны.Мой текущий обходной путь - извлечение полного svn, копирование изменений из git в svn repo и просто их фиксация.
Так что мой вопрос, возможно ли использовать такое частичное дерево svn в git-svn, как яделать?Я сделал какую-то ошибку, указав неправильные каталоги для git-svn?Или git-svn не является подходящим решением для моего сценария.
И если я могу сделать это так, как я начал, что произойдет с svn, фиксирующим файлы, которые не отслеживаются в моем локальном git?
Я использую комбинацию svn и git в некоторых других проектах и никогда не сталкивался с какими-либо проблемами, но там все дерево svn также управляется в git.Таким образом, каждый коммит в svn имеет подходящее место в моем git-репо:)