From Trac to GitLab

I have been using Trac since ages and I like its simplicity compared to systems such as Jira but I must say it looks like a dinosaur compared to GitHub

I like GitHub but I am also a strong believer that the web should stay decentralized and have been searching an open source alternative that I could host on my servers for a while.

The latest version of GitLab is a perfect solution for my needs: previous versions were focused on private projects but version 6.2 introduces the support for public projects that was missing in previous versions.

I have installed GitLab at and I have started using it to publish my presentation at XML Amsterdam.

My plan is now to slowly migrate my open source projects between Trac and GitLab and I have found a couple of Python scripts that may help for this process:

I have consolidated these two scripts and the result is available as trac-to-gitlab which is of course… published on GitLab!

One of the things I really like with git is that at the bottom of the network of changes you can see the initial history of the two scripts with the commit dates and names of their authors.

I hope that trac-to-gitlab may be useful to others and be similarly cloned into other projects!

Of course, comments, issues and merge requests are welcome.

8 thoughts on “From Trac to GitLab”

  1. Is your trac-to-gitlab link working? i am trying to migrate our trac into gitlab but the link you have above comes back with an error, “server is temporarily unable to service your request due to maintenance downtime or capacity problems”


  2. Hi Eric,
    I get this error when I try cloning this repo from your Gitlab instance:

    $ git clone --bare
    Cloning into bare repository 'trac-to-gitlab.git'...
    fatal: unable to access '': SSL certificate problem: unable to get local issuer certificate

  3. I’m looking forward to use it. For now, I fail with the following stack:
    Traceback (most recent call last):
    File “”, line 222, in
    dest_project_id = get_dest_project_id(dest_project_name)
    File “”, line 95, in get_dest_project_id
    dest_project = dest.project_by_name(dest_project_name)
    File “/home/debian/trac-to-gitlab.git/gitlab_api/”, line 62, in project_by_name
    projects = self.get(“/projects”)
    File “/home/debian/trac-to-gitlab.git/gitlab_api/”, line 68, in get
    return self._get(url_postfix, keywords)
    File “/home/debian/trac-to-gitlab.git/gitlab_api/”, line 78, in _get
    json = r.json()
    TypeError: ‘list’ object is not callable

    Any tips ?

Leave a Reply to johnathan Cancel reply

Your email address will not be published. Required fields are marked *