I have read numerous SO questions and blogs on git-svn
and merging. Some of them (notably git-svn
man page) warns against using merge anywhere near the branch I plan to dcommit
from.
Others, like this SO answer, state that merging is fine as long as I use one-off feature branches that I delete before dcommitting
.
I have a setup with two long-living SVN (and git) branches:
- trunk (git-svn:
svn/trunk
, git:master
) - the stable branch - branches/devel (git-svn:
svn/devel
, git:devel
) - the main development branch from which I fork off feature branches (and I can live with rebasing them back intodevel
instead of merging).
In the picture above, (1) shows past SVN history, where branches/devel
has been merged into trunk
.
(2) shows that I have successfully dcommitted
my current development back into SVN.
The question: can I use git-svn
to merge two SVN branches so that history shows the merge point (as SVN itself can do)? In other words: what happens if I were to dcommit
from master
as shown in (3)?
Will this mess up my SVN (or git) history? Or will this just plain forget that devel
was merged into master
at all?
EDIT: If git
just forgets that devel
was merged into master
, is there a difference between dcommiting
from point (3) and applying all the commits as a single patch?