Commit c5220728 authored by Mike Jang's avatar Mike Jang

Merge branch 'docs-mention-project-import-besides-rake-import' into 'master'

Improve Rake-based bare repo import docs

See merge request gitlab-org/gitlab!40829
parents 63a26a05 22a9bd4d
# Import bare repositories **(CORE ONLY)** # Import bare repositories **(CORE ONLY)**
Rake tasks are available to import bare repositories into a GitLab instance. Rake tasks are available to import bare repositories into a GitLab instance.
When migrating from an existing GitLab instance,
and to preserve ownership by users and their namespaces,
please use [our project-based import/export](../user/project/settings/import_export.md).
Note that: Note that:
...@@ -14,11 +17,14 @@ Note that: ...@@ -14,11 +17,14 @@ Note that:
To import bare repositories into a GitLab instance: To import bare repositories into a GitLab instance:
1. Create a new folder to import your Git repositories from. The new folder needs to have Git user 1. Create a new folder to import your Git repositories from.
ownership and read/write/execute access for Git user and its group: You can also import projects into a (sub)group's namespace,
instead of the administrator's namespace. To do so, create subfolders and
give ownership and read/write/execute permissions of those subfolders to the
`git` user and its group:
```shell ```shell
sudo -u git mkdir -p /var/opt/gitlab/git-data/repository-import-<date>/new_group sudo -u git mkdir -p /var/opt/gitlab/git-data/repository-import-$(date "+%Y-%m-%d")/<optional_groupname>/<optional_subgroup>
``` ```
1. Copy your bare repositories inside this newly created folder. Note: 1. Copy your bare repositories inside this newly created folder. Note:
...@@ -26,15 +32,15 @@ To import bare repositories into a GitLab instance: ...@@ -26,15 +32,15 @@ To import bare repositories into a GitLab instance:
- Any `.git` repositories found on any of the subfolders will be imported as projects. - 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. - Groups will be created as needed, these could be nested folders.
For example, if we copy the repositories to `/var/opt/gitlab/git-data/repository-import-<date>`, For example, if we copy the repositories to `/var/opt/gitlab/git-data/repository-import-2020-08-22`,
and repository `A` needs to be under the groups `G1` and `G2`, it must be created under those folders: and repository `A` needs to be under the groups `G1` and `G2`, it must be created under those folders:
`/var/opt/gitlab/git-data/repository-import-<date>/G1/G2/A.git`. `/var/opt/gitlab/git-data/repository-import-2020-08-22/G1/G2/A.git`.
```shell ```shell
sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repository-import-<date>/new_group/ sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repository-import-$(date "+%Y-%m-%d")/<optional_groupname>/<optional_subgroup>
# Do this once when you are done copying git repositories # Do this once when you are done copying git repositories
sudo chown -R git:git /var/opt/gitlab/git-data/repository-import-<date> sudo chown -R git:git /var/opt/gitlab/git-data/repository-import-$(date "+%Y-%m-%d")
``` ```
`foo.git` needs to be owned by the `git` user and `git` users group. `foo.git` needs to be owned by the `git` user and `git` users group.
...@@ -46,7 +52,7 @@ To import bare repositories into a GitLab instance: ...@@ -46,7 +52,7 @@ To import bare repositories into a GitLab instance:
- Omnibus Installation - Omnibus Installation
```shell ```shell
sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-$(date "+%Y-%m-%d")']
``` ```
- Installation from source. Before running this command you need to change to the directory where - Installation from source. Before running this command you need to change to the directory where
...@@ -54,7 +60,7 @@ To import bare repositories into a GitLab instance: ...@@ -54,7 +60,7 @@ To import bare repositories into a GitLab instance:
```shell ```shell
cd /home/git/gitlab cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-$(date "+%Y-%m-%d")'] RAILS_ENV=production
``` ```
## Example output ## Example output
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment