Рабочий процесс git-svn для слияния с использованием svn.pushmergeinfo

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

From http://www.kernel.org/pub/software/scm/git/docs/git -svn.html:

ключ конфигурации: svn.pushmergeinfo

Эта опция заставит git-svn попытаться автоматически заполнить свойство svn:mergeinfo в Репозиторий SVN, если это возможно. В настоящее время это можно сделать только тогда, когда dфиксация слияний без быстрой перемотки, когда все родители, кроме первого уже были помещены в SVN.

Таким образом, мой обычный рабочий процесс таков:

Предположим, что у меня есть ветка SVN ^/branches/feature_branch

# Ensure git-svn is configured to populate svn:mergeinfo
git config --global svn.pushmergeinfo true   

# Update my local svn remotes state
git svn fetch

# Track a local branch against a remote SVN backed ^/branches/feature_branch 
git checkout -b local_feature_branch remotes/feature_branch

# Modify files and commit to local git repo
git commit -a -m "changes"
# Push changes to SVN branch ^/branches/feature_branch
git svn dcommit

Затем, чтобы объединить ^/trunk в мою локальную_ветвь_функций, я предполагаю, что делаю что-то вроде?

# Sync to the latest SVN
git svn fetch
# Rebase "master" which is tracking the remote SVN ^/trunk
git checkout master
git svn rebase

# Checkout the local_feature_branch
git checkout local_feature_branch

# Merge "master" into "local_feature" which is tracking ^/trunk
git merge --squash master
git commit -m "merge master which is tracking SVN ^/trunk"

# Dry run the dcommit to SVN which should include svn:mergeinfo property changes
git svn dcommit --dry-run

# Commit merge to trunk
git svn dcommit 

11
задан David Gardiner 6 November 2014 в 03:02
поделиться