git-svn.txt: elaborate on rev_map files

The man page for `git svn` describes a situation in which "'git svn'
will not be able to rebuild" your $GIT_DIR/svn/**/.rev_map* files, but
no mention is made of in what circumstances `git svn` *will* be able to
do so, how to get `git svn` to do so, or even what these files are.

This patch adds a FILES section to the man page with a description of
what $GIT_DIR/svn/**/.rev_map* files are and how they are (re)built, and
links to this description from various other parts of the man page.

Signed-off-by: Keshav Kini <keshav.kini@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Keshav Kini 2013-09-29 18:46:00 -05:00 committed by Eric Wong
parent 6fe7a30aec
commit 945b9c14ff

View File

@ -106,6 +106,9 @@ COMMANDS
tracking. The name of the [svn-remote "..."] section in the tracking. The name of the [svn-remote "..."] section in the
$GIT_DIR/config file may be specified as an optional $GIT_DIR/config file may be specified as an optional
command-line argument. command-line argument.
+
This automatically updates the rev_map if needed (see
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
--localtime;; --localtime;;
Store Git commit times in the local timezone instead of UTC. This Store Git commit times in the local timezone instead of UTC. This
@ -201,6 +204,9 @@ accept. However, '--fetch-all' only fetches from the current
+ +
Like 'git rebase'; this requires that the working tree be clean Like 'git rebase'; this requires that the working tree be clean
and have no uncommitted changes. and have no uncommitted changes.
+
This automatically updates the rev_map if needed (see
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
-l;; -l;;
--local;; --local;;
@ -449,9 +455,10 @@ Any other arguments are passed directly to 'git log'
file cannot be ignored forever (with --ignore-paths) the only file cannot be ignored forever (with --ignore-paths) the only
way to repair the repo is to use 'reset'. way to repair the repo is to use 'reset'.
+ +
Only the rev_map and refs/remotes/git-svn are changed. Follow 'reset' Only the rev_map and refs/remotes/git-svn are changed (see
with a 'fetch' and then 'git reset' or 'git rebase' to move local '$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
branches onto the new tree. Follow 'reset' with a 'fetch' and then 'git reset' or 'git rebase' to
move local branches onto the new tree.
-r <n>;; -r <n>;;
--revision=<n>;; --revision=<n>;;
@ -684,7 +691,7 @@ svn-remote.<name>.noMetadata::
+ +
This option can only be used for one-shot imports as 'git svn' This option can only be used for one-shot imports as 'git svn'
will not be able to fetch again without metadata. Additionally, will not be able to fetch again without metadata. Additionally,
if you lose your $GIT_DIR/svn/\*\*/.rev_map.* files, 'git svn' will not if you lose your '$GIT_DIR/svn/\*\*/.rev_map.*' files, 'git svn' will not
be able to rebuild them. be able to rebuild them.
+ +
The 'git svn log' command will not work on repositories using The 'git svn log' command will not work on repositories using
@ -1063,6 +1070,19 @@ or tag has appeared. If the subset of branches or tags is changed after
fetching, then $GIT_DIR/svn/.metadata must be manually edited to remove fetching, then $GIT_DIR/svn/.metadata must be manually edited to remove
(or reset) branches-maxRev and/or tags-maxRev as appropriate. (or reset) branches-maxRev and/or tags-maxRev as appropriate.
FILES
-----
$GIT_DIR/svn/\*\*/.rev_map.*::
Mapping between Subversion revision numbers and Git commit
names. In a repository where the noMetadata option is not set,
this can be rebuilt from the git-svn-id: lines that are at the
end of every commit (see the 'svn.noMetadata' section above for
details).
+
'git svn fetch' and 'git svn rebase' automatically update the rev_map
if it is missing or not up to date. 'git svn reset' automatically
rewinds it.
SEE ALSO SEE ALSO
-------- --------
linkgit:git-rebase[1] linkgit:git-rebase[1]