git-svn: add --follow-parent and --no-metadata options to fetch
--follow-parent: This is especially helpful when we're tracking a directory that has been moved around within the repository, or if we started tracking a branch and never tracked the trunk it was descended from.
This relies on the SVN::* libraries to work. We can't reliably parse path info from the svn command-line client without relying on XML, so it's better just to have the SVN::* libs installed.
This also removes oldvalue verification when calling update-ref
In SVN, branches can be deleted, and then recreated under the same path as the original one with different ancestry information, causing parent information to be mismatched / misordered.
Also force the current ref, if existing, to be a parent, regardless of whether or not it was specified.
--no-metadata: This gets rid of the git-svn-id: lines at the end of every commit.
With this, you lose the ability to use the rebuild command. If you ever lose your .git/svn/git-svn/.rev_db file, you won't be able to fetch again, either. This is fine for one-shot imports.
Also fix some issues with multi-fetch --follow-parent that were exposed while testing this. Additionally, repack checking is simplified greatly.
git-svn log will not work on repositories using this, either.
Signed-off-by: Eric Wong <firstname.lastname@example.org> Signed-off-by: Junio C Hamano <email@example.com>