go-gitea / gitea

Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
https://gitea.com
MIT License
45.45k stars 5.52k forks source link

Migrating from Trac #6908

Open bobemoe opened 5 years ago

bobemoe commented 5 years ago

I'm looking to migrate my issues+wiki from Trac to Gitea and was wondering the best way to go about it?

I have found https://github.com/tracboat/tracboat but it is for migrating to GitLab, do you think it would work or be easily adaptable for use with Gitea? Or has anyone got a better idea?

Thanks :)

bobemoe commented 5 years ago

In the end I used this one, https://github.com/trustmaster/trac2github as I'm familiar with PHP than Python. I think it was simpler too, it only needed a few tweaks of URLs and Parameters to make it work with Gitea.

I'm happy. Close if you like, or keep open as it may be a nice feature?

lunny commented 5 years ago

@bobemoe I think we can just keep it open if someone would like to send a PR to Gitea.

6543 commented 5 years ago

there is a trac to gogs tool: http://strk.kbt.io/projects/go/trac2gogs maby fork it and integrate it?

EDIT: it interacts with the database direct :( useles

lunny commented 5 years ago

@6543 maybe @strk like to contribute it. :)

strk commented 5 years ago

No free cycles, and for our case DB interaction is ok so trac2gogs would do :)

stevejefferson commented 4 years ago

FYI I have recently had the task of migrating a number of Trac projects to Gitea, several of which included multi-page Trac wikis.

To automate this I have built a command line utility which performs a "fairly comprehensive" migration of an entire Trac project to Gitea, including the wiki. While the starting point for this was trac2gogs, this utility has grown to cover a greater scope and the two codebases are now completely diverged.

As with trac2gogs, access to Gitea is via the database however all of the Gitea accesses (including those required by the wiki migration) have been abstracted out so hopefully this might prove a useful starting point should anyone want to produce a more integrated Trac migration in the future.

Having now migrated all of my Trac projects I have little remaining use for the utility myself however have uploaded the code to https://github.com/stevejefferson/trac2gitea in case it proves useful.

haumacher commented 1 year ago

@stevejefferson 's tool only works for sqlite databases. Providing support for all other gitea-supported databases would mean to rewrite all the access SQL in all dialects. Isn't there an abstraction layer within gitea that allows to manipulate the gitea data structures without directly creating db-dependent SQL? I think of an interface that allows the same functionality as the OpenAPI interface for remote access. This would greatly help when integrating the migration tool into gitea.

6543 commented 1 year ago

Yes ... there is format similar to F3 that is internaly used for ex/im-port repos so you just would have to cover that format

haumacher commented 1 year ago

@6543 "format similar to F3" can you please give some more detail/pointer?

6543 commented 1 year ago

https://github.com/go-gitea/gitea/blob/main/services/migrations/restore.go exampleRepo.tar.gz