Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jan 2025 21:14:09 +0100
From:      Steffen Nurpmeso <steffen@sdaoden.eu>
To:        Warner Losh <imp@bsdimp.com>
Cc:        Florian Walpen <dev@submerge.ch>, freebsd-current@freebsd.org, Gleb Smirnoff <glebius@freebsd.org>, bob prohaska <fbsd@www.zefox.net>
Subject:   Re: /usr/src and /usr/ports not git directories ?
Message-ID:  <20250125201409.zqiE6kao@steffen%sdaoden.eu>
In-Reply-To: <CANCZdfrdjeYRWUuWgMLjK-rp3Nv=4mk-4CMrAecfRv_WjNC0Vw@mail.gmail.com>
References:  <Z4vk3009iSwuzG4K@www.zefox.net> <Z5GgSiETH9rwsMT6@cell.glebi.us> <8355934.G18vQ0XA4d@z240> <4081188.p4y8TspHLy@z240> <20250125175049.N9cIkQ__@steffen%sdaoden.eu> <CANCZdfrdjeYRWUuWgMLjK-rp3Nv=4mk-4CMrAecfRv_WjNC0Vw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Warner Losh wrote in
 <CANCZdfrdjeYRWUuWgMLjK-rp3Nv=3D4mk-4CMrAecfRv_WjNC0Vw@mail.gmail.com>:
 |On Sat, Jan 25, 2025 at 10:50=E2=80=AFAM Steffen Nurpmeso <steffen@sdaode=
n.eu>
 |wrote:
 |> Florian Walpen wrote in
 |>  <4081188.p4y8TspHLy@z240>:
 |>|On Thursday, January 23, 2025 4:38:16 AM CET Florian Walpen wrote:
 |>|> Installing the src tree as a non-git snapshot is useless for
 |> developers \
 |>|> and
 |>|> people that update through src builds, I agree with that. My take is
 |> that
 |>|> installing the src tree is optional, giving a hint in the installer \
 |>|> should
 |>|> be enough. There will be secondary steps anyway in this scenario, like
 |>|> installing the git executable and updating the src tree. As stated, we
 |>|> could simplify the post-install repo cloning through a Makefile.
 |>|
 |>|FWIW, I found the /usr/Makefile that is part of DragonflyBSD here:
 |>
 |> I *thought* the thing is also data reduction, you know.
 |>
 |> As in, if the source directory is simply tarballed, you have the
 |> full size but no git repository; if you want to update, you need
 |> to download the full new ball, even if the actual changes are only
 |> a few megabyte or so.  (Or bsdiff(1)ed, but no such iirc.)
 |>
 |> If you have the git directory that it is, "fully" garbage
 |> collected, then this increases the size, but you can then simply
 |> update, merge --ff-only.  But this is a large tarball.
 |>
 |> If you ship only the .git repository *without* a checkout, with
 |> a depth of 1, you get almost the same size as with the normal
 |> only-sources tarball, but you can use git to update very easily,
 |> with minimal bandwidth, you can use git to populate the complete
 |> history, etc.
 |> However, you need git to perform the initial checkout of the
 |> sources.  git is large and git is not BSD/etc licensed.
 |> Thus: if you would have a minimal program that fetches the blob
 |> content out of a shallow, garbage-collected git clone, you have
 |> all the advantages, but none of the disadvantages.
 |> Problem is there is no such program.
 |
 |pkg add git isn't terrible. pkg add got is even smaller and should
 |work, but I've not double checked.
 |
 |Since moving to git, git has become 'table stakes' to do things
 |with the system. While we don't go out of our way to make 'got' not
 |work for simple things, we don't test it that often either. got has
 |a happy license, but an incompatible CLI and it's quite a bit less
 |capable than git, despite it's better license. Including it in base has
 |a lot of issues beyond the git import (how much of our git instructions
 |do we update to include it in our docs, for example).
 |
 |So it's possible to extract things w/o GPL'd code, it would be very
 |much a niche thing for the relatively few people that care. Everybody
 |else would take 'the paved path' of git and not give it a second thought.
 |I think the projects limited resources would be best spent by doing this
 |and allowing the purists to be able to do it if they wanted, while not
 |saddling everybody else with a tool they aren't familiar with. In a world
 |where we have infinite resources, we could do the training and education
 |needed for got, but pragmatically, I think got or any other git-alternati=
ve
 |path is too much of a hassle for too many people to be a viable option
 |any time soon.

That is where i started with the way i do it for myself, with
"git checkout $(cat NULL)"; this NULL could in FreeBSD be a file
README that states something like "make checkout" or so ...
Even though that smells like DragonFly BSD then :)
I install git on my FreeBSDs, so this is not about me.  (Since
i track FreeBSD source i can very well use git archive to get the
sources from "the inside", if desired.  Having a file that
contains the branch name in src/ would allow automatization of
that even.)
It was only a suggestion...

Ciao,

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
|
|In Fall and Winter, feel "The Dropbear Bard"s pint(er).
|
|The banded bear
|without a care,
|Banged on himself for e'er and e'er
|
|Farewell, dear collar bear



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20250125201409.zqiE6kao>