From nobody Mon May 5 01:50:46 2025 X-Original-To: freebsd-git@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZrPcm1dw0z5tdnX for ; Mon, 05 May 2025 01:50:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrPcm1CFDz3Gn0 for ; Mon, 05 May 2025 01:50:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746409848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3kCTV5wZKatFYq5EztU8qQUrGKvwqZEYOsxDV9rWWcQ=; b=s8kerlskBgfGmB6SNhM0StmGB6Kym6Ur3jMTv6mrrO2ndQ6C3oKb7tDkFtWfu2kZFjO8yE NFMQ8pW3RG8S0c5pZHn/d/4krmfehFYFcWk9qGrZX/4ql4ZmldZzOzL+cdd6xhAdFkOzSf gOdE6rWXLRTFVnLcDaiutckPhTGVY1GYqxjYqzR5iZ30M+rmKHRaZZ+xYsKCB1JbsrAt3v D0mz3bMwmNH6JdDNQe35V+i57d0aKOqnXLJaJlm0BVC6ZxpoQnA9xPmiCcfzK3u3JQT6RV m1PafzRTGtCe3xUkWZ7LOCGoGha0udx3spykil1kCLp+NdMCXIJlRWhvc3qN6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746409848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3kCTV5wZKatFYq5EztU8qQUrGKvwqZEYOsxDV9rWWcQ=; b=MAsoet8usQDY1j7TAq3AOoyozsyABYemnbvLY5ZV1veULtCzaKr/tfRn7v2CvyfuZLJ9fs +5rtydfhdrj3NMtYAqVnRhOWSaj6BWmv3kjWvHTiLvzpJC53wj8DF5DhNQnSVgs99Z+Paf 4nj0EWtT3AAdrtSAlCyMeJuPnZ3+RPHn7fItowAbUPIFb6xzFQFfV7mKscZKHf07MLhr0b Jq6gUhdKzY51+1ZMJfSMm7zTzzCBVepeZeWk/eu30zLQZJ7rrmcNMR6UIKsV2FMCrYd8VQ CzFbtuXcn5nMXOBtE5PFLVVvSXIe/0msB28gOZmKexVs42E4rMYLSfkjFR0TrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746409848; a=rsa-sha256; cv=none; b=SOzJz/w7a6TKpZ/LD4vaBQYHRxgmMrMLqpB2gS+nuqQLenMWEAWHN/StD1CmGLLTLlY30H 8ugLs3P5SQBO/bmaZOqG1irS4wzEIDjcx/n3swXLLfsgZ+73okUowAXC4baICXndrw+wdi 4rQS/1wxb83tybFUlFw9AmCltm6p3hIywoLaKhD1Ws98kUfV0K8/HwgrCttDEDFqRfM9Sg uVFzKn+TwLBpgwIU9tzNug7SJNTvKI95yXFTwHOE3Dqrx7kvh6COdAVGt9MzTXt9mFWxuh znw/tJ+9qxGiJRqwtTnJE2K4OZE2ZFbvy+C1tULgeWFRgmqTCk+Wf2XeHvsyzA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from [10.9.4.95] (unknown [209.182.120.176]) (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 did not present a certificate) (Authenticated sender: kevans/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4ZrPcl6Xdlz120c for ; Mon, 05 May 2025 01:50:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Message-ID: <9f48a955-5f8a-450c-94c1-2a7d9d69ecb9@FreeBSD.org> Date: Sun, 4 May 2025 20:50:46 -0500 List-Id: Discussion of git use in the FreeBSD project List-Archive: https://lists.freebsd.org/archives/freebsd-git List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-git@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: freebsd-git@FreeBSD.org From: Kyle Evans Subject: got(1) in base consideration Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, I've been toying around with the idea of pulling got(1) into base, but hidden off into /usr/libexec and not supporting it for general usage. The idea would instead be to provide a script or two as a user-facing interface to do the bare minimum to functionally maintain a local copy of our git repos. However, I've run into some logistics issues that I wanted to throw out for some opinions. The main issue I've run into is that while got's repository layout is binary-compatible with git, it won't setup worktrees the same way. Additionally, it really doesn't like the traditional organization of a git clone, where you'd have your .git directory inside of your primary worktree (e.g., /usr/src and /usr/src/.git). I don't think this is really a deal-breaker, my proposal to start with would be that we clone the repositories off into /var/db/got/$repo or some such and setup the worktrees in the traditional place. git can `worktree add` from these repos successfully, so one could setup a git-compatible worktree at least without having to re-clone the entire repository, but that brings me to the second caveat noted in the paragraph above: the worktree format isn't compatible. We could write a script that'll bridge the gap, but AFAICT that means that we'd effectively have to just blow away the existing got worktree at /usr/src and recreate it, with sensible guardrails in place to try and avoid losing any uncommitted work. That's sort of ugly and I don't really know how to feel about it, thus this e-mail. Thoughts? Thanks, Kyle Evans