propose: all arch move into a separate dir

Robert Watson rwatson at FreeBSD.org
Sun Mar 7 20:51:23 UTC 2010


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


More information about the freebsd-current mailing list