rake_commit_tasks
rake_commit_tasks copied to clipboard
A set of rake tasks to help with checking in code - Note: this project has been superseded by https://github.com/pgr0ss/rake_commit
= rake_commit_tasks
Note: This project has been deprecated, and is superseded by https://github.com/pgr0ss/rake_commit
This plugin contains a set of rake tasks for checking your project into source control (git or subversion). The most important is:
rake commit
which does the following, depending on source control:
==== git
- Resets soft back to origin/branch (in order to collapse changes into one commit)
- Adds new files to git and removes deleted files
- Prompts for a commit message
- Commits to git
- Pulls changes from origin (and does a rebase to keep a linear history)
- Runs the default rake task (which should run the tests)
- Checks cruisecontrol.rb to see if the build is passing
- Pushes the commit to origin
==== git-svn
- Adds new files to git and removes deleted files
- Prompts for a commit message
- Commits to local git
- Pulls changes from SVN
- Runs the default rake task (which should run the tests)
- Checks cruisecontrol.rb to see if the build is passing
- Pushes the commit to SVN
==== subversion
- Prompts for a commit message
- Adds new files to subversion
- Deletes missing files from subversion
- svn update
- Runs the default rake task (which should run the tests)
- Checks cruisecontrol.rb to see if the build is passing
- Checks in the code
The first version started with the code posted at Jay Field's Blog: http://blog.jayfields.com/2006/12/ruby-rake-commit.html. Improvements have been added in from several more projects.
== Installation
git clone git://github.com/pgr0ss/rake_commit_tasks.git vendor/plugins/rake_commit_tasks rake commit
== Customization
=== Preventing checkins on broken builds
If you want the build to check your cruisecontrol.rb instance and prompt you before checking in on a broken build, set CCRB_RSS to the location of the RSS feed.
For example, in your Rakefile:
CCRB_RSS = 'http://example.com:3333/projects.rss'
=== Automatically merging from branch to trunk (subversion)
If you want the build to automatically merge changes to the trunk when checking in on the branch, set PATH_TO_TRUNK_WORKING_COPY to the location of the checked out trunk working copy.
For example, in your Rakefile:
PATH_TO_TRUNK_WORKING_COPY = "/Users/someone/my_project_trunk"
Now, if you have a branch checked out into /Users/someone/my_project_1.1 and you do a rake commit, the checkin will be merged into the trunk after the change is committed to the branch. Then, you can "cd /Users/someone/my_project_trunk" and check in the merged changes in the trunk. This behavior is described in more depth at http://www.pgrs.net/2007/10/16/automatically-merge-changes-from-branch-to-trunk