@ -53,11 +53,13 @@ See '<<fetch-args,Additional Fetch Arguments>>' if you are interested in
manually joining branches on commit.
manually joining branches on commit.
'dcommit'::
'dcommit'::
Commit all diffs from a specified head directly to the SVN
Commit each diff from a specified head directly to the SVN
repository, and then rebase or reset (depending on whether or
repository, and then rebase or reset (depending on whether or
not there is a diff between SVN and head). It is recommended
not there is a diff between SVN and head). This will create
that you run git-svn fetch and rebase (not pull) your commits
a revision in SVN for each commit in git.
against the latest changes in the SVN repository.
It is recommended that you run git-svn fetch and rebase (not
pull or merge) your commits against the latest changes in the
SVN repository.
An optional command-line argument may be specified as an
An optional command-line argument may be specified as an
alternative to HEAD.
alternative to HEAD.
This is advantageous over 'set-tree' (below) because it produces
This is advantageous over 'set-tree' (below) because it produces
@ -408,19 +410,20 @@ See also:
git-svn multi-init
git-svn multi-init
------------------------------------------------------------------------
------------------------------------------------------------------------
REBASE VS. PULL
REBASE VS. PULL/MERGE
---------------
---------------------
Originally, git-svn recommended that the remotes/git-svn branch be
Originally, git-svn recommended that the remotes/git-svn branch be
pulled from. This is because the author favored 'git-svn set-tree B'
pulled or merged from. This is because the author favored
to commit a single head rather than the 'git-svn set-tree A..B' notation
'git-svn set-tree B' to commit a single head rather than the
to commit multiple commits.
'git-svn set-tree A..B' notation to commit multiple commits.
If you use 'git-svn set-tree A..B' to commit several diffs and you do not
If you use 'git-svn set-tree A..B' to commit several diffs and you do
have the latest remotes/git-svn merged into my-branch, you should use
not have the latest remotes/git-svn merged into my-branch, you should
'git rebase' to update your work branch instead of 'git pull'. 'pull'
use 'git rebase' to update your work branch instead of 'git pull' or
can cause non-linear history to be flattened when committing into SVN,
'git merge'. 'pull/merge' can cause non-linear history to be flattened
which can lead to merge commits reversing previous commits in SVN.
when committing into SVN, which can lead to merge commits reversing
previous commits in SVN.
DESIGN PHILOSOPHY
DESIGN PHILOSOPHY
-----------------
-----------------