From owner-freebsd-current@freebsd.org Sun Sep 20 20:54:06 2020 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 843B53F0DD6 for ; Sun, 20 Sep 2020 20:54:06 +0000 (UTC) (envelope-from rcarter@pinyon.org) Received: from h2.pinyon.org (h2.pinyon.org [65.101.20.170]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Bvfv11GZHz4WNv for ; Sun, 20 Sep 2020 20:54:04 +0000 (UTC) (envelope-from rcarter@pinyon.org) Received: from [10.0.10.15] (unknown [10.0.10.15]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by h2.pinyon.org (Postfix) with ESMTPSA id 8750329BC1 for ; Sun, 20 Sep 2020 13:54:02 -0700 (MST) Subject: Re: Plans for git To: freebsd-current@freebsd.org References: <20200902060117.GG53210@home.opsec.eu> <20200902063136.GA47543@troutmask.apl.washington.edu> <20200902164706.GA49777@troutmask.apl.washington.edu> <5c89b4d27281f5dfffc3252a90013b0ac6c763d7.camel@freebsd.org> <5c832482-b2bc-47e4-8762-8f5a886d5f11@www.fastmail.com> <68585ca4-5ca4-40d3-b2f4-67ff3b35b6ae@www.fastmail.com> <0be2ae57d1c58e2091f4cc4484731df0@bsdforge.com> <967D73EA-880E-413D-B748-62A406C46524@FreeBSD.org> <9f89dc553e7d7b0884c2862329bdfeae@bsdforge.com> <6ae80681-f866-756e-d361-10e742d2dbf5@FreeBSD.org> From: "Russell L. Carter" Message-ID: <23a4cfd5-e7a7-4c8f-5cc8-7937caae4009@pinyon.org> Date: Sun, 20 Sep 2020 13:54:02 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <6ae80681-f866-756e-d361-10e742d2dbf5@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.10 X-Rspamd-Server: h2 X-Rspamd-Queue-Id: 4Bvfv11GZHz4WNv X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.70 / 15.00]; RCVD_TLS_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[pinyon.org:s=dkim]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_DN_NONE(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-1.05)[-1.045]; ARC_NA(0.00)[]; DKIM_TRACE(0.00)[pinyon.org:+]; NEURAL_HAM_SHORT(-0.19)[-0.195]; DMARC_NA(0.00)[pinyon.org]; NEURAL_HAM_MEDIUM(-0.96)[-0.959]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:209, ipnet:65.101.0.0/18, country:US]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[freebsd-current] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Sep 2020 20:54:06 -0000 On 2020-09-20 12:28, Andriy Gapon wrote: > Just my +100500 to this. > > On 20/09/2020 18:03, Christian Weisgerber wrote: >> On 2020-09-19, Zaphod Beeblebrox wrote: >> >>> Hrm. Maybe what I hear others saying, tho, and not entirely being replied >>> to is just a nice concise document of the why. What I hear you saying is >>> that GIT has momentum and that it's popular... (and I accept that --- it is >>> evidently true), but then I hear handwaving about features, but no list of >>> features that are a clear win/loose. >> >> How about the very basics (that Warner appears to have lost sight >> of)? >> >> Git is a distributed version control system. You clone a repository >> and apart from pulling and pushing changes to another repository, >> all your work happens with the local repository. Subversion has a >> central repository and needs to talk to the server all the time. >> Laptop on a plane? No change of workflow with Git. >> >> And since it's your repository, you can cheaply create your own >> branches, where you can commit your work and have a versioned history >> of it instead of just a flat diff. I can't overstate the value of >> that. Whether you work on something that will be pushed back >> upstream or just your private changes, it has a full commit history. >> You can easily revert commits, you can upstream it one by one, you >> can upstream it with history. Back in 2009 I had my small dev group using git-svn to allow us all to work remotely with at least *some* flexibility against the $JOB svn repo. The svn interactive response was dreadful over our DSL connections. I flew to SF to the $JOB hq and purposely made a few offline commits on the plane. Then at the office I merged them, trivially. None of the devs there had any experience with git. It blew their minds. (obvs any other DVCS can do that too) git can seem to have bottomless command line complexity from the point of view of a casual user. I look at the answers to edge case problems posted on SO and just laugh. People have careers being git specialists. However you don't need to know much to get very productive. And if you use emacs, there is no debate that magit is a stellar interface to git, maybe the very best. I believe I've heard noises about its functionality being replicated into vim. Once you use something like magit even complex operations have very little cognitive overhead. For example, picking the exact changes you want to commit together from an already coded larger set of changes is easy. I'm always fixing eg. doc nits when I see them, when working on code/bugs and then later group those into their own commit. Maybe you can do that now in svn but it is a pleasure with magit. just my 2ยข Russell >> >> When FreeBSD switched from CVS to SVN, there was hope or promise >> of lightweight branches, but that never materialized. Developers >> still can't have private branches in the FreeBSD repository. For >> a while, a lot of development happened in a Perforce repository--a >> commerical version control system, whose company had donated a >> license--which offered this feature. Nowadays, everybody who does >> any but the most trivial development does so in a private Git >> repository anyway. It only makes sense to interface this directly >> with the FreeBSD repository instead of going through a SVN<>Git >> media break. >> >>> Certainly the only clear things a quick search turns up that seem relevant >>> is that GIT is GPL2.0 and SVN is Apache2.0. This was enough for LLVM vs >>> GCC and the repository is a core function, but I suppose not a necessary >>> function for forked projects that can't abide, so... >> >> There is a bit of historical precedent: The original BSD work at >> Berkeley was kept in a SCCS repository, a proprietary version control >> system at the time. >> >> And of course the fact that significant FreeBSD development has >> effectively happened in Perforce, then in Git for a long time and >> is just merged back into the Subversion repository. To put it >> bluntly, the people doing the work have voted with their feet years >> ago. >> > >