go-gitea / tea

A command line tool to interact with Gitea servers, moved to https://gitea.com/gitea/tea
MIT License
79 stars 27 forks source link

Migrate repositories from a HTTP URL, local disk or SSH URL #22

Open lunny opened 5 years ago

lunny commented 5 years ago

If we can implement a sub command migrate, that will be helpful.

# migrate from a http URL
tea --login=try migrate https://github.com/go-gitea/tea.git --name=gitea/tea

# migrate from local disk
tea --login=try migrate ./tea.git --name=gitea/tea

# migrate from a SSH URL, clone from ssh and then upload from local disk
tea --login=try migrate git@github.com:go-gitea/tea.git --name=gitea/tea
noerw commented 5 years ago

I'm not well informed about the architecture, but afaik the gitea server implements migration logic for all these cases.. If so, the CLI shouldn't need to push from local disk, but trigger the migration on server side for the HTTP/SSH URL case. This way the local clone can be made optional (with a --clone BooleanFlag?), which might be of interest for large automated migrations.

lafriks commented 5 years ago

@noerw gitea does not implement migration from local path

techknowlogick commented 5 years ago

@lafriks I think it does, but is disabled by default.

lafriks commented 5 years ago

but from server disk but this would be way to migrate from users local disk

lunny commented 5 years ago

Yes, just like @lafriks said. This in fact will do three steps when migrate from local disk:

  1. create a repo on gitea server
  2. git add remote to that gitea server repo
  3. push to remote server.

The original migration from disk will migrate from gitea server's disk but not guest's.

lunny commented 5 years ago

This command also could be some part of scripts to batch migrate local git repositories to gitea server.