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
University of Cambridge
firstname.lastname@example.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"