Filtering Subversion paths
The default behavior is not to exclude any path in Subversion; however for
large repositories with many tags/
folders or
situations where only part of a Subversion repository is to be converted
you may wish to exclude certain Subversion paths. Subversion path
exclusion is possible using two map files exclude.map
and include.map
.
The filtering is based on matching the Subversion path to a regular
expression in the map files. The exclude.map
file is
processed first and if the pattern matches part of the path then that path
is skipped. The include.map
file can be used to
overlay the exclude.map
file re-adding paths that
were skipped. Before a conversion can start the filters must be verified
against the Dump file (typically this is fairly quick and a displays a
progress indicator).
The verification step is to prevent the situation where an excluded path
is relied on at a later point in the history for a branch, copy or merge
action. If such a situation is found the paths are logged and the excluded
source path
is added to the
issue.map
file. To resolve the issue the exclusion
should be removed from the exclude.map
file or a
regular expression, based on the issue.map
file,
added to the include.map
file.
For example; to exclude all Subversion tags in the folder 'tags/', create
an exclusion map file exclude.map
:
# exclude Subversion tags:
^tags/.*
Then start the conversion to verify the map:
pallen-mac:main$ java -jar dist/p4convert.jar --config=Config/foo.cfg loading ChangeMap: changeMap.txt loading TypeMap: types.map importing revisions: 1 to 20635 out of 20635 exclude.map: ^tags/.* Verifying exclusion map... issue: tags/rel-1.0.14/api issue: tags/rel-1.0.14/sys issue: tags/rel-2.0.3 Issues found, saving issue map... Caught EXIT shutting down ...
Looking at the reported issues the tags 'rel-1.0.14' and 'rel-2.0.3' have some actions that conflict with our exclusion, to resolve this simply add the exclusions to the 'include.map' file:
# issues reported for tags/ folder
^tags/rel-1.0.14/.*
^tags/rel-2.0.3/.*