A tool for editing version-control repository history.

reposurgeon enables risky operations that version-control systems don't want to let you do, such as editing past comments and metadata and removing commits. It works with any version control system that can export and import git fast-import streams, including git, hg, fossil, bzr, CVS, RCS, and src. It can also read Subversion dump files directly and can thus be used to script production of very high-quality conversions from Subversion to any supported DVCS.


reposurgeon-3.29.tar.xzcompressed source tarball
COPYINGproject license
TODOto-do file
reposurgeon-3.29.md5source tarball MD5 checksum
NEWSproject news
reporting-bugs.htmlHow to report bugs
repodiffer.htmlHTML rendering of repodiffer.1
reposurgeon.htmlHTML rendering of reposurgeon.1
repotool.htmlHTML rendering of repotool.1
repomapper.htmlHTML rendering of repomapper.1
dvcs-migration-guide.htmlDVCS migration HOWTO
features.htmlHow reposurgeon wins

The project repository is at

Project statistics are available at OpenHub.

There is a project IRC channel.

If you appreciate this code (and especially if you make money by using it) please support me on Patreon.

Recent Changes

     Now included: git aliases that allow git to work with action stamps.
     The new repomapper tool helps prepare contributor maps.
     Use of branchify/branchify_map is now less likely to produce invalid resets.
     branchify_map has been changed to handle subdirectories better.
     "branchify_map reset" actually works now.
     Prevent a crash on empty SVN comments produced by dumpfiltering.
     'assign' command with no selection set or arguments lists assignments.
     New --user-ignores option on Subversion reads passes through .gitignores.
     'repotool initialize' now generates an easier-to-read conversion makefile.