summaryrefslogtreecommitdiff
path: root/doc/operations
diff options
context:
space:
mode:
authorJacob Vosmaer <contact@jacobvosmaer.nl>2015-10-06 12:42:05 +0200
committerJacob Vosmaer <contact@jacobvosmaer.nl>2015-10-06 12:42:05 +0200
commitad37f58ebd97fee3c06a531e4067c8adb4c9ecc7 (patch)
treee80f92e18ea714bea158fd2df160118902d92915 /doc/operations
parente0ef09d9a35bf001acbb89e4177d942f6db93e50 (diff)
downloadgitlab-ce-ad37f58ebd97fee3c06a531e4067c8adb4c9ecc7.tar.gz
Add explanation about parallel-rsync-repos
Diffstat (limited to 'doc/operations')
-rw-r--r--doc/operations/moving_repositories.md55
1 files changed, 54 insertions, 1 deletions
diff --git a/doc/operations/moving_repositories.md b/doc/operations/moving_repositories.md
index d156f3ad777..a89602b367f 100644
--- a/doc/operations/moving_repositories.md
+++ b/doc/operations/moving_repositories.md
@@ -87,5 +87,58 @@ In addition to rsync we will use [GNU
Parallel](http://www.gnu.org/software/parallel/). This utility is
not included in GitLab so you need to install it yourself with apt
or yum. Also note that the GitLab scripts we used below were added
-in GitLab 8.???.
+in GitLab 8.1.
+** This process does not clean up repositories at the target location that no
+longer exist at the source. ** If you start using your GitLab instance with
+`/mnt/gitlab/repositories`, you need to run `gitlab-rake gitlab:cleanup:repos`
+after switching to the new repository storage directory.
+
+### Parallel rsync for all repositories known to GitLab
+
+This will sync repositories with 10 rsync processes at a time.
+
+```
+# Omnibus
+sudo gitlab-rake gitlab:list_repos |\
+ sudo -u git \
+ /usr/bin/env JOBS=10 \
+ /opt/gitlab/embedded/service/gitlab-rails/bin/parallel-rsync-repoos \
+ /var/opt/gitlab/git-data/repositories \
+ /mnt/gitlab/repositories
+
+# Source
+cd /home/git/gitlab
+sudo -u git -H bundle exec rake gitlab:list_repos |\
+ sudo -u git -H \
+ /usr/bin/env JOBS=10 \
+ bin/parallel-rsync-repos \
+ /home/git/repositories \
+ /mnt/gitlab/repositories
+```
+
+### Parallel rsync only for repositories with recent activity
+
+Suppose you have already done one sync that started after 2015-10-1 12:00 UTC.
+Then you might only want to sync repositories that were changed via GitLab
+_after_ that time. You can use the 'SINCE' variable to tell 'rake
+gitlab:list_repos' to only print repositories with recent activity.
+
+```
+# Omnibus
+sudo gitlab-rake gitlab:list_repos SINCE='2015-10-1 12:00 UTC' |\
+ sudo -u git \
+ /usr/bin/env JOBS=10 \
+ /opt/gitlab/embedded/service/gitlab-rails/bin/parallel-rsync-repoos \
+ /var/opt/gitlab/git-data/repositories \
+ /mnt/gitlab/repositories
+
+# Source
+cd /home/git/gitlab
+sudo -u git -H bundle exec rake gitlab:list_repos SINCE='2015-10-1 12:00 UTC' |\
+ sudo -u git -H \
+ /usr/bin/env JOBS=10 \
+ bin/parallel-rsync-repos \
+ /home/git/repositories \
+ /mnt/gitlab/repositories
+```