Subversion 1.5 is a superset of all previous Subversion releases, and is considered the current "best" release. Any feature or bugfix in 1.0.x through 1.4.x is also in 1.5, but 1.5 contains features and bugfixes not present in any earlier release. The new features will eventually be documented in a 1.5 version of the free Subversion book, see svnbook.red-bean.com.
Older clients and servers interoperate transparently with 1.5 servers and clients. However, some of the new 1.5 features (e.g., merge tracking) may not be available unless both client and server are the latest version . There are also cases (e.g., sparse checkouts) where a new feature will work but will run less efficiently if the client is new and the server old.
There is no need to dump and reload your repositories. Subversion 1.5 can read repositories created by earlier versions. To upgrade an existing installation, just install the newest libraries and binaries on top of the older ones.
Subversion 1.5 maintains API/ABI compatibility with earlier releases, by only adding new functions, never removing old ones. A program written to the 1.0, 1.1, 1.2, 1.3, or 1.4 API can both compile and run using 1.5 libraries. However, a program written for 1.5 cannot necessarily compile or run against older libraries.
| New Feature | Minimum Client | Minimum Server | Minimum Repository | Notes |
|---|---|---|---|---|
| Merge tracking | 1.5 | 1.5 | 1.5 | |
| Sparse checkouts | 1.5 | any | any | |
| Interactive conflict resolution | 1.5 | any | any | |
| Changelist support | 1.5 | any | any | |
| Relative URLs, peg revisions in svn:externals | 1.5 | any | any | |
| Cyrus SASL support for ra_svn and svnserve | any*, 1.5 | any*, 1.5 | any | *Limited, see SASL and svn:// compatibility |
| Improved support for large deployments on FSFS, via sharding | any*, 1.5 | 1.5 | 1.5 | *1.5 required for file:// compatibility |
| Improved FSFS optimizability, via immutable file isolation | any*, 1.5 | 1.5 | 1.5 | *1.5 required for file:// compatibility |
| WebDAV transparent write-through proxy | any | 1.5* | any | *Apache 2.2 server also required |
| Improvements to copy and move | 1.5 | any*, 1.5 | any | *Limited, see Copy/move-related improvements |
| Speed improvements, cancellation response improvements | 1.5 | any | any | |
| Easier to try experimental ra_serf DAV access module | 1.5 | any | any |
The working copy format has been upgraded. This means that 1.4 and older Subversion clients will not be able to work with working copies produced by Subversion 1.5. Working copies are upgraded automatically.
Similarly, the repository format has changed, meaning that 1.4 and older versions of Subversion tools that normally access a repository directly (e.g. svnserve, mod_dav_svn, svnadmin) won't be able to read a repository created by Subversion 1.5. But, repositories are not upgraded automatically.
WARNING: if a Subversion 1.5 client encounters a pre-1.5 working copy, it will automatically upgrade the working copy format as soon as it touches it, making it unreadable by older Subversion clients. If you are using several versions of Subversion on your machine, be careful about which version you use in which working copy, to avoid accidentally upgrading a working copy. (But note that this "auto upgrade" behavior does not occur with the repositories, only working copies.)
If you accidentally upgrade a 1.4 working copy to 1.5, and wish to
downgrade back to 1.4, use the change-svn-wc-format.py script. See this FAQ entry for details, and run the script with the
--help option for usage instructions.
The Subversion 1.5 server works with 1.4 and older repositories,
and it will not upgrade such repositories to 1.5 unless
specifically requested to via the
svnadmin upgrade command. This means
that some of the new 1.5 features will not become available simply by
upgrading your server: you will also have to upgrade your
repositories. (We decided not to auto-upgrade repositories because we
didn't want 1.5 to silently make repositories unusable by
1.4 — that step should be a conscious decision on the
part of the repository admin.)
After running svnadmin upgrade,
you may wish to also run the svn-populate-node-origins-index program on the repository.
Subversion 1.5 maintains a node-origins index for each repository, and
builds the index lazily as the information is needed. But for old
repositories with lots of revisions, it's better to create the index
in one step, using the aforementioned tool, than to have live queries
be slower until the index has built itself. See issue
#3024 for details.
Although we try hard to keep output from the command line programs compatible between releases, new information sometimes has to be added. This can break scripts that rely on the exact format of the output. Unfortunately, we are not able to enumerate all of the output changes in 1.5, but one of them is that conflict markers in files now match the file's defined eol-style.
svn:// compatibilityAll 1.x clients, with or without Cyrus SASL support, will be able to authenticate against all 1.x servers that do not have Cyrus SASL enabled. Note that the CRAM-MD5 and ANONYMOUS mechanisms are built into Subversion, so you'll be able to use them even if the corresponding Cyrus SASL plugins are missing.
1.x clients without Cyrus SASL support will be able to authenticate against 1.5+ servers with SASL enabled, provided the server allows the CRAM-MD5 and/or ANONYMOUS mechanisms.
1.5+ clients with Cyrus SASL support will be able to authenticate against 1.5+ servers with SASL enabled, provided at least one of the mechanisms supported by the server is also supported by the client.
See this section for more information on using Cyrus SASL with Subversion.
Each revision in Subversion has a set of revision properties
associated with it; in addition to the standard log message, author,
and date, arbitrary user-defined properties can be set. These
properties are not themselves versioned, so there is no way to revert
changes to them. Because of this, you cannot modify revprops on a
committed revision without setting up a pre-revprop-change
hook on the server. Before Subversion 1.5, only the three standard
revprops could be set at commit time; administrators using hooks to
control the contents of the three standard revprops needed to check
during pre-commit and pre-revprop-change, but for
custom revprops, only pre-revprop-change appeared
relevant.
Subversion 1.5 adds a --with-revprop option to svn commit which allows users to specify revprops for revisions as they commit them. Thus, in Subversion 1.5, it is possible for revproperties to be set on revisions without any pre-revprop-change. The pre-commit hook can examine the transaction's revision properties before it is committed (just like many servers already use pre-commit to check for properly formatted log messages, e.g.).
This means that if you previously relied on pre-revprop-change to control the ability to write to revprops (as opposed to just keeping track of their history), you may want to add similar controls to pre-commit.
Merge tracking means Subversion keeps track of what changes have been merged where. This reduces the overhead involved in maintaining branches, and gives users a way to inquire what changes are merged — or are available to be merged — on different lines of development.
The merge tracking support in Subversion 1.5 is "foundational": its basic functionality is implemented, but there are still parts of our original spec that remain to be done, and merging is sometimes too slow. There will be merge tracking improvements in Subversion 1.5.1 and afterwards. In the meantime:
Take a look at the list of known issues
Read "The Final Word on Merge Tracking" in the Subversion Book
Read "Understanding the internals of Subversion's merge tracking feature" by Paul Burba
Subversion's merge tracking is designed to:
Each changeset is identified by its revision number, and merged
changesets are recorded in the new
svn:mergeinfo property (known colloquially
as "mergeinfo") set on the destination of the merge. Subversion keeps
mergeinfo up-to-date automatically, but there is also a way to record/unrecord merges manually, since
there will always be cases where a human knows something that
Subversion doesn't.
Merging changes from (say) trunk to a branch no longer requires that you specify the revision range. Instead, each time you want to sync up with trunk, you can just do:
$ cd BRANCH_WORKING_COPY $ svn merge URL_TO_TRUNK
Subversion will figure out what changes from URL_TO_TRUNK have not yet been merged and pull in just those changes. When it's time to merge the branch back to trunk, do this:
$ cd TRUNK_WORKING_COPY $ svn merge --reintegrate URL_TO_BRANCH
Below is a more formal description of all the merge-tracking-related interface changes.
The svn merge command takes two new
options: --record-only and
--reintegrate.
The --record-only option works with -r and does exactly what you think it does: it marks a revision as merged (or unmerged, if using the "-" revision number negation syntax), without actually changing anything besides the mergeinfo. For example, this would be useful when someone has hand-edited a file in such a way as to effectively incorporate a change that was already made somewhere else. Rather than have the original change be ported over in the next synchronization merge, thus risking textual conflicts wherever the two versions trivially differ, you can just record the change as already merged. (See the merge-tracking requirements, and Blocking Changes in the Subversion book, for more details.)
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">
The --reintegrate option is used when merging a branch back to
trunk; it checks for some common safeguard conditions and then does
the merge in a fast and efficient way. See Blockin-reintegrate">