On Fri, Feb 01, 2013 at 11:11:05AM -0500, Alfred Perlstein wrote:
> So I have two answers here:
>
> 1) about mergeinfo
> It seems as if doing it all at the top can make merges over long
> haul internet very painful.
I acknowledge that a merge that runs across the entire FreeBSD src
tree can be slow.
For this and other reasons, it can make sense to create mergeinfo at
particular levels of the tree.
For example, it can make sense to run kernel code merges within src/sys,
and userland changes elsewhere. Subversion won't care. Keeping a consistent
pattern by documenting the expected roots used for merges and then using
those consistently will help create a clean log history.
I see that FreeBSD has already documented this, which is good!
The major hassle created by lots of subtree mergeinfo is property
changes cluttering out of commands such as 'svn log -v' and 'svn diff'.
This was particularly bad with Subversion 1.6, which updated any subtree
mergeinfo with a merge target, regardless of whether the merge actually
touched content of the files and directories which had their svn:mergeinfo
property updated. This has been addressed in Subversion 1.7, see:
http://subversion.apache.org/docs/release-notes/1.7.html#subtree-mergeinfo-recording
Also, there is no way to filter excessive property changes from the
output of 'svn diff'. This will be partly addressed in Subversion 1.8
by a new --ignore-properties option, see
http://subversion.apache.org/docs/release-notes/1.8.html#svn-diff
While this suppresses all property diffs and doesn't target
svn:mergeinfo in particular, it can help with producing diff output
that more usable than the default output in some cases.
> 2) about reintegrate
> I've attached the two messages that show what makes FreeBSD gun shy
> about merges to HEAD.
> Maybe these issues are resolved, or maybe the developer did
> something incorrect, or maybe something else entirely different
> happened.
See my response below.
It turns out that this wasn't a problem with --reintegrate at all,
but a user error made during a sync merge.
> Date: Fri, 1 Feb 2013 09:49:23 -0500
> From: John Baldwin
> To: Alfred Perlstein
> Subject: Fwd: Re: SVN merge question.
> X-Spam-Level:
> User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p22; KDE/4.5.5; amd64;
> ; )
> Content-Type: Multipart/Mixed; boundary="Boundary-00=_zX9CRbNRbX0geE6"
> Message-Id: <201302010949.23897@freebsd.org>
>
>
> --
> John Baldwin
> Date: Fri, 1 Jun 2012 13:56:03 -0400
> From: John Baldwin
> To: obr...@freebsd.org
> Cc: Grzegorz Bernacki , Eitan Adler ,
> develop...@freebsd.org
> Subject: Re: SVN merge question.
> User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p13; KDE/4.5.5; amd64;
> ; )
> Content-Type: Text/Plain; charset="iso-8859-1"
> Message-Id: <201206011356.03933@freebsd.org>
>
> On Friday, June 01, 2012 1:40:29 pm David O'Brien wrote:
> > On Wed, May 16, 2012 at 11:00:48AM -0400, John Baldwin wrote:
> > > I more or less don't trust svn merge to DTRT here. This was done with
> > > the cpuset branch merge up to HEAD and it broke the log history of many
> > > files in HEAD.
> >
> > Specifically how did it break log history?
>
> http://svnweb.freebsd.org/base/head/share/man/man4/geom_map.4?view=log
>
> You have to walk up to the previous directory in svnweb and go back to
> change 222812 and then click on geom_map.4 to find its original log.
>
> sys/dev/iicbus/ad7417.c was also busted this way.
Adrian Chadd originally added the man page to the head branch in this
revision:
[[[
r221501 | adrian | 2011-05-05 16:43:35 +0200 (Thu, 05 May 2011) | 4 lines
Changed paths:
M /head/share/man/man4/Makefile
A /head/share/man/man4/geom_map.4
Add a manpage for geom_map(4).
Submitted by: r...@dlink.ua
]]]
In a later revision, Attilio Rao re-added the same file to the largeSMP
branch, apparently while being immersed in a cloud of rage against svn :)
[[[
r221716 | attilio | 2011-05-10 00:13:07 +0200 (Tue, 10 May 2011) | 4 lines
Changed paths:
A /projects/largeSMP/share/man/man4/geom_map.4
A /projects/largeSMP/sys/nfs/nfs_kdtrace.h
A /projects/largeSMP/sys/sys/_stdint.h
A /projects/largeSMP/tools/build/options/WITHOUT_GPIO
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote1.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote2.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote3.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote4.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote5.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote6.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote7.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote8.0
A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote9.