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>