У меня есть репозиторий Git, который клонируется из другого репозитория Git, который является клоном из гигантского репо SVN. Мы можем обновить другое репозиторий Git из SVN и передать его на SVN, но с другим пользователем.
Я хочу публиковать свои локальные коммиты в SVN-репо прямо со своим собственным пользователем.
Это то, что я пробовал: я вручную создал ветвь git-svn
, добавив ее в .git/config
[branch "master"]
[svn-remote "svn"]
url = https://url/to/svn/trunk/repo_name
fetch = :refs/remotes/git-svn
Затем git svn fetch
, загруженный 32k совершает.
Но я закончил с двумя непересекающимися историями:
- Один из Git:
- Начиная с commit
674c35a
, который представляет состояние репо SVN в точке исходного клона. - Филиал
master
всегда синхронизируется с SVN (через другое Git repo). - В ветке
dev
есть наши текущие разработки, которые должны быть объединены сmaster
(обычно раздавлены), а затем переданы обратно в репозиторий SVN.
- Начиная с commit
- Один для репо SVN:
- Начинается с правильной начальной фиксации.
- Он имеет значение 30k +.
- Конец, который Git изначально был клонирован из SVN [
fb1b9c7
] (но только с отличием от предыдущих коммитов, а не с полным репо в качестве фиксации начала). - Тогда то же самое фиксирует (100+), что должно быть общим для
git/origin/master
.
Как я могу сказать Git, что начальная фиксация (674c35a
) на самом деле совпадает с фиксацией SVN (fb1b9c7
)? Таким образом, Git может как-то понять, что коммиты в master
, после клонирования, на самом деле такие же, как git-svn
?
Я попытался переустановить --onto
, как описано здесь, но это было не совсем то, что я хотел (коммиты не находятся в верхней части ветки).