summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-04-30 09:29:30 +0200
committerYves Senn <yves.senn@gmail.com>2013-04-30 09:29:30 +0200
commita7ad09543ef415967b3d6ea25781601697f95571 (patch)
tree4b733776e957682fb1944446940fecacb54b4314
parente7adcaa55b01ced9139135aeef072c2ee776ed0d (diff)
downloadgitlab-ce-a7ad09543ef415967b3d6ea25781601697f95571.tar.gz
move the update guides from the wiki into the repo
-rw-r--r--doc/update/2.6-to-3.0.md63
-rw-r--r--doc/update/2.9-to-3.0.md37
-rw-r--r--doc/update/3.0-to-3.1.md108
-rw-r--r--doc/update/3.1-to-4.0.md99
-rw-r--r--doc/update/4.0-to-4.1.md55
-rw-r--r--doc/update/4.1-to-4.2.md34
6 files changed, 396 insertions, 0 deletions
diff --git a/doc/update/2.6-to-3.0.md b/doc/update/2.6-to-3.0.md
new file mode 100644
index 00000000000..d7047d8eb19
--- /dev/null
+++ b/doc/update/2.6-to-3.0.md
@@ -0,0 +1,63 @@
+# From 2.6 to 3.0
+
+### 1. Stop server & resque
+
+ sudo service gitlab stop
+
+### 2. Update code & db
+
+
+```bash
+# Get latest code
+git fetch origin
+git checkout v3.0.3
+
+
+# Install libs
+sudo -u gitlab bundle install --without development test postgres
+
+# update db
+sudo -u gitlab bundle exec rake db:migrate RAILS_ENV=production
+
+# !!! Config should be replaced with a new one. Check it after replace
+cp config/gitlab.yml.example config/gitlab.yml
+
+# update gitolite hooks
+
+# GITOLITE v2:
+sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive
+sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive
+
+# GITOLITE v3:
+sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
+sudo chown git:git /home/git/.gitolite/hooks/common/post-receive
+
+# set valid path to hooks in gitlab.yml in git_host section
+# like this
+git_host:
+ # gitolite 2
+ hooks_path: /home/git/share/gitolite/hooks
+ # gitolite 3
+ hooks_path: /home/git/.gitolite/hooks/
+
+
+# Make some changes to gitolite config
+# For more information visit https://github.com/gitlabhq/gitlabhq/pull/1719
+
+# gitolite v2
+sudo -u git -H sed -i 's/\(GL_GITCONFIG_KEYS\s*=>*\s*\).\{2\}/\\1"\.\*"/g' /home/git/.gitolite.rc
+
+# gitlite v3
+sudo -u git -H sed -i "s/\(GIT_CONFIG_KEYS\s*=>*\s*\).\{2\}/\\1'\.\*'/g" /home/git/.gitolite.rc
+
+
+# Check app status
+sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
+
+
+```
+
+
+### 3. Start all
+
+ sudo service gitlab start
diff --git a/doc/update/2.9-to-3.0.md b/doc/update/2.9-to-3.0.md
new file mode 100644
index 00000000000..af929e027a4
--- /dev/null
+++ b/doc/update/2.9-to-3.0.md
@@ -0,0 +1,37 @@
+# From 2.9 to 3.0
+
+### 1. Stop server & resque
+
+ sudo service gitlab stop
+
+### 2. Follow instructions
+
+```bash
+
+# Get latest code
+sudo -u gitlab -H git fetch origin
+sudo -u gitlab -H git checkout v3.0.3
+
+# Install gems
+sudo -u gitlab -H bundle install --without development test postgres
+
+# Migrate db
+sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production
+
+# Make some changes to gitolite v3 config
+# For more information visit https://github.com/gitlabhq/gitlabhq/pull/1719
+
+# Gitolite version 3
+sudo -u git -H sed -i "s/\(GIT_CONFIG_KEYS\s*=>*\s*\).\{2\}/\\1'\.\*'/g" /home/git/.gitolite.rc
+
+# If you still use gitolite v2
+sudo -u git -H sed -i 's/\(GL_GITCONFIG_KEYS\s*=>*\s*\).\{2\}/\\1"\.\*"/g' /home/git/.gitolite.rc
+
+# Check APP Status
+sudo -u gitlab -H bundle exec rake gitlab:app:status RAILS_ENV=production
+```
+
+
+### 3. Start all
+
+ sudo service gitlab start
diff --git a/doc/update/3.0-to-3.1.md b/doc/update/3.0-to-3.1.md
new file mode 100644
index 00000000000..5f06f818d10
--- /dev/null
+++ b/doc/update/3.0-to-3.1.md
@@ -0,0 +1,108 @@
+# From 3.0 to 3.1
+
+__IMPORTANT!__
+
+In this release __we moved Resque jobs under own gitlab namespace__.
+
+Despite a lot of advantages it requires from our users to __replace gitolite post-receive hook with new one__.
+
+Most of projects has post-receive file as symlink to gitolite `/home/git/.gitolite/hooks/post-receive`.
+But some of them may have a real file. In this case you should rewrite it with symlink to gitolite hook.
+
+I wrote a bash script which will do it automatically for you. Just make sure all path inside is valid for you
+
+- - -
+
+### 1. Stop server & resque
+
+ sudo service gitlab stop
+
+### 2. Update GitLab
+
+```bash
+
+# Get latest code
+sudo -u gitlab -H git fetch
+sudo -u gitlab -H git checkout v3.1.0
+
+# Install new charlock_holmes
+sudo gem install charlock_holmes --version '0.6.9'
+
+# Install gems for MySQL
+sudo -u gitlab -H bundle install --without development test postgres sqlite
+
+
+# Migrate db
+sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production
+
+
+```
+
+### 3. Update post-receive hooks
+
+#### Gitolite 3
+
+Step 1: Rewrite post-receive hook
+
+```bash
+# Rewrite hook for gitolite 3
+sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
+sudo chown git:git /home/git/.gitolite/hooks/common/post-receive
+```
+
+Step 2: Rewrite hooks in all projects to symlink gitolite hook
+
+```bash
+# 1. Check for valid path
+sudo -u gitlab -H vim lib/support/rewrite-hooks.sh
+
+# 2. Run script
+sudo -u git -H lib/support/rewrite-hooks.sh
+```
+
+#### Gitolite v2
+
+Step 1: rewrite post-receive hook for gitolite 2
+
+```
+sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive
+sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive
+```
+
+Step 2: Replace symlinks in project to valid place
+
+
+ #!/bin/bash
+ src="/home/git/repositories"
+ for dir in `ls "$src/"`
+ do
+ if [ -d "$src/$dir" ]; then
+
+ if [ "$dir" = "gitolite-admin.git" ]
+ then
+ continue
+ fi
+
+ project_hook="$src/$dir/hooks/post-receive"
+ gitolite_hook="/home/git/share/gitolite/hooks/common/post-receive"
+
+ ln -s -f $gitolite_hook $project_hook
+ fi
+ done
+
+
+### 4. Check app status
+
+```bash
+
+# Check APP Status
+sudo -u gitlab -H bundle exec rake gitlab:app:status RAILS_ENV=production
+
+
+
+```
+
+
+### 5. Start all
+
+ sudo service gitlab start
diff --git a/doc/update/3.1-to-4.0.md b/doc/update/3.1-to-4.0.md
new file mode 100644
index 00000000000..c5ae3a40a76
--- /dev/null
+++ b/doc/update/3.1-to-4.0.md
@@ -0,0 +1,99 @@
+# From 3.1 to 4.0
+
+## Important changes
+
+* Support for SQLite was dropped
+* Support for gitolite 2 was dropped
+* Projects are organized in namespaces
+* The GitLab post-receive hook needs to be updated
+* The configuration file needs to be updated
+* Availability of `python2` executable
+
+Most of projects has post-receive file as symlink to gitolite `/home/git/.gitolite/hooks/post-receive`.
+But some of them may have a real file. In this case you should rewrite it with symlink to gitolite hook.
+
+I wrote a bash script which will do it automatically for you. Just make sure all path inside is valid for you
+
+- - -
+
+### 1. Stop GitLab & Resque
+
+ sudo service gitlab stop
+
+### 2. Update GitLab
+
+```bash
+
+# Get latest code
+sudo -u gitlab -H git fetch
+sudo -u gitlab -H git checkout 4-0-stable
+
+# Install gems for MySQL
+sudo -u gitlab -H bundle install --without development test postgres
+
+# Update repos permissions
+sudo chmod -R ug+rwXs /home/git/repositories/
+sudo chown -R git:git /home/git/repositories/
+
+# Migrate db
+sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production
+
+# Enable namespaces (**Warning!** All projects in groups will be moved to subdirectories)
+sudo -u gitlab -H bundle exec rake gitlab:enable_namespaces RAILS_ENV=production
+
+```
+
+### 3. Update post-receive hooks (Requires gitolite v3 )
+
+
+Step 1: Rewrite post-receive hook
+
+```bash
+sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
+sudo chown git:git /home/git/.gitolite/hooks/common/post-receive
+```
+
+Step 2: Update project hooks to be symlinks to the Gitolite hook
+
+```bash
+# 1. Check paths in script
+sudo -u gitlab -H vim lib/support/rewrite-hooks.sh
+
+# 2. Run script
+sudo -u git -H lib/support/rewrite-hooks.sh
+```
+
+
+### 4. Replace config with new one
+
+
+ # backup old one
+ sudo -u gitlab -H cp config/gitlab.yml config/gitlab.yml.old
+
+ # copy new one
+ sudo -u gitlab -H cp config/gitlab.yml.example config/gitlab.yml
+
+ # edit it
+ sudo -u gitlab -H vim config/gitlab.yml
+
+
+### 5. Disable ssh known_host check for own domain
+
+
+ echo "Host localhost
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config
+
+ echo "Host YOUR_DOMAIN_NAME
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config
+
+
+### 6. Check GitLab's status
+
+ sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
+
+
+### 7. Start GitLab & Resque
+
+ sudo service gitlab start
diff --git a/doc/update/4.0-to-4.1.md b/doc/update/4.0-to-4.1.md
new file mode 100644
index 00000000000..368351d0c91
--- /dev/null
+++ b/doc/update/4.0-to-4.1.md
@@ -0,0 +1,55 @@
+# From 4.0 to 4.1
+
+## Important changes
+
+* Resque replaced with Sidekiq
+* New options for configuration file added
+* Init.d script should be updated
+* __requires ruby1.9.3-p327__
+
+- - -
+
+### 1. Stop GitLab & Resque
+
+ sudo service gitlab stop
+
+### 2. Update GitLab
+
+```bash
+
+# Get latest code
+sudo -u gitlab -H git fetch
+sudo -u gitlab -H git checkout 4-1-stable
+
+# Install gems for MySQL
+sudo -u gitlab -H bundle install --without development test postgres
+
+# Migrate db
+sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production
+
+```
+
+### 3. Replace init.d script with a new one
+
+```
+# backup old one
+sudo mv /etc/init.d/gitlab /etc/init.d/gitlab.old
+
+# get new one usign sidekiq
+sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/init.d/gitlab
+sudo chmod +x /etc/init.d/gitlab
+
+```
+
+### 4. Check GitLab's status
+
+ sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
+
+
+### 5. Start GitLab & Sidekiq
+
+ sudo service gitlab start
+
+### 6. Remove old init.d script
+
+ sudo rm /etc/init.d/gitlab.old
diff --git a/doc/update/4.1-to-4.2.md b/doc/update/4.1-to-4.2.md
new file mode 100644
index 00000000000..15fea593560
--- /dev/null
+++ b/doc/update/4.1-to-4.2.md
@@ -0,0 +1,34 @@
+# From 4.1 to 4.2
+
+### 1. Stop server & resque
+
+ sudo service gitlab stop
+
+### 2. Update code & db
+
+```bash
+# Get latest code
+sudo -u gitlab git fetch
+
+sudo -u gitlab git checkout 4-2-stable
+
+# Install libs
+sudo -u gitlab bundle install --without development test postgres --deployment
+
+# update db
+sudo -u gitlab bundle exec rake db:migrate RAILS_ENV=production
+
+```
+
+
+### 3. Check GitLab's status
+
+```bash
+sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
+```
+
+
+
+### 4. Start all
+
+ sudo service gitlab start