View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Setting up a private Store repository

Are you paranoid? Do you rage against your machine when a website sends your password in a cleartext email? Do you have a personal certificate from CAcert? If so, you might be paranoid. Paranoids will appreciate this case.

Why should you set up your own Store repo? Let me count the reasons...
Proprietary security. While you probably won't be licensing your application for millions after the final demo (it belongs to GT anyway), it is nice to be able to protect the code for that killer feature that none of the other teams could implement.
Organization. You can create user accounts for each of your teammates instead of relying on a single login to the Cincom public repo. It's much easier to figure out who broke the build at 5am the day before the final demo this way.
You're a CS major. Yes, you're a CS major and you have to run everything on your own server (the author admittedly falls into this category).

Setting up a private Store repository is not difficult. For this tutorial, a basic understanding of Linux and databases is good to have, but not completely necessary.

First, verify that you have the necessary hardware. You'll need a computer that will have consistent network access. If you're following my guide, it will also need to run Linux. I'm sure you can serve up Store on Windows using SQL Server, but that's not what I did. Store supports Oracle, SQL Server, and postgres pretty well. Since you're using Linux and probably can't afford an Oracle license, you'll be using postgres. Install it using your distro's package manager. For example, on Debian-based systems:
# apt-get install postgresql

Now you'll need to create the database table owner for Store. Open a postgres shell while logged in as the user postgres. The new account should be called BERN. Create a database that will hold everything relevant to your repository.
# su - postgres
$ psql
postgres=# createuser -d -a -P BERN
postgres=# createdb <dbname>

In Visualworks, execute 'Store.DbRegistry installDatabaseTables' in a workspace. In the prompt that appears, use the postgres interface and provide credentials for BERN. Environment points Visualworks at your database. The environment string follows this format (postgres runs on port 5432 by default):
<hostname | IP>:<postgres port>_<database name>
e.g.: example.com:5432_repo

That's it! Store uses local user accounts (i.e. /etc/passwd) by default, but you can modify a config file to have Store use postgres and/or local user accounts for user management. I chose to not give my teammates user accounts on my server, just in postgres.

Hints:
Perhaps run this in a virtual machine. Why? The author, for one, likes keeping things cleanly segregated and probably won't be using postgres again soon.
Tell your teammates to not use secure passwords for their user accounts. Store doesn't appear to support transport encryption, so everything is likely flying back and forth in cleartext.

For a much more comprehensive guide, read the Source Code Management Guide, currently available at: http://www.inf.usi.ch/phd/lungu/spo/install/SourceCodeMgmtGuide.pdf

Links to this Page