Reminder to all repository users: Please do not add , commit and push any data files to your remote git repositories. The disk space the Git server is limited, it wasn't dimensioned to host anything else than code. Solely your code files need versioning. The data inputs/outputs don't. A good idea is to do "git add" individually on each file you want to commit, to avoid versioning unwanted content.

Import bare repositories into your GitLab instance

Notes

  • The owner of the project will be the first admin
  • The groups will be created as needed
  • The owner of the group will be the first admin
  • Existing projects will be skipped

How to use

Create a new folder inside the git repositories path. This will be the name of the new group.

  • For omnibus-gitlab, it is located at: /var/opt/gitlab/git-data/repositories by default, unless you changed it in the /etc/gitlab/gitlab.rb file.
  • For installations from source, it is usually located at: /home/git/repositories or you can see where your repositories are located by looking at config/gitlab.yml under the repositories => storages entries (you'll usually use the default storage path to start).

New folder needs to have git user ownership and read/write/execute access for git user and its group:

sudo -u git mkdir /var/opt/gitlab/git-data/repositories/new_group

If you are using an installation from source, replace /var/opt/gitlab/git-data with /home/git.

Copy your bare repositories inside this newly created folder:

sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repositories/new_group/

# Do this once when you are done copying git repositories
sudo chown -R git:git /var/opt/gitlab/git-data/repositories/new_group/

foo.git needs to be owned by the git user and git users group.

If you are using an installation from source, replace /var/opt/gitlab/git-data with /home/git.

Run the command below depending on your type of installation:

Omnibus Installation

$ sudo gitlab-rake gitlab:import:repos

Installation from source

Before running this command you need to change the directory to where your GitLab installation is located:

$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:import:repos RAILS_ENV=production

Example output

Processing abcd.git
 * Created abcd (abcd.git)
Processing group/xyz.git
 * Created Group group (2)
 * Created xyz (group/xyz.git)
[...]