Questions tagged [reposurgeon]

A tool by Eric S. Raymond for surgical operations on repositories during conversion

A tool by Eric S. Raymond for surgical operations on various types of repositories during conversion from one into another or automated synchronization between two formats.

It uses the git-fast-export format that is understood by or for which tools are available in most modern distributed version control systems (DVCS) as an intermediate format common to all the target version control systems.

The tool is able to read Subversion dumps natively and uses cvs-fast-export by the same author for CVS and RCS interoperability. It is written in Python and can be sped up by running it via PyPy.

The accompanying tool repopuller is a frontend to cvs-fast-export and svnsync respectively and can be used do incremental updates to the mirror of a source repository.

The tool is able to manipulate the relationship between commits as well as other meta-data such as author, tag and branch. It can synthesize branches, tags, merges and also remove them both interactively and via a script.

See the official page for more info and follow the DVCS migration HOWTO for migrations from Subversion or CVS to Bazaar, Git or Mercurial.

Interoperability as of version 3:

  • Git
  • Mercurial (hg)
  • Bazaar (bzr)
  • Darcs
  • Subversion (svn)
  • CVS
  • RCS
20 questions
8
votes
1 answer

How do I convert an svn repo to git using reposurgeon?

Can you give an example, how I add the path to my old svn and create a git folder from it, that contains the whole history and all branches/tags? I found this site is this worth a try? It uses svnpull, which is not on my system can I use repopuller…
rubo77
  • 19,527
  • 31
  • 134
  • 226
7
votes
1 answer

Migrating a multi-project Subversion repository to Git with reposurgeon

I'm trying to convert a Subversion repository to Git using reposurgeon, the repository holds several projects with the following layout: //{trunk,tags,branches} I tried this reposurgeon script: read…
Emmanuel Bourg
  • 9,601
  • 3
  • 48
  • 76
5
votes
3 answers

Switching a Git repository from ISO-8859-1 to UTF-8 encoding for source code files

I'm going to convert a large Mercurial project to Git this weekend using fast-export. I've tested that several times, and the results are good. We'd also like to turn our source code encoding (lots of German comments/string literals with Umlauts)…
Tassilo Horn
  • 791
  • 8
  • 14
4
votes
2 answers

SVN to Git using a fast import/export stream

I have been working on converting an SVN repo of ~32,000 commits to any DVCS (Git, Bazaar, Mercurial, Plastic SCM). After a week or two I realized the best option is to convert the SVN repo to Git, get a fast-export stream, and import the .fe stream…
Opender Singh
  • 305
  • 2
  • 10
3
votes
1 answer

How do I convert a set of mercurial repositories into a git repository?

What I have I currently have a set of mercurial repositories that contain source code. They use the “forked repository” scheme for branches. So, a feature “branch” might look like this: master repo A→B→C …
alficles
  • 1,471
  • 1
  • 15
  • 24
3
votes
0 answers

Using "hg transplant" to splice in the contents of another repository at a later point

If you want to get to the actual question, scroll to the bottom of the question. I just felt it necessary to explain the circumstances. State of affairs In our company we have, for historical reasons, several version control systems. Currently we…
0xC0000022L
  • 20,597
  • 9
  • 86
  • 152
3
votes
4 answers

Convert an SVN repository to git with reposurgeon without creating .gitignore files?

I used reposurgeon to convert my svn into a git repository here: (How do I convert an svn repo to git using reposurgeon?). The problem is, that the converted tags are shown in the log at the place when I created the tag and not at the place of the…
rubo77
  • 19,527
  • 31
  • 134
  • 226
2
votes
2 answers

How to skip first N commits when converting svn repo to Git using reposurgeon?

How do I skip the first two commits of a subversion repository when converting it to Git using reposurgeon? The first svn commit imported code using the wrong branch layout (trunk, tags, branches) and the second commit deleted all of it. The third…
Richard Hansen
  • 51,690
  • 20
  • 90
  • 97
2
votes
0 answers

Incremental import of git-fast-import stream to Mercurial?

I am in the process of converting a few older repositories and splicing and dicing them as needed to get one future repository. A bit of scar tissue in the history (most of them due to semantics in the previous VCS) had to be removed as well, but…
0xC0000022L
  • 20,597
  • 9
  • 86
  • 152
2
votes
1 answer

How can I convert an SVN repository to GIT without annotated tags?

I used reposurgeon to convert ma svn into a git repository here: (How do I convert an svn repo to git using reposurgeon?). It seems like it converted all tags to "annotated tags". How can I change that beaviour? I tried tagify option but that didn't…
rubo77
  • 19,527
  • 31
  • 134
  • 226
2
votes
1 answer

How do I remove an SVN tag completely that contains spaces?

I tried to clean up the svn repository and remove a tag that contains a space, so all tags and branches are git conform: PROJECT=myproject svnrepo=svn+ssh://rubo77@myserver.de/var/svn-repos/$PROJECT svn rm "$svnrepo/tags/version 3.6.2" but it…
rubo77
  • 19,527
  • 31
  • 134
  • 226
1
vote
0 answers

How to tell reposurgeon to convert a SVN repository having tags with spaces?

I try to use reposurgeon 4.0 to convert a SVN repository having tags with spaces (e.g. V 4.1.x snapshot). Let's consider that I actually need such tags (and there are a tenth). To delete these tags is not an option. Also, I don't want to use another…
1
vote
1 answer

Reposurgeon gives me a SyntaxError when using exec, why?

Using reposurgeon and trying to extend its functionality, I am faced with: reposurgeon: invalid syntax in extension function which translates to a SyntaxError extension raised from the execfile() call in RepoSurgeon.do_exec(). What gives? The code…
0xC0000022L
  • 20,597
  • 9
  • 86
  • 152
1
vote
0 answers

How do I use reposurgeon with a repository containing spaces?

I have a git repository that has tons of binary files/build artifacts in it. I'm trying to remove them using reposurgeon. Initially, it choked and died when reading the state of the directory. I was able to hack the source a bit and get past that.…
Wayne Werner
  • 49,299
  • 29
  • 200
  • 290
0
votes
0 answers

Reposurgeon makes obsolete all branches but master in a git tree

After make stubmap has been finished. The next one is make which builds git repo. BUT I got only one branch and a folder with other branches. The problem is that other branches are not visible in a git tree. What command should I use to make them…
Bob
  • 1,433
  • 1
  • 16
  • 36
1
2