git-svn: documentation updates

Eliminate 'commit' from some places and plug 'dcommit' more.
Also update the section --id (GIT_SVN_ID) usage since we
have multi-init/multi-fetch now.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Eric Wong 2006-11-28 18:51:41 -08:00 committed by Junio C Hamano
parent 9aca025849
commit 4511c899e6

View file

@ -49,7 +49,7 @@ latest revision.
Note: You should never attempt to modify the remotes/git-svn Note: You should never attempt to modify the remotes/git-svn
branch outside of git-svn. Instead, create a branch from branch outside of git-svn. Instead, create a branch from
remotes/git-svn and work on that branch. Use the 'commit' remotes/git-svn and work on that branch. Use the 'dcommit'
command (see below) to write git commits back to command (see below) to write git commits back to
remotes/git-svn. remotes/git-svn.
@ -274,7 +274,7 @@ ADVANCED OPTIONS
-b<refname>:: -b<refname>::
--branch <refname>:: --branch <refname>::
Used with 'fetch' or 'commit'. Used with 'fetch', 'dcommit' or 'commit'.
This can be used to join arbitrary git branches to remotes/git-svn This can be used to join arbitrary git branches to remotes/git-svn
on new commits where the tree object is equivalent. on new commits where the tree object is equivalent.
@ -368,7 +368,7 @@ SVN was very wrong.
Basic Examples Basic Examples
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
Tracking and contributing to an Subversion managed-project: Tracking and contributing to a Subversion-managed project:
------------------------------------------------------------------------ ------------------------------------------------------------------------
# Initialize a repo (like git init-db): # Initialize a repo (like git init-db):
@ -377,10 +377,9 @@ Tracking and contributing to an Subversion managed-project:
git-svn fetch git-svn fetch
# Create your own branch to hack on: # Create your own branch to hack on:
git checkout -b my-branch remotes/git-svn git checkout -b my-branch remotes/git-svn
# Commit only the git commits you want to SVN: # Do some work, and then commit your new changes to SVN, as well as
git-svn commit <tree-ish> [<tree-ish_2> ...] # automatically updating your working HEAD:
# Commit all the git commits from my-branch that don't exist in SVN: git-svn dcommit
git-svn commit remotes/git-svn..my-branch
# Something is committed to SVN, rebase the latest into your branch: # Something is committed to SVN, rebase the latest into your branch:
git-svn fetch && git rebase remotes/git-svn git-svn fetch && git rebase remotes/git-svn
# Append svn:ignore settings to the default git exclude file: # Append svn:ignore settings to the default git exclude file:
@ -404,26 +403,24 @@ which can lead to merge commits reversing previous commits in SVN.
DESIGN PHILOSOPHY DESIGN PHILOSOPHY
----------------- -----------------
Merge tracking in Subversion is lacking and doing branched development Merge tracking in Subversion is lacking and doing branched development
with Subversion is cumbersome as a result. git-svn completely forgoes with Subversion is cumbersome as a result. git-svn does not do
any automated merge/branch tracking on the Subversion side and leaves it automated merge/branch tracking by default and leaves it entirely up to
entirely up to the user on the git side. It's simply not worth it to do the user on the git side.
a useful translation when the original signal is weak.
[[tracking-multiple-repos]] [[tracking-multiple-repos]]
TRACKING MULTIPLE REPOSITORIES OR BRANCHES TRACKING MULTIPLE REPOSITORIES OR BRANCHES
------------------------------------------ ------------------------------------------
This is for advanced users, most users should ignore this section.
Because git-svn does not care about relationships between different Because git-svn does not care about relationships between different
branches or directories in a Subversion repository, git-svn has a simple branches or directories in a Subversion repository, git-svn has a simple
hack to allow it to track an arbitrary number of related _or_ unrelated hack to allow it to track an arbitrary number of related _or_ unrelated
SVN repositories via one git repository. Simply set the GIT_SVN_ID SVN repositories via one git repository. Simply use the --id/-i flag or
environment variable to a name other other than "git-svn" (the default) set the GIT_SVN_ID environment variable to a name other other than
and git-svn will ignore the contents of the $GIT_DIR/svn/git-svn directory "git-svn" (the default) and git-svn will ignore the contents of the
and instead do all of its work in $GIT_DIR/svn/$GIT_SVN_ID for that $GIT_DIR/svn/git-svn directory and instead do all of its work in
invocation. The interface branch will be remotes/$GIT_SVN_ID, instead of $GIT_DIR/svn/$GIT_SVN_ID for that invocation. The interface branch will
remotes/git-svn. Any remotes/$GIT_SVN_ID branch should never be modified be remotes/$GIT_SVN_ID, instead of remotes/git-svn. Any
by the user outside of git-svn commands. remotes/$GIT_SVN_ID branch should never be modified by the user outside
of git-svn commands.
[[fetch-args]] [[fetch-args]]
ADDITIONAL FETCH ARGUMENTS ADDITIONAL FETCH ARGUMENTS
@ -486,7 +483,8 @@ If you are not using the SVN::* Perl libraries and somebody commits a
conflicting changeset to SVN at a bad moment (right before you commit) conflicting changeset to SVN at a bad moment (right before you commit)
causing a conflict and your commit to fail, your svn working tree causing a conflict and your commit to fail, your svn working tree
($GIT_DIR/git-svn/tree) may be dirtied. The easiest thing to do is ($GIT_DIR/git-svn/tree) may be dirtied. The easiest thing to do is
probably just to rm -rf $GIT_DIR/git-svn/tree and run 'rebuild'. probably just to rm -rf $GIT_DIR/git-svn/tree and run 'rebuild'. You
can avoid this problem entirely by using 'dcommit'.
We ignore all SVN properties except svn:executable. Too difficult to We ignore all SVN properties except svn:executable. Too difficult to
map them since we rely heavily on git write-tree being _exactly_ the map them since we rely heavily on git write-tree being _exactly_ the