Как я могу отслеживать одну ветку на Subversion с помощью Git - PullRequest
0 голосов
/ 29 января 2010

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

Git branch | SVN branch
-----------------------
master     | Trunk
feature1   | <not mapped>
feature2   | <not mapped>

чтобы после слияния с git / master и последующим dcommit Trunk обновлялся только с изменениями между последним svn commit и git / HEAD.

Возможно ли это? как бы я это сделал?

1 Ответ

1 голос
/ 29 января 2010

Документация git svn описывает работу со стволом Subversion, но с грязным мастером:

# Clone a repo (like git clone):
    git svn clone http://svn.example.com/project/trunk
# Enter the newly cloned directory:
    cd trunk
# You should be on master branch, double-check with 'git branch'
    git branch
# Do some work and commit locally to git:
    git commit ...
# Something is committed to SVN, rebase your local changes against the
# latest changes in SVN:
    git svn rebase
# Now commit your changes (that were committed previously using git) to SVN,
# as well as automatically updating your working HEAD:
    git svn dcommit
# Append svn:ignore settings to the default git exclude file:
    git svn show-ignore >> .git/info/exclude

Для выполнения вашей работы над функциональными ветвями вместо основного

git checkout -b feature1
hack ...
git add ...
git commit ...

Когда вы будете готовы вернуть свою работу в Subversion, не забудьте сохранить свою историю линейной:

git checkout master
git svn rebase
git rebase master feature1
git checkout master
git merge feature1

Отправь!

git svn dcommit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...