Difference between revisions of "Reposurgeon"
Jump to navigation
Jump to search
(revert edits to fix search where character encoding was a problem) |
(link to repopuller) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
[https://gitlab.com/esr/reposurgeon Reposurgeon] is a tool by Eric Raymond that is for editing version-control repositories. It can be used to migrate from one system to another; like [[Git/migrating_to_git|migrating from Subversion to Git]]. A lot of large software projects <ref>e.g. [http://wiki.blender.org/index.php/Dev:Ref/Proposals/MigrationToGit Blender], [https://wiki.mozilla.org/ReleaseEngineering/How_To/VCSSync Mozilla], [http://esr.ibiblio.org/?p=4071 Network UPS Tools] </ref>have migrated from Subversion to Git, and reposurgeon is one of the few tools that can actually accomplish large migrations. | [https://gitlab.com/esr/reposurgeon Reposurgeon] is a tool by Eric Raymond that is for editing version-control repositories. It can be used to migrate from one system to another; like [[Git/migrating_to_git|migrating from Subversion to Git]]. A lot of large software projects <ref>e.g. [http://wiki.blender.org/index.php/Dev:Ref/Proposals/MigrationToGit Blender], [https://wiki.mozilla.org/ReleaseEngineering/How_To/VCSSync Mozilla], [http://esr.ibiblio.org/?p=4071 Network UPS Tools] </ref>have migrated from Subversion to Git, and reposurgeon is one of the few tools that can actually accomplish large migrations. | ||
− | |||
− | |||
[http://esr.ibiblio.org/?p=4071 From January 2012]: | [http://esr.ibiblio.org/?p=4071 From January 2012]: | ||
− | <blockquote>One of my requirements was that the user should not have to declare the branch structure! | + | <blockquote>One of my requirements was that the user should not have to declare the branch structure! be able to read the detailed rules on reposurgeon 2.manual page; the short version is that if trunk is present, then trunk, branches/*, and tags/* are treated as candidate branches, and so is every other directory immediately under the repository root. But: a candidate branch is turned into a tag if there are no commits after the copy that created it. |
</blockquote> | </blockquote> | ||
Line 59: | Line 57: | ||
</source> | </source> | ||
− | Why does reposurgeon generate .gitignore files<ref>http://www.catb.org/~esr/reposurgeon/dvcs-migration-guide.html</ref>? Partly because it converts <code>svn:ignore</code> properties. Partly because some tools ( | + | Why does reposurgeon generate .gitignore files<ref>http://www.catb.org/~esr/reposurgeon/dvcs-migration-guide.html</ref>? Partly because it converts <code>svn:ignore</code> properties. Partly because some tools (git-svn) introduce .gitignore files to the svn repo. I also believe it may have to do with empty directory commits.<ref>https://stackoverflow.com/questions/22822020/convert-an-svn-repository-to-git-with-reposurgeon-without-creating-gitignore-fi</ref> |
See below for a description of the <code>git filter-branch</code> command | See below for a description of the <code>git filter-branch</code> command | ||
− | |||
− | |||
− | |||
− | |||
== Re-writing history == | == Re-writing history == | ||
Line 86: | Line 80: | ||
* [https://svn.apache.org/repos/asf/subversion/trunk/contrib/server-side/svncutter/svncutter svncutter] is another tool, written in Python, by Eric Raymond. svncutter is for stream surgery on SVN dump files. | * [https://svn.apache.org/repos/asf/subversion/trunk/contrib/server-side/svncutter/svncutter svncutter] is another tool, written in Python, by Eric Raymond. svncutter is for stream surgery on SVN dump files. | ||
− | * [http://www.catb.org/~esr/reposurgeon/repopuller.html repopuller] comes with reposurgeon | + | * [http://www.catb.org/~esr/reposurgeon/repopuller.html repopuller] comes with reposurgeon |
{{References}} | {{References}} |