2014-10-30 14:10:07 -04:00
|
|
|
# Import bare repositories into your GitLab instance
|
2014-04-30 09:02:37 -04:00
|
|
|
|
2014-10-31 07:51:25 -04:00
|
|
|
## Notes
|
2014-04-30 09:02:37 -04:00
|
|
|
|
2014-10-30 14:08:10 -04:00
|
|
|
- The owner of the project will be the first admin
|
2017-11-07 14:11:42 -05:00
|
|
|
- The groups will be created as needed, including subgroups
|
2014-10-30 14:08:10 -04:00
|
|
|
- The owner of the group will be the first admin
|
|
|
|
- Existing projects will be skipped
|
2017-11-07 14:11:42 -05:00
|
|
|
- The existing Git repos will be moved from disk (removed from the original path)
|
2014-04-30 09:02:37 -04:00
|
|
|
|
2014-10-31 07:51:25 -04:00
|
|
|
## How to use
|
2014-04-30 09:02:37 -04:00
|
|
|
|
2017-11-07 14:11:42 -05:00
|
|
|
### Create a new folder to import your Git repositories from.
|
2014-10-29 18:21:55 -04:00
|
|
|
|
2017-11-07 14:11:42 -05:00
|
|
|
The new folder needs to have git user ownership and read/write/execute access for git user and its group:
|
2015-01-16 22:36:44 -05:00
|
|
|
|
|
|
|
```
|
2017-11-07 14:11:42 -05:00
|
|
|
sudo -u git mkdir /var/opt/gitlab/git-data/repository-import-<date>/new_group
|
2015-01-16 22:36:44 -05:00
|
|
|
```
|
|
|
|
|
2014-10-30 14:14:31 -04:00
|
|
|
### Copy your bare repositories inside this newly created folder:
|
2014-04-30 09:02:37 -04:00
|
|
|
|
2017-11-07 14:11:42 -05:00
|
|
|
- Any .git repositories found on any of the subfolders will be imported as projects
|
|
|
|
- Groups will be created as needed, these could be nested folders. Example:
|
|
|
|
|
|
|
|
If we copy the repos to `/var/opt/gitlab/git-data/repository-import-<date>`, and repo A needs to be under the groups G1 and G2, it will
|
|
|
|
have to be created under those folders: `/var/opt/gitlab/git-data/repository-import-<date>/G1/G2/A.git`.
|
|
|
|
|
|
|
|
|
2014-04-30 09:02:37 -04:00
|
|
|
```
|
2017-11-07 14:11:42 -05:00
|
|
|
sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repository-import-<date>/new_group/
|
2015-01-21 09:14:46 -05:00
|
|
|
|
|
|
|
# Do this once when you are done copying git repositories
|
2017-11-07 14:11:42 -05:00
|
|
|
sudo chown -R git:git /var/opt/gitlab/git-data/repository-import-<date>
|
2014-10-29 18:21:55 -04:00
|
|
|
```
|
|
|
|
|
2015-01-16 22:36:44 -05:00
|
|
|
`foo.git` needs to be owned by the git user and git users group.
|
|
|
|
|
2017-11-07 14:11:42 -05:00
|
|
|
If you are using an installation from source, replace `/var/opt/gitlab/` with `/home/git`.
|
2015-01-26 11:03:04 -05:00
|
|
|
|
2014-10-30 18:36:25 -04:00
|
|
|
### Run the command below depending on your type of installation:
|
2014-10-29 18:21:55 -04:00
|
|
|
|
2014-10-30 14:10:07 -04:00
|
|
|
#### Omnibus Installation
|
2014-10-29 18:21:55 -04:00
|
|
|
|
|
|
|
```
|
2017-11-07 14:11:42 -05:00
|
|
|
$ sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>']
|
2014-10-29 18:21:55 -04:00
|
|
|
```
|
2014-06-23 04:38:22 -04:00
|
|
|
|
2015-02-16 12:10:07 -05:00
|
|
|
#### Installation from source
|
2014-10-29 18:21:55 -04:00
|
|
|
|
2014-10-30 18:36:25 -04:00
|
|
|
Before running this command you need to change the directory to where your GitLab installation is located:
|
2014-10-30 13:38:09 -04:00
|
|
|
|
2014-10-29 18:21:55 -04:00
|
|
|
```
|
|
|
|
$ cd /home/git/gitlab
|
2017-11-07 14:11:42 -05:00
|
|
|
$ sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] RAILS_ENV=production
|
2014-04-30 09:02:37 -04:00
|
|
|
```
|
|
|
|
|
2014-10-31 07:51:25 -04:00
|
|
|
#### Example output
|
2014-04-30 09:02:37 -04:00
|
|
|
|
|
|
|
```
|
2017-11-07 14:11:42 -05:00
|
|
|
Processing /var/opt/gitlab/git-data/repository-import-1/a/b/c/blah.git
|
|
|
|
* Using namespace: a/b/c
|
|
|
|
* Created blah (a/b/c/blah)
|
|
|
|
* Skipping repo /var/opt/gitlab/git-data/repository-import-1/a/b/c/blah.wiki.git
|
|
|
|
Processing /var/opt/gitlab/git-data/repository-import-1/abcd.git
|
2014-04-30 09:02:37 -04:00
|
|
|
* Created abcd (abcd.git)
|
2017-11-07 14:11:42 -05:00
|
|
|
Processing /var/opt/gitlab/git-data/repository-import-1/group/xyz.git
|
|
|
|
* Using namespace: group (2)
|
2014-04-30 09:02:37 -04:00
|
|
|
* Created xyz (group/xyz.git)
|
2017-11-07 14:11:42 -05:00
|
|
|
* Skipping repo /var/opt/gitlab/git-data/repository-import-1/@shared/a/b/abcd.git
|
2014-04-30 09:02:37 -04:00
|
|
|
[...]
|
|
|
|
```
|