From owner-freebsd-git@freebsd.org Mon Feb 22 20:51:25 2021 Return-Path: Delivered-To: freebsd-git@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 B14FE54E10D for ; Mon, 22 Feb 2021 20:51:25 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4DkvVN5yb0z4l9R for ; Mon, 22 Feb 2021 20:51:24 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82e.google.com with SMTP id e15so10321049qte.9 for ; Mon, 22 Feb 2021 12:51:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=vI1YWNEj6sZ1pIxE4Urf0kD+RUF+DxUQhInvbEauDZY=; b=qtnIbUEn/mwBXBfLLeOwKDbM1SzKM3qQJwDtZJ5L3WrcNjpSsnp5R6vNpi7igaubjG 6wHC/qZyi79uUK+QPy3FfKS5XSa89+roea5dwZo8QyptIzCN+AuZ69WJqw1A6lFrxiu4 CySZn5hhZIPd3WJuX96+PRG4C7vgiUCYEPKrknjMQrMMVO/IwCn24A7yf6L58Z8IX/0q J7w/9Tx1YPKq+GqyVbnHTgwy01Pf1sRB2IJb2ZZ718sbsGubzhFOQtTp8L8boMyG52F9 c/LOW/2mpOphs+Ghq1/BWL1ip0B9Wy//mIb6ooLPppd7pk93fCiBXL4tQZuh5CZOuNtq 9FIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=vI1YWNEj6sZ1pIxE4Urf0kD+RUF+DxUQhInvbEauDZY=; b=U2e8xsHpfnRLhSx0hYBTVnweAU2Efs/VSlGGO4sY/GfZL8aYjLaAzrsGCbH4DVFHLA oBoEZRkgeEWMsLBPx6hqbyVNEiVj8B0ZSd2+85Mqzn12wxaukUQcCiLUtZpH9uNYrbEI cd96AQdT1VA6Wx+tPhsZNyo10FfiWJvnXKQuMY4zzMGYGQcsOiBCyBt9LJrSzEKfk0t0 6RrgnnI6Ct02CQDx7/R0bqPopyqIdxw3U4erHIxzQxfwC0G4DUg+hAg8hxHyTTS+UeM0 62gAdGSHno3N6R4MW5A+JCMN/QHCPoiv4JzgiBHfJYAbmnjGZNFu6qsaOJdqxh1FPB2o rbxw== X-Gm-Message-State: AOAM531im5bza/IlYsuBAkfdN1eenXBuyWwwMFEJFW4v081atL3G3XC8 v6qr2SGg8P843dssm8ypuJIdHIfdTvvKCZslhV3oTA== X-Google-Smtp-Source: ABdhPJw87xgTJupCKHXvtG+/Lz1EKTkOsilVxXOZbDrSZB+DfMS43V5ma8L/CApE+C4dTp46rOLSMpKhLC5ks/yBEbs= X-Received: by 2002:a05:622a:90:: with SMTP id o16mr21012254qtw.49.1614027083915; Mon, 22 Feb 2021 12:51:23 -0800 (PST) MIME-Version: 1.0 References: <202102221945.11MJjCiO063445@slippy.cwsent.com> <20210222203500.GA75838@freefall.freebsd.org> In-Reply-To: <20210222203500.GA75838@freefall.freebsd.org> From: Warner Losh Date: Mon, 22 Feb 2021 13:51:13 -0700 Message-ID: Subject: Re: Ports Repocopy To: Rene Ladan Cc: Cy Schubert , freebsd-git X-Rspamd-Queue-Id: 4DkvVN5yb0z4l9R X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=qtnIbUEn; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::82e) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.00 / 15.00]; ARC_NA(0.00)[]; MAILMAN_DEST(0.00)[freebsd-git]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-git@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; SPAMHAUS_ZRD(0.00)[2607:f8b0:4864:20::82e:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-1.00)[-1.000]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::82e:from]; R_SPF_NA(0.00)[no SPF record]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RBL_DBL_DONT_QUERY_IPS(0.00)[2607:f8b0:4864:20::82e:from]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: freebsd-git@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussion of git use in the FreeBSD project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Feb 2021 20:51:25 -0000 On Mon, Feb 22, 2021 at 1:35 PM Rene Ladan wrote: > On Mon, Feb 22, 2021 at 11:45:12AM -0800, Cy Schubert wrote: > > When ports switches to GIT, given that there is no GIT equivalent to svn > > copy will repocopy become a thing of the past? Will we live with this or > > will there be some kind of procedure ports committers must follow to > > approximate a repocopy? > > > There is indeed no "git cp", only "git mv", so unless I'm mistaken > repocopies > will be a past thing. It might be possible to (credits to portmgr): > - create a branch, > - copy/move the files and commit the copy/moves without any changes, > - change the stuff, > - commit, > - merge into the main branch. > > Similar for resurrecting a port: > - create a branch from before the port was removed, > - change stuff, > - commit, > - merge into the main branch (using something like "git merge -s their" so > that the resurrection branch overwrites the removal) > > But this would warrant a new script if it turns out to be feasible. I have > not > tried this yet. > There's two additional lines of attack on this that have been discussed. The radical one is to create a vendor branch per port (or maybe related set of ports). This would be updated and then merged to main as the port evolves. It then becomes easy to delete a port and bring it back since you'd just re-merge from the vendor branch. This would take a lot of time and effort to get right today, though, but might be useful for 'big' or 'important' sets of ports. The second idea is to be explicit in the commit message about where things were copied from, or what hash was used to resurrect a port so the history could be followed if need be without introducing a lot of loops into the ports tree which will only cause problems in time. This is like the branch idea above, but would optimize for 'ease of use' while still preserving enough data to reconstruct things in the event that git's guessing code goes awry. In this scenario, you'd want scripts to add these 'markers' in a consistent way. Warner