A Rails app to keep track of VCS changesets
Ruby JavaScript



Changesets is a Ruby on Rails application to keep track of your commits in a version controlled software project. It is useful for a workflow where commits are being made to a development branch and need to be merged into a staging or production branch on a per-commit basis. Changesets allows you to keep track of each commit you make including its revision number or commit hash, a ticket number if the commit references a ticket in an issue tracking system, a commit message/description, and a note. Most importantly, Changesets allows you to toggle the status of each changeset between “merged” and “unmerged” to keep track of which of your changesets still needs to be merged into your staging/production branch in a visually distinct way.


1. Run bundle install to install gem dependencies.
2. Run rake db:setup to create the database and load the schema.
3. Add a secret token for the session in your environment with the key SECRET_TOKEN. For example, using Apache, Passenger, and the SetEnv directive:

SetEnv SECRET_TOKEN "ad0f002d37565ca7510e5ea40c1ba14b80bf8bd7678301bb2315c6715a4eb0b37cb57b44fd7185bd6eb16315d0c7f85a395e1cdfcb0a342222465305e5153e48"

It’s easy to generate a token: Open up IRB and run:

require 'active_support'

That’s all it should require. Just start up the server and get going!

Optional Configuration

Changesets has the ability to display links to an issue tracking system for each changeset. To set this up, you will need to add a few environment variables.

Format: name
Description: The issue tracking system’s name. This will appear as the text of the links.

Format: path_to_changeset/__VALUE__
Description: The full URL to display a changeset.

Variable: TICKET_URL
Format: path_to_ticket/__VALUE__
Description: The full URL to display a ticket.

Here is an example of how this all might look using Apache and Passenger with Apache’s SetEnv directive:

SetEnv CHANGESET_URL https://trac.mysite.com/changeset/__VALUE__
SetEnv TICKET_URL https://trac.mysite.com/ticket/__VALUE__

Note that __VALUE__ should be used literally. This is a token that the application will replace with the real value at runtime.


Feedback is welcome and appreciated. You may contact me via Github or through my own website.