Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Sep 2025 17:51:03 -0700
From:      Chris Torek <chris.torek@gmail.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Git and buildworld running at the same time
Message-ID:  <CAPx1GvdxQhgyq=ofkuM6h_qqMj%2BoW--mWaheRBbeKXvHKe0vAw@mail.gmail.com>
In-Reply-To: <aMWGWbI-8TwnAPnP@www.zefox.net>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
On Sat, Sep 13, 2025 at 7:57 AM bob prohaska <fbsd@www.zefox.net> wrote:

> Lately I've noticed that sometimes while running buildworld a top
> window reports git running also. Up to now, I've surmised that
> this is intentional, with git providing some housekeeping function. ...


Git has its own housekeeping systems, including automatically
re-packing repositories after a fetch (remember that `git pull` is
nearly equivalent to `git fetch` followed by `git merge`). So this is
likely normal Git behavior.

Since the mid to late 2.40 versions of Git, "git maintenance" has
more or less taken over as the "proper" driver for this kind of
maintenance work, but since the Git folks do take compatibility
quite seriously, "git gc" still does what it used to do and you can
still use it (automatically or manually). Still, you might want to read
the "git maintenance" manual page and set up a cron job to
pre-fetch and pre-repack repositories. This should also make
your merge operations [1] more convenient.

Chris

[1] "git pull" that is, though I personally avoid "git pull" and *always*
run a separate fetch step anyway. This is partly for historical reasons
dating back to Git 1.5, but I like to run a `git log` in between to
look at the incoming commits. I use an alias, `git lin`, for "log
incoming":

    [alias]
        lin = log ..@{u}

Note that if you choose to use the new maintenance system,
you must still run a separate `git fetch` anyway, so as to update
the remote-tracking refs (`remote/origin/main` etc). It just tends
to go far faster since you will already have the objects downloaded.

[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr">On Sat, Sep 13, 2025 at 7:57 AM bob prohaska &lt;<a href="mailto:fbsd@www.zefox.net">fbsd@www.zefox.net</a>&gt; wrote:</div><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Lately I&#39;ve noticed that sometimes while running buildworld a top<br>
window reports git running also. Up to now, I&#39;ve surmised that <br>
this is intentional, with git providing some housekeeping function. ...</blockquote><div><br></div><div>Git has its own housekeeping systems, including automatically</div><div>re-packing repositories after a fetch (remember that `git pull` is</div><div>nearly equivalent to `git fetch` followed by `git merge`). So this is</div><div>likely normal Git behavior.</div><div><br></div><div>Since the mid to late 2.40 versions of Git, &quot;git maintenance&quot; has</div><div>more or less taken over as the &quot;proper&quot; driver for this kind of</div><div>maintenance work, but since the Git folks do take compatibility</div><div>quite seriously, &quot;git gc&quot; still does what it used to do and you can</div><div>still use it (automatically or manually). Still, you might want to read</div><div>the &quot;git maintenance&quot; manual page and set up a cron job to</div><div>pre-fetch and pre-repack repositories. This should also make</div><div>your merge operations [1] more convenient.</div><div><br></div><div>Chris</div><div><br></div><div>[1] &quot;git pull&quot; that is, though I personally avoid &quot;git pull&quot; and *always*</div><div>run a separate fetch step anyway. This is partly for historical reasons</div><div>dating back to Git 1.5, but I like to run a `git log` in between to</div><div>look at the incoming commits. I use an alias, `git lin`, for &quot;log</div><div>incoming&quot;:</div><div><br></div><div>    [alias]</div><div>        lin = log ..@{u}</div><div><br></div><div>Note that if you choose to use the new maintenance system,</div><div>you must still run a separate `git fetch` anyway, so as to update</div><div>the remote-tracking refs (`remote/origin/main` etc). It just tends</div><div>to go far faster since you will already have the objects downloaded.</div></div></div>
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPx1GvdxQhgyq=ofkuM6h_qqMj%2BoW--mWaheRBbeKXvHKe0vAw>