I read the technical development document for Subversion and have a
few questions. It might be that these question have already been taken
care of (since I was warned that the technical document is out of
date).
* There are plans for Subversion to have a file track all predecessor
versions to help improve Subversion merging capabilities. The
discussion sounded interesting, but the proposed structure sounded
fairly complex since each version of the file must know all of its
ancestors and in order to do a merge, you must got through both sets
of ancestors to do the merge.
It would seem simpler to simply track where a merge took place (from
the version of what file on one branch to the version of the same file
on another branch). You can think of this information as a pointer
from one version of a file on one branch to a version of the same file
on another branch.
From these pointers, it should be simple enough to find the last
common ancestor between the two versions and do the merge comparing
the HEADS of the branches involved with the merge to the last common
ancestor between the two branches. I know when you do a URL copy, the
branch where you copied from and the branch where you copied to is
stored. All you need is a way to track the from version and to version
when you do a merge (maybe a couple of properties like
"svn;merge-from" and "svn:merge-to".
* Does Subversion handle directory merging or are there plans for
Subversion to be able to merge directory structures? I didn't see
anything in the technical documentation about this.
* There is also a discussion about changing the way moves are done
since Subversion treats each move as a "delete and create". I take it
that means Subversion doesn't understand that if I have a file
http://snv/myproj/foodir/foo.cc and I do a "svn move
http://svn/myproj/foodir/foo.cc http://svn/myproj/bardir/foo.cc",
Subversion doesn't realize that the foo in foodir is an ancestor of
foo.cc in bardir. Is this correct? The same is also true with rename
operations? I understand that you should be able to look at the log
and guess what happened, but Subversion itself won't give you a
complete history of a file if it was either moved or renamed. Is this
correct?
Please let me know if there is any documentation that discusses these
issues. Thanks.
--
David Weintraub
qazwart@gmail.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jun 28 04:15:39 2005