First of all, I totally approve of moving to Subversion. Daniel Berlin wrote: >I also plan on excluding merge tags
It's not safe to exclude the most recent mergepoint tag for a live branch. We will lose necessary information for the next merge to that branch. You wrote elsewhere: >Find the current revision of the apple-ppc-branch using svn info on your >checked out copy. Right, this gives the revision number for the apple-ppc-branch. >From your checked out copy of the apple ppc branch, type: > >"svn merge -r<current rev that tells you>:HEAD >svn://svn.toolchain.org/svn/gcc/trunk " > >That will merge in all the changes from the HEAD since the last time you >merged. No, it won't. This compares the status of "trunk" between your branch and HEAD. Is "trunk" on apple-ppc-branch going to contain the trunk from the last time apple-ppc-branch was merged from trunk? Why *would* it? (I suppose special procedures used during previous merges could have had that effect, but that doesn't apply to converted-from-CVS stuff.) Obviously, for a brand-new branch, it would contain the branchpoint, which is correct. For a branch which has had a merge from trunk already, it will *not*. I'm looking at the docs for svn 1.1.3 here. >From the Subversion book: "Ideally, your version control system should prevent the double-application of changes to a branch. It should automatically remember which changes a branch has already received, and be able to list them for you. It should use this information to help automate merges as much as possible. "Unfortunately, Subversion is not such a system. Like CVS, Subversion does not yet record any information about merge operations. When you commit local modifications, the repository has no idea whether those changes came from running svn merge, or from just hand-editing the files." This is especially true of old merges being ported over from CVS. In order to merge correctly, we need to know the last repository revision number on trunk which was merged into the branch. This means, in the case of an old merge done in CVS, the revision number corresponding to the last mergepoint. (For a new, all-svn branch, there are easier ways of keeping track of that revision number, like putting it in the log message for the merge.) -- This space intentionally left blank.