Link copied to clipboard
By Ben Collins-Sussman, Google Code Project HostingWe'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!