Possible bug: --shallow-since and old branches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx/),
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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux