двунаправленная операция между репозиторием Subversion и Git (Bidirectional operation between a Subversion repository and Git)
CONFIG FILE-ONLY OPTIONS
svn.noMetadata, svn-remote.<name>.noMetadata
This gets rid of the git-svn-id: lines at the end of every
commit.
This option can only be used for one-shot imports as git svn
will not be able to fetch again without metadata.
Additionally, if you lose your $GIT_DIR/svn/**/.rev_map.*
files, git svn will not be able to rebuild them.
The git svn log command will not work on repositories using
this, either. Using this conflicts with the useSvmProps
option for (hopefully) obvious reasons.
This option is NOT recommended as it makes it difficult to
track down old references to SVN revision numbers in existing
documentation, bug reports, and archives. If you plan to
eventually migrate from SVN to Git and are certain about
dropping SVN history, consider git-filter-repo
[1] instead.
filter-repo also allows reformatting of metadata for
ease-of-reading and rewriting authorship info for
non-"svn.authorsFile" users.
svn.useSvmProps, svn-remote.<name>.useSvmProps
This allows git svn to re-map repository URLs and UUIDs from
mirrors created using SVN::Mirror (or svk) for metadata.
If an SVN revision has a property, "svm:headrev", it is
likely that the revision was created by SVN::Mirror (also
used by SVK). The property contains a repository UUID and a
revision. We want to make it look like we are mirroring the
original URL, so introduce a helper function that returns the
original identity URL and UUID, and use it when generating
metadata in commit messages.
svn.useSvnsyncProps, svn-remote.<name>.useSvnsyncprops
Similar to the useSvmProps option; this is for users of the
svnsync(1) command distributed with SVN 1.4.x and later.
svn-remote.<name>.rewriteRoot
This allows users to create repositories from alternate URLs.
For example, an administrator could run git svn on the server
locally (accessing via file://) but wish to distribute the
repository with a public http:// or svn:// URL in the
metadata so users of it will see the public URL.
svn-remote.<name>.rewriteUUID
Similar to the useSvmProps option; this is for users who need
to remap the UUID manually. This may be useful in situations
where the original UUID is not available via either
useSvmProps or useSvnsyncProps.
svn-remote.<name>.pushurl
Similar to Git's remote.<name>.pushurl
, this key is designed
to be used in cases where url points to an SVN repository via
a read-only transport, to provide an alternate read/write
transport. It is assumed that both keys point to the same
repository. Unlike commiturl, pushurl is a base path. If
either commiturl or pushurl could be used, commiturl takes
precedence.
svn.brokenSymlinkWorkaround
This disables potentially expensive checks to workaround
broken symlinks checked into SVN by broken clients. Set this
option to "false" if you track a SVN repository with many
empty blobs that are not symlinks. This option may be changed
while git svn is running and take effect on the next revision
fetched. If unset, git svn assumes this option to be "true".
svn.pathnameencoding
This instructs git svn to recode pathnames to a given
encoding. It can be used by windows users and by those who
work in non-utf8 locales to avoid corrupted file names with
non-ASCII characters. Valid encodings are the ones supported
by Perl's Encode module.
svn-remote.<name>.automkdirs
Normally, the "git svn clone" and "git svn rebase" commands
attempt to recreate empty directories that are in the
Subversion repository. If this option is set to "false", then
empty directories will only be created if the "git svn
mkdirs" command is run explicitly. If unset, git svn assumes
this option to be "true".
Since the noMetadata, rewriteRoot, rewriteUUID, useSvnsyncProps
and useSvmProps options all affect the metadata generated and
used by git svn; they must
be set in the configuration file
before any history is imported and these settings should never be
changed once they are set.
Additionally, only one of these options can be used per
svn-remote section because they affect the git-svn-id: metadata
line, except for rewriteRoot and rewriteUUID which can be used
together.