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>

Keshav Kini committed Sep 29, 2013 at 18:46 UTC 945b9c14ffd3e11c916ee2b2428a0b2be9645829
1 file changed +24 -4
Documentation/git-svn.txt
+24 -4
@@ -106,6 +106,9 @@ COMMANDS
106 tracking. The name of the [svn-remote "..."] section in the
107 $GIT_DIR/config file may be specified as an optional
108 command-line argument.
109 ++
110 +This automatically updates the rev_map if needed (see
111 +'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
112
113 --localtime;;
114 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
204 +
205 Like 'git rebase'; this requires that the working tree be clean
206 and have no uncommitted changes.
207 ++
208 +This automatically updates the rev_map if needed (see
209 +'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
210
211 -l;;
212 --local;;
@@ -449,9 +455,10 @@ Any other arguments are passed directly to 'git log'
455 file cannot be ignored forever (with --ignore-paths) the only
456 way to repair the repo is to use 'reset'.
457 +
452 -Only the rev_map and refs/remotes/git-svn are changed. Follow 'reset'
453 -with a 'fetch' and then 'git reset' or 'git rebase' to move local
454 -branches onto the new tree.
458 +Only the rev_map and refs/remotes/git-svn are changed (see
459 +'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
460 +Follow 'reset' with a 'fetch' and then 'git reset' or 'git rebase' to
461 +move local branches onto the new tree.
462
463 -r <n>;;
464 --revision=<n>;;
@@ -684,7 +691,7 @@ svn-remote.<name>.noMetadata::
691 +
692 This option can only be used for one-shot imports as 'git svn'
693 will not be able to fetch again without metadata. Additionally,
687 -if you lose your $GIT_DIR/svn/\*\*/.rev_map.* files, 'git svn' will not
694 +if you lose your '$GIT_DIR/svn/\*\*/.rev_map.*' files, 'git svn' will not
695 be able to rebuild them.
696 +
697 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
1070 fetching, then $GIT_DIR/svn/.metadata must be manually edited to remove
1071 (or reset) branches-maxRev and/or tags-maxRev as appropriate.
1072
1073 +FILES
1074 +-----
1075 +$GIT_DIR/svn/\*\*/.rev_map.*::
1076 + Mapping between Subversion revision numbers and Git commit
1077 + names. In a repository where the noMetadata option is not set,
1078 + this can be rebuilt from the git-svn-id: lines that are at the
1079 + end of every commit (see the 'svn.noMetadata' section above for
1080 + details).
1081 ++
1082 +'git svn fetch' and 'git svn rebase' automatically update the rev_map
1083 +if it is missing or not up to date. 'git svn reset' automatically
1084 +rewinds it.
1085 +
1086 SEE ALSO
1087 --------
1088 linkgit:git-rebase[1]