debian-mirror-gitlab/doc/raketasks/import.md

73 lines
2.5 KiB
Markdown
Raw Normal View History

2015-04-26 12:48:37 +05:30
# Import bare repositories into your GitLab instance
2014-09-02 18:07:02 +05:30
2015-04-26 12:48:37 +05:30
## Notes
2014-09-02 18:07:02 +05:30
2015-04-26 12:48:37 +05:30
- The owner of the project will be the first admin
2018-03-17 18:26:18 +05:30
- The groups will be created as needed, including subgroups
2015-04-26 12:48:37 +05:30
- The owner of the group will be the first admin
- Existing projects will be skipped
2018-03-17 18:26:18 +05:30
- The existing Git repos will be moved from disk (removed from the original path)
2014-09-02 18:07:02 +05:30
2015-04-26 12:48:37 +05:30
## How to use
2014-09-02 18:07:02 +05:30
2018-03-17 18:26:18 +05:30
### Create a new folder to import your Git repositories from.
2014-09-02 18:07:02 +05:30
2018-03-17 18:26:18 +05:30
The new folder needs to have git user ownership and read/write/execute access for git user and its group:
2015-04-26 12:48:37 +05:30
```
2018-03-17 18:26:18 +05:30
sudo -u git mkdir /var/opt/gitlab/git-data/repository-import-<date>/new_group
2015-04-26 12:48:37 +05:30
```
### Copy your bare repositories inside this newly created folder:
2018-03-17 18:26:18 +05:30
- 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`.
2015-04-26 12:48:37 +05:30
```
2018-03-17 18:26:18 +05:30
sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repository-import-<date>/new_group/
2015-04-26 12:48:37 +05:30
# Do this once when you are done copying git repositories
2018-03-17 18:26:18 +05:30
sudo chown -R git:git /var/opt/gitlab/git-data/repository-import-<date>
2015-04-26 12:48:37 +05:30
```
`foo.git` needs to be owned by the git user and git users group.
2018-03-17 18:26:18 +05:30
If you are using an installation from source, replace `/var/opt/gitlab/` with `/home/git`.
2015-04-26 12:48:37 +05:30
### Run the command below depending on your type of installation:
#### Omnibus Installation
2014-09-02 18:07:02 +05:30
```
2018-03-17 18:26:18 +05:30
$ sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>']
2015-04-26 12:48:37 +05:30
```
#### Installation from source
2014-09-02 18:07:02 +05:30
2015-04-26 12:48:37 +05:30
Before running this command you need to change the directory to where your GitLab installation is located:
```
$ cd /home/git/gitlab
2018-03-17 18:26:18 +05:30
$ sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] RAILS_ENV=production
2014-09-02 18:07:02 +05:30
```
2015-04-26 12:48:37 +05:30
#### Example output
2014-09-02 18:07:02 +05:30
```
2018-03-17 18:26:18 +05:30
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-09-02 18:07:02 +05:30
* Created abcd (abcd.git)
2018-03-17 18:26:18 +05:30
Processing /var/opt/gitlab/git-data/repository-import-1/group/xyz.git
* Using namespace: group (2)
2014-09-02 18:07:02 +05:30
* Created xyz (group/xyz.git)
2018-03-17 18:26:18 +05:30
* Skipping repo /var/opt/gitlab/git-data/repository-import-1/@shared/a/b/abcd.git
2014-09-02 18:07:02 +05:30
[...]
```