On Sat, 6 Mar 2010, David O'Brien wrote:

No, not it isn't. Provide a script to convert path's in the diff. This is what $LARGE_FREEBSD_USER did when it rearranged it source tree.

It was done by creating a copy of the CVS repo and moved files around. Old releases stayed in the old repo, and new releases done from the new repo. 'diff | fixpatch | patch -p0' were used to move code between sandboxes.

Indeed, this is precisely the problem: rearranging the tree upstream means that you most likely can't use the revision control system to manage your local difference set downstream. Instead, you have to manually extract your local changes, rework them to match arbitrary upstream rearrangement, and re-apply them as a single changeset creating a discontinuity in your revision history. This in turn creates problems with annotate, log, backing out changes prior to the merge, etc. All the reasons we like to use revision control for significant work.

What you describe may work OK(ish) if you have to do it once every 3-6 years as a single massive merge and you were planning to do it by hand anyway (CVS and patches). However, other downstream users (including our own development branches in Subversion, P4, etc) reasonably expect to be able to use contemporary tools to manage the merge on a more frequent basis.

As I said before: this isn't a vote not to rearrange things once in a while, it's instead a caution to say: this has a significant cost beyond "svn mv" that has to be taken into account when making the decision, so we should only do it with significant forethought and where there is significant benefit.

Robert N M Watson
Computer Laboratory
University of Cambridge
freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to