Отправьте локальное хранилище git-svn в другое удаленное хранилище SVN, которое уже существует - PullRequest
0 голосов
/ 16 сентября 2011

Я пытаюсь объединить два репозитория SVN. Один является своего рода вилкой другого. Но это не совсем вилка, поэтому я не могу найти общую точку.

Я клонировал оба репо в одном локальном репозитории git-svn, каждое репо в одной ветви, и я уже интегрировал оба репо, но знаю, что мне нужно перенести изменения в одно из оригинальных репо. Я пытаюсь определить лучший рабочий процесс для загрузки изменений, сохраняя историю. Я думаю, что это должно быть что-то вроде этого:

# Move the trunk of the remote repo to a branch
$ svn move svn+ssh://host.example.com/repos/project/trunk svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH -m "Creating a branch of project"

# Make a commit that explains the change that is going to happen

# Change to the branch that tracks the remote repo, and fetch the changes
$ git checkout myBranch
$ git svn rebase

# The folder should be empty at this point

# Upload the local changes to the trunk of the remote repo
$ git merge integrationBranch

# ¿rewrite the history?

# Upload it
$ git svn dcommit

Я не могу найти лучшего объяснения , но я думаю, что git svn dcommit использует git-svn-id последнего коммита для фигуры, который является URL для нажатия, так что я думаю, что в какой-то момент я должен переписать историю, но я не знаю как.

Также, если кто-то может предоставить способ сделать тест до того, как загрузить его, это будет здорово.

1 Ответ

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

После некоторых исследований я нашел, как переписать историю на основе этого поста . Чтобы изменить git-svn-id, я использую:

git filter-branch --msg-filter  'sed "s/git-svn-id:.*//g"' myBranch
...