Service/git: Difference between revisions
| Line 107: | Line 107: | ||
repo.name = "sat-solver" | repo.name = "sat-solver" | ||
repo.save! | repo.save! | ||
=== TODO === | |||
Current gitorious patch doesn't handle renaming repositories properly and doesn't update symliks in {{Code|/srv/gitorious/repos-by-name}}. For now, run code to recreate symlinks: | |||
Repository::find_each {|i| s='/srv/gitorious/repos/' + i.real_gitdir; d='/srv/gitorious/repos-by-name/' + i.gitdir; FileUtils.makedirs(File.dirname(d)) if !File.exist?(File.dirname(d)); File.symlink(s, d) if !File.exists? d} | |||
== Upgrade notes == | == Upgrade notes == | ||
Revision as of 11:06, 29 April 2011
Hostnames
Hardware
Administrative contact
git AT sugarlabs DOT org
Sysadmins
For non-emergency calls, preferably send email to the administrative contact.
Notes
Gitorious hosting.
| Home | /srv/gitorious
|
|---|---|
| Daemon | /etc/init.d/gitorious
|
| Logs | /srv/gitorious/app/log
|
| Config |
|
| SSL certificates |
|
| Ports |
|
| Sources | http://gitorious.org/~alsroot/sugarlabs-org |
Database tips
To make runtime changes in Gitorious database, follow regular Rails workflow - run scripts/console:
cd /srv/gitorious/app sudo -u gitorious RAILS_ENV=production script/console
It is regular Ruby console and all feature like TAB completion work. To tweak Gitorious data, just use its model classes, e.g.:
# search of particular object by its attributes
user = User.find_by_login("user")
project = Project.find_by_title("project")
# get object attributes
user.email
# change object attributes
project.owner = User.find_by_email("foo@bar")
project.save!
# destroy object and all its dependencies
user.destroy
# reset user password
user = User.find_by_email("user")
password_key = user.forgot_password!
Mailer.deliver_forgotten_password(user, password_key)
# add repository committer
committer = User.find_by_login("user")
repo = Repository::find_by_path("sugar/mainline")
repo.committerships.create_with_permissions!({:committer => committer}, (Committership::CAN_COMMIT))
# delete repository committer
committer = User.find_by_login("user")
repo = Repository::find_by_path("sugar/mainline")
repo.committerships = repo.committerships.select {|i| !i.members.include? committer }
# change repository owner
new_owner = User.find_by_login("user")
repo = Repository::find_by_path("sugar/mainline")
cs = repo.committerships.select {|i| i.committer == new_owner}.pop
cs.permissions = (Committership::CAN_ADMIN | Committership::CAN_COMMIT | Committership::CAN_REVIEW)
cs.save!
repo.owner = new_owner
repo.save!
# move repository to another project
new_project = Project.find_by_title('sl-tweaks')
repo = Repository::find_by_path("sat-solver/mainline")
repo.project = new_project
repo.name = "sat-solver"
repo.save!
TODO
Current gitorious patch doesn't handle renaming repositories properly and doesn't update symliks in /srv/gitorious/repos-by-name. For now, run code to recreate symlinks:
Repository::find_each {|i| s='/srv/gitorious/repos/' + i.real_gitdir; d='/srv/gitorious/repos-by-name/' + i.gitdir; FileUtils.makedirs(File.dirname(d)) if !File.exist?(File.dirname(d)); File.symlink(s, d) if !File.exists? d}
Upgrade notes
| git |
|
|---|
After pulling new sources, migrate database:
cd /srv/gitorious/app/ sudo -u gitorious RAILS_ENV=production rake db:migrate