From owner-freebsd-current@freebsd.org Sun Sep 20 15:05:14 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 D30963E4C0A for ; Sun, 20 Sep 2020 15:05:14 +0000 (UTC) (envelope-from news@mips.inka.de) Received: from mail.inka.de (mail.inka.de [IPv6:2a04:c9c7:0:1073:217:a4ff:fe3b:e77c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4BvW8T5BYcz4fNm for ; Sun, 20 Sep 2020 15:05:13 +0000 (UTC) (envelope-from news@mips.inka.de) Received: from mips.inka.de (news@[127.0.0.1]) by mail.inka.de with uucp (rmailwrap 0.5) id 1kK0tl-00DtVK-8P; Sun, 20 Sep 2020 17:05:05 +0200 Received: from lorvorc.mips.inka.de (localhost [127.0.0.1]) by lorvorc.mips.inka.de (8.16.1/8.16.1) with ESMTP id 08KF3Cwk062833 for ; Sun, 20 Sep 2020 17:03:12 +0200 (CEST) (envelope-from news@lorvorc.mips.inka.de) Received: (from news@localhost) by lorvorc.mips.inka.de (8.16.1/8.16.1/Submit) id 08KF3CfV062832 for freebsd-current@freebsd.org; Sun, 20 Sep 2020 17:03:12 +0200 (CEST) (envelope-from news) To: freebsd-current@freebsd.org From: Christian Weisgerber Newsgroups: list.freebsd.current Subject: Re: Plans for git Date: Sun, 20 Sep 2020 15:03:12 -0000 (UTC) Message-ID: References: <20200902045939.GA15897@eureka.lemis.com> <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> User-Agent: slrn/1.0.3 (FreeBSD) X-Rspamd-Queue-Id: 4BvW8T5BYcz4fNm X-Spamd-Bar: ++ X-Spamd-Result: default: False [2.08 / 15.00]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; FREEFALL_USER(0.00)[news]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_DN_NONE(0.00)[]; AUTH_NA(1.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_THREE(0.00)[3]; DMARC_NA(0.00)[inka.de]; NEURAL_SPAM_MEDIUM(0.22)[0.223]; NEURAL_SPAM_LONG(0.86)[0.858]; NEURAL_HAM_SHORT(-0.20)[-0.203]; R_SPF_NA(0.00)[no SPF record]; FORGED_SENDER(0.30)[naddy@mips.inka.de,news@mips.inka.de]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:202113, ipnet:2a04:c9c7::/32, country:DE]; FROM_NEQ_ENVFROM(0.00)[naddy@mips.inka.de,news@mips.inka.de]; 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 15:05:14 -0000 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. 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. -- Christian "naddy" Weisgerber naddy@mips.inka.de