From: Tao Klerks <tao@klerks.biz>
To: git@vger.kernel.org
Subject: Possible bug: --shallow-since and old branches
Date: Tue, 8 Sep 2020 21:58:46 +0200 [thread overview]
Message-ID: <CAPMMpoicRnoBshbSNaF4Ns91b4WTE95EJJGzt1=cx9s_iYDOmA@mail.gmail.com> (raw)
Hi folks,
I've encountered very strange behavior when fetching a repo with
--shallow-since, where I get many more commits than I expect in the
repo, and specifically when I count commits by branch I see old
branches where *every* commit is beyond the specified date threshold.
I found a thread from 2018 in which something like this is discussed
(https://public-inbox.org/git/20180522194854.GA29564@inner.h.apk.li/),
but I haven't completely understood the thread. It seems to address
the specific "repo would be empty" concern, but not necessarily the
more general "I'm getting branches I shouldn't be getting"
concern/case...?
I can confirm that if I move my --shallow-since date to one that
"intersects" the lifetime of a branch I am unexpectedly getting, then
all of a sudden I only get those commits I expected on that branch.
I can also confirm that in a recent version of git (since 2.16 I
think), if I set my refspec so *only* a "too old" branch matches, then
I get the "fatal: no commits selected for shallow requests" error
that's expected. But if my refspec *also* matches a branch that *does*
have commits newer than the threshold, then I get the correct (newer)
commits of that recently-active branch, and *all* commits of the
too-old branch that otherwise correctly refuses to fetch on its own.
I *thought* I would be able get what I would have expected from a
"--shallow-since" clone by:
* Initializing a new repo
* Adding the remote
* Removing the default fetch refspec
* Iterating remote heads, checking their commit dates, and adding
those valid/recent heads explicitly to the fetch refspec
* Doing a fetch with "--shallow-since"
... however, I seem to have assumed some magic there: getting the
"most recent commit date" for a remote ref apparently requires
fetching it (to a depth of 1 at least) first??
Is the behavior I'm seeing "as designed" for branches with no recent
commits, or is there a problem somewhere?
Best regards,
Tao
reply other threads:[~2020-09-08 19:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAPMMpoicRnoBshbSNaF4Ns91b4WTE95EJJGzt1=cx9s_iYDOmA@mail.gmail.com' \
--to=tao@klerks.biz \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).