Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2008-06-29 20:58:18


On Jun 29, 2008, at 4:39 PM, Douglas Gregor wrote:
> On Sun, 2008-06-29 at 16:12 -0400, Daryle Walker wrote:
>>
>>
[SNIP]
>
>> Is there a schedule for these upgrades to be done (if not done
>> already)?
[SNIP]
> As for the upgrade... we're looking into Subversion 1.5, but it
> appears
> to be a nontrivial process to perform the upgrade and migrate
> svnmerge.py merge information appropriately, so we need to read
> more, do
> some test runs, check that other projects haven't run into serious
> problems, etc. So much depends on the Subversion repository that we
> need
> to be careful.
>
> When we're ready to move, we'll send out an e-mail to the mailing
> list.

OK, I've quickly poked around some pages right now related to
Subversion 1.5 and/or svnmerge.py (Googling "subversion 1.5
svnmerge.py" w/o quotes), and here's my suggestions on the policy we
should take here. Since I'm guesstimating, please double check with
actual Subversion experts before enacting this.

A key assumption I made is that, although the SVN-1.5 merge system is
loosely based on svnmerge, they use distinct name-spaces for the meta-
data attributes needed.

1. We can upgrade the server system to 1.5 right away. Since the
repository won't be converted (yet), the server will act in 1.4-
compatibility mode and 1.4-clients (and 1.5-clients, mostly) will be
none the wiser. Enjoy the bug fixes, but maybe anti-enjoy the
bleeding edge. Look & see, and possibly wait for 1.5.1.

2. After the new server works to our satisfaction, we can apply the
upgrade procedure to our repository. Members with 1.5-clients can
fully use the new features, but 1.4-clients will still be none the
wiser.

3. [I am _assuming_ here.] The 1.4/svnmerge and native-1.5 systems
use distinct meta-attributes, and therefore CAN CO-EXIST on the same
server. Anyone can checkout and use branches created by either
system; but the branching, merging from trunk, and final merging to
trunk phases MUST all be done by members with the same branch/merge
philosophy! In other words, a 1.4/svnmerge member can checkout a
branch created by a native-1.5 member, but only other native-1.5
members should handle any (re)merging, and vice-versa. Members with
1.5-clients must get a copy of the svnmerge script to keep using a
branch under the 1.4/svnmerge system. (I don't know if the script is
still included.)

4. I feel that automatic migration between branch/merge systems,
with the provided script, SHOULD NOT be done. Migration assumes a
one-way path; once the server does the migration, all members MUST
dump svnmerge and switch to 1.5 clients if they want to keep merge
control on branches (since the svnmerge meta-data is purged/
outdated)! This is easy for a single developer or a dictatorial
programming group, but not good for a rag-tag band of programmers
that come in and out of play at different rates.

5. Once we transition fully to 1.5, members should branch/merge with
the native-1.5 system for NEW branches. Members with 1.4-clients
need to upgrade to a 1.5-client to have merge control[1]. Existing
branches should retain the 1.4/svnmerge system (so 1.5-clients need
to download the script), but should wrap up their lifetimes as soon
as possible to reduce the mix of branch/merge systems. (I don't
think members should kill a 1.4/svnmerge system and immediately
resurrect it as native-1.5.)

[1] Note that using a 1.5-client on a pre-1.5 working copy
automatically upgrades said working copy. That working copy is now
unusable by any GUI client, Explorer/Finder plug-in, or other client
that carries an internal copy of the 1.4 APIs (or official command-
line client).

-- 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk