Browse Source

Documentation/git-svn: clarify dcommit, rebase vs pull/merge

Clarify that dcommit creates a revision in SVN for every commit
in git.  Also, add 'merge' to the rebase vs pull section because
git-merge is now a first-class UI.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Eric Wong 18 years ago committed by Junio C Hamano
parent
commit
2eff14259e
  1. 33
      Documentation/git-svn.txt

33
Documentation/git-svn.txt

@ -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
----------------- -----------------

Loading…
Cancel
Save