How to save history of local branches using atomic operation git-svn dcommit?

I am developing various functions in git branches. When I want to test my code on SVN via git-svn, I do the following:

git co feature_branch
git svn rebase
git co master
git svn rebase
git merge --no-ff feature_branch
git commit --amend
git svn dcommit

This works well enough if another developer does not contact SVN at any time during this process, in which case:

  • If the SVN collection has been performed since the feature_branch and master functions are reinstalled, I get a log that looks like this:

*   4e6992a BUG-003 My SVN commit (containing cdb40ba and 3b18ea4)
|\
| * cdb40ba local commit 1
| * 3b18ea4 local commit 2
* | cf8a028 BUG-002 Another developer SVN commit
|/
* 940c613 BUG-001 Another developer SVN commit
  • If the SVN transaction is executed between the time reset wizard and the svn dcommitlast one does not work due to problems with merging (in this case I do a hard reset and start from the end)

How can I do this in one atomic operation?

+1
source share
2

, git -svn - , SVN ( , , ). , SVN-, .

Pure Git . SVN, SubGit Git ( Git , git -svn), SVN.

+3

, --no-ff. , , .

. , , , , .

:

  • , , Subversion: git checkout feature_branch.

  • , , : git svn dcommit --dry-run. , , , Subversion.

  • , , git svn rebase. , , 4.

  • : git svn dcommit. 3, .

. "master". , , , , 3 4, - , .

0

All Articles