By Ben
Collins-Sussman, Google Code Project Hosting
We're pleased
to announce that the Subversion
component of Google Code Project
Hosting has been upgraded to version 1.5. What
does this mean to users? If you're using a Subversion 1.5 client, you can now take advantage
of Subversion's improved "merge tracking" feature to manage branches.
Prior to Subversion 1.5, branching wasn't very friendly to users. A developer had to
manually keep track of the revision from which a branch was copied. She also had to keep track
of exactly which changes had been merged into a branch already (to avoid repeated application
of changesets), and to always specify the exact range of revisions to merge next. Merging a
branch back to trunk was even more difficult, since it required comparing two precise URLs in
a very specific way.
With improved merge-tracking, users never have to
type a single revision number. Here's a basic example of branch workflow.
Make a branch for your experimental work: $ cd
trunk-working-copy $ svn cp trunkURL branchURL $ svn switch
branchURL
Work on the branch for a
while: # ...edit files $ svn commit # ...edit
files $ svn commit
Sync
your branch with the trunk, so it doesn’t fall behind: $ svn merge
trunkURL --- Merging r3452 through r3580 into '.': U button.c U integer.c ... $ svn commit
Repeat the prior two steps until you’re
done coding.
Merge your branch back into the trunk: $ svn switch trunkURL $ svn merge --reintegrate branchURL --- Merging differences between repository URLs into '.': U button.c U integer.c ... $ svn commit
For a more detailed discussion of merge-tracking (and its limitations), see
chapter
4 of the online Subversion
Book. Live in fear of branches no more!