Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2018 16:21:04 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Ian Lepore <ian@freebsd.org>, "Rodney W. Grimes" <rgrimes@freebsd.org>,  Mark Johnston <markj@freebsd.org>, Andriy Gapon <avg@freebsd.org>, src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   Re: svn commit: r331461 - in user/markj/netdump/sys: kern netinet/netdump sys vm
Message-ID:  <CANCZdfoSK-MDsSCECDZ9W38NgMK%2BMf4F7MaFni8dpHOy5j6j9w@mail.gmail.com>
In-Reply-To: <2082659.Evq4QelJlA@ralph.baldwin.cx>
References:  <201803241540.w2OFeOcX037035@pdx.rh.CN85.dnsmgr.net> <1621825.K6AdhHRnSW@ralph.baldwin.cx> <1522088785.49673.25.camel@freebsd.org> <2082659.Evq4QelJlA@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 26, 2018 2:54 PM, "John Baldwin" <jhb@freebsd.org> wrote:

On Monday, March 26, 2018 12:26:25 PM Ian Lepore wrote:
> On Mon, 2018-03-26 at 10:12 -0700, John Baldwin wrote:
> > On Saturday, March 24, 2018 08:40:24 AM Rodney W. Grimes wrote:
> > >
> > > >
> > > > On Sat, Mar 24, 2018 at 02:17:02PM +0200, Andriy Gapon wrote:
> > > > >
> > > > > On 24/03/2018 04:46, Rodney W. Grimes wrote:
> > > > > >
> > > > > > I know this is on a private branch, but when/if it
> > > > > > is merged this becomes part of the main line.
> > > > > Not with svn, I think.
> > > > > At least, the way we use it.
> > > > Indeed, I have no intention to merge the branch directly. I'm using
an
> > > > svn branch so that it's marginally easier for others to test.
> > > None the less as stated in:
> > >   https://svnweb.freebsd.org/base/projects/GUIDELINES.txt?view=markup
> > >
> > > 12        General guidelines:
> > > 13
> > > 14        * Should be relevant to FreeBSD.
> > > 15        * Should be at least conceivably of interest to somebody
else.
> > > 16        * Should be in a format that is suitable to merge into the
base tree.
> > > 17        * Should be something that is worth people's time to read
commit mail for.
> > > 18        * Write decent commit messages!
> > >
> > > Thanks,
> > We generally don't do that for user, etc. branches.  Merging from a
> > projects/user branch into head in svn is often a disaster due to svn's
> > limitations, so normally a projects/user branch is treated as a work
area
> > and the resulting diff is then hand-applied to head with a suitable
commit
> > message that describes the entire change.  This is similar to using
something
> > like 'git rebase' to rewrite history and compress a long tail of changes
> > down to a small number of commits prior to merging to head.
> >
> > You generally don't see these work branches in svn as most developers
do them
> > outside of svn in git, p4, hg, etc. due to svn's limitations.
> >
> > For things that live permanently in user/projects (e.g. the code for
core
> > elections or the patches for freebsd-update), we do want standard commit
> > messages.  However, I don't think we want to impose that on WIP branches
> > that are later compressed down before merging.
> >
>
> The support for armv6 happened this way... lots of out-of-tree and
> project-branch work, with nothing much useful in the way of commit
> messages, followed by a single massive import with a commit summary of
> something like "import armv6 support".
>
> Now when you try to search svn history for how something came to be,
> all you can find out is that it was part of the incomprehensibly-huge
> initial commit.  You can't even figure out who to ask about something,
> let alone why something was done.

That isn't fixed by having detailed commits in a WIP branch for compile
fixes.  To me that particular issue should be addressed by doing a better
job
importing things into HEAD including pulling out pieces of long-running
branches and merging them as multiple commits each with useful commit
messages.  We should not rely on being able to find the history behind
commits to HEAD because that history (if it exists) lives in random places.


I have been doing longterm work with git rebase to curate the work for
pushing to FreeBSD as the sub parts become available. For Lua thete were a
hundred or so cleanup commits that preceded tthe main push it in commits (4
or 5 I think). Had I done a traditional svn branch, it would have been a
huge dump all at once. By doing the 100 or so cleanup over several months,
l found the mistakes in the small, bisectable bites earlier and easier than
if I had pushed the whole mess in. Plus l developed a bunch of regression
tests to make sure I caught the common rehressions the easrly cleanups
caused. The actual development history was destoyed as i often did a messy
cleanup on my lua branch, then transported diff hunks to another branch to
polish up, push upstream then rebase the lua branch to erase the messy
version.

Early on, I published the git branch on github, but stopped becausenobody
was testing or helping. That help didn't come until I pushed the 95% done
loader sources with what I thought was 75% done lua menu things. Turns out
Kyle Evans and a few others rewrote it in the month after my push, which
makes me kijnda wish I'd pushed sooner... but it has worked out well...

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoSK-MDsSCECDZ9W38NgMK%2BMf4F7MaFni8dpHOy5j6j9w>