svn commit: r195829 - stable/7/sys/dev/usb

John Baldwin jhb at freebsd.org
Thu Jul 23 20:00:31 UTC 2009


On Thursday 23 July 2009 3:03:38 pm Bruce Simpson wrote:
> John Baldwin wrote:
> > ...
> > That's because you merged to the file rather than to sys/.  There's a set of 
> > instructions about mergning with SVN on the wiki that explains why to do 
> > kernel merges to sys/ instead of individual files.
> >   
> 
> I read them, having been pointed at them by kib@ -- but they didn't 
> explain why contrib/pf was being touched at all.

True enough, though I was pointing to the docs to explain merging to sys/
rather than the file.  I should probably add some note to the wiki page
about the "spurious" mergeinfo.

The short version is that stable/7/sys/contrib/pf has two sets of mergeinfo:
1 from head/sys/contrib/pf and 2 from vendor-sys/pf.  2) is inherited from
head and is a result of a vendor update of pf being merged over from the
vendor area into sys/contrib/pf.  It is not suitable for other parts of the
kernel.  1) is the normal mergeinfo for merges from head/sys to stable/7/sys.
However, a design choice in mergeinfo is that mergeinfo is not inherited
via pathnames.  Specifically, when the svn client starts walking up the path
tree to find mergeinfo, it stops at the first parent directory that has any
mergeinfo whatsoever and expects that mergeinfo to fully describe all the
mergeinfo for its subtree.  Thus, because the mergeinfo from 2) is
present on sys/contrib/pf, the mergeinfo in 1) has to be duplicated in
sys/contrib/pf in addition to sys.

I'm not sure this is the best design, but that is the way Subversion works.

-- 
John Baldwin


More information about the svn-src-all mailing list