Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Sep 2020 22:37:35 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Christian Weisgerber <naddy@mips.inka.de>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Subject:   Re: Plans for git
Message-ID:  <YTBPR01MB3966DE2569798A263AEB301CDD3D0@YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <slrnrmerpg.1s57.naddy@lorvorc.mips.inka.de>
References:  <CAPyFy2CTTecRJDnXNvF%2BM2%2BaLWJpA%2BEdG43ZeU3qwsCruecoFA@mail.gmail.com> <20200902045939.GA15897@eureka.lemis.com> <20200902060117.GG53210@home.opsec.eu> <20200902063136.GA47543@troutmask.apl.washington.edu> <CAPyFy2ANWEiA2ndE6qr_kY=sPuY%2BeaAZg=apWo0OZPVC7pkwkg@mail.gmail.com> <20200902164706.GA49777@troutmask.apl.washington.edu> <CANCZdfp8b78yNB8S2j1xHUKEz5iGNvdBGnw774_sXXtN9ucrSw@mail.gmail.com> <5c89b4d27281f5dfffc3252a90013b0ac6c763d7.camel@freebsd.org> <5c832482-b2bc-47e4-8762-8f5a886d5f11@www.fastmail.com> <e0b8e48e2942c019e05bdc21a6502379235f9073.camel@freebsd.org> <68585ca4-5ca4-40d3-b2f4-67ff3b35b6ae@www.fastmail.com> <0be2ae57d1c58e2091f4cc4484731df0@bsdforge.com> <967D73EA-880E-413D-B748-62A406C46524@FreeBSD.org> <9f89dc553e7d7b0884c2862329bdfeae@bsdforge.com> <CANCZdfqoFC9vD7ue=7FfYbaxYDivFxRX45DQNVRuidj%2BDvq_2A@mail.gmail.com> <CACpH0Mefr48tKfb-L-wiEPCCNMP31NumBrxJ%2B5eb02AmUt=hKw@mail.gmail.com>, <slrnrmerpg.1s57.naddy@lorvorc.mips.inka.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Christian Weisgerber wrote:=0A=
> On 2020-09-19, Zaphod Beeblebrox <zbeeble@gmail.com> wrote:=0A=
> =0A=
> > Hrm.  Maybe what I hear others saying, tho, and not entirely being repl=
ied=0A=
> > to is just a nice concise document of the why.  What I hear you saying =
is=0A=
> > that GIT has momentum and that it's popular... (and I accept that --- i=
t is=0A=
> > evidently true), but then I hear handwaving about features, but no list=
 of=0A=
> > features that are a clear win/loose.=0A=
>=0A=
> How about the very basics (that Warner appears to have lost sight=0A=
> of)?=0A=
>=0A=
> Git is a distributed version control system.  You clone a repository=0A=
> and apart from pulling and pushing changes to another repository,=0A=
> all your work happens with the local repository.  Subversion has a=0A=
> central repository and needs to talk to the server all the time.=0A=
> Laptop on a plane?  No change of workflow with Git.=0A=
Well, I (mostly lurk) on the linux-nfs@vger.kernels.org mailing list,=0A=
where the Linux NFS work gets done.=0A=
What I see is the following, when someone has an enhancement/change=0A=
for the Linux NFS code.=0A=
Do I see one diff with all the changes in it...No.=0A=
I see anywhere from a few to over 50 email messages, each with=0A=
one little piece of the pie, out of git.=0A=
=0A=
I have no idea how they review this stuff.=0A=
If I were stuck doing it, I'd end up creating an unpatched tree, copying it=
=0A=
and applying all the patches to the copy and then creating a single diff=0A=
to look at in phabricator, which does display the changes very nicely.=0A=
=0A=
So, I hope that a transition to git does not encourage "lots of small=0A=
loosely related commits" to the FreeBSD repository.=0A=
=0A=
Also, I find svnweb useful, mostly to look at the commits done to a=0A=
file in temporal (most recent first) order. The global serial revision=0A=
number is very nice, but so long as it is easy to see the temporal=0A=
ordering of changes, I can live with that.=0A=
=0A=
> And since it's your repository, you can cheaply create your own=0A=
> branches, where you can commit your work and have a versioned history=0A=
> of it instead of just a flat diff.  I can't overstate the value of=0A=
> that.  Whether you work on something that will be pushed back=0A=
> upstream or just your private changes, it has a full commit history.=0A=
I, on the other hand, will have no use for this. I can easily keep track of=
=0A=
changes I do by naming file.sav, file.sav2,...=0A=
I like to carefully merge changes into the repository checkout after I've=
=0A=
tested them, taking a careful look at the changes as I go.=0A=
I find most of the subtle bugs (that wouldn't be detected during normal=0A=
testing) during this "code inspection".=0A=
--> I think anything that encourages another look at the change before=0A=
      commit is a good thing.=0A=
      Put another way, slow and careful is better than quick and easy, imho=
.=0A=
=0A=
I've live with the transition, but to be honest, I know it won't make my=0A=
work better or easier, rick=0A=
=0A=
You can easily revert commits, you can upstream it one by one, you=0A=
can upstream it with history.=0A=
=0A=
When FreeBSD switched from CVS to SVN, there was hope or promise=0A=
of lightweight branches, but that never materialized.  Developers=0A=
still can't have private branches in the FreeBSD repository.  For=0A=
a while, a lot of development happened in a Perforce repository--a=0A=
commerical version control system, whose company had donated a=0A=
license--which offered this feature.  Nowadays, everybody who does=0A=
any but the most trivial development does so in a private Git=0A=
repository anyway.  It only makes sense to interface this directly=0A=
with the FreeBSD repository instead of going through a SVN<>Git=0A=
media break.=0A=
=0A=
> Certainly the only clear things a quick search turns up that seem relevan=
t=0A=
> is that GIT is GPL2.0 and SVN is Apache2.0.  This was enough for LLVM vs=
=0A=
> GCC and the repository is a core function, but I suppose not a necessary=
=0A=
> function for forked projects that can't abide, so...=0A=
=0A=
There is a bit of historical precedent: The original BSD work at=0A=
Berkeley was kept in a SCCS repository, a proprietary version control=0A=
system at the time.=0A=
=0A=
And of course the fact that significant FreeBSD development has=0A=
effectively happened in Perforce, then in Git for a long time and=0A=
is just merged back into the Subversion repository.  To put it=0A=
bluntly, the people doing the work have voted with their feet years=0A=
ago.=0A=
=0A=
--=0A=
Christian "naddy" Weisgerber                          naddy@mips.inka.de=0A=
_______________________________________________=0A=
freebsd-current@freebsd.org mailing list=0A=
https://lists.freebsd.org/mailman/listinfo/freebsd-current=0A=
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"=
=0A=
=0A=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTBPR01MB3966DE2569798A263AEB301CDD3D0>