Now that Rails has a stable branch, I would like to suggest considering using
svnmerge.py to manage the revisions in trunk that you want to pull over into the
branch. It'll make life much easier in managing commits to trunk and then
merging them to stable.
Svnmerge.py makes life easy in migrating commits from one place to another, such
as from trunk to branch. We use this all the time to take revisions on a
development trunk and merge them over into release branches.
Svnmerge.py stores into a Subversion property on the branch all the revisions
that you have merged over already and allows you to see which revisions are
available to be merged and prevents you from double merging. It allows you to
manually merge multiple non-continuous revision ranges in a single command. It
also generates a commit log message for the merge using the log message for the
revision from the trunk. Basically, merging is much easier than manually
dealing with 'svn merge -r REV1:REV2'.
After svnmerge.py is set up on the branch, if you want to pull a revision over,
you do.
$ cd stable
$ svnmerge.py -r 1234:1245,2345 # Merge revisions 1234 to 1245 and 2345 over
$ svn diff # to confirm the merge
$ svn commit -F svnmerge-commit-message.txt
The svnmerge-commit-message.txt commit message would contain the log messages
for those revisions. To see all revisions available for merge, run
$ svnmerge.py avail
You'll do something like this to set it up:
# Get the script:
$ svn cat http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.py
> svnmerge.py
$ chmod a+x svnmerge.py
# Check out your branch.
$ svn co http://dev.rubyonrails.org/svn/rails/branches/stable
$ cd stable
# Tell svnmerge.py to initialize the branch. It looks to see what revision
# the branch was created from and initializes the revisions that were already
# copied over.
# Since there have been commits to both trunk and branch, this will be a little
# more complicated. I recommend the following. The stable is almost identical
# to trunk at revision 4199 with one line difference. So tell svnmerge.py
# that the branch is identical to the trunk from revisions 1-4199.
$ svnmerge.py -s -v -v init -r 1-4199
# Then resolve the any difference between stable and trunk by manually
# applying this patch.
--- ../rails-stable/railties/environments/environment.rb 2006-04-07
11:49:46.000000000 -0700
+++ ./railties/environments/environment.rb 2006-04-07 12:18:41.000000000
-0700
@@ -5,7 +5,7 @@
# ENV['RAILS_ENV'] ||= 'production'
# Specifies gem version of Rails to use when vendor/rails is not present
-<%= '# ' if freeze %>RAILS_GEM_VERSION = '<%= Rails::VERSION::STRING %>'
+<%= '# ' if freeze %>RAILS_GEM_VERSION = '<%= Rails::VERSION::STRING %>' unless
defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
# Finally, commit.
$ svn commit -F svnmerge-commit-message.txt
Regards,
Blair
--
Blair Zajac, Ph.D.
<[EMAIL PROTECTED]>
Subversion training, consulting and support
http://www.orcaware.com/svn/
_______________________________________________
Rails-core mailing list
Rails-core@lists.rubyonrails.org
http://lists.rubyonrails.org/mailman/listinfo/rails-core