Re: Getting /usr/src to match specific git hash?

From: Steve Kargl <sgk_at_troutmask.apl.washington.edu>
Date: Sun, 24 Jan 2021 14:40:46 -0800
On Sun, Jan 24, 2021 at 03:22:18PM -0700, Warner Losh wrote:
> On Sun, Jan 24, 2021, 12:14 PM Steve Kargl <sgk_at_troutmask.apl.washington.edu>
> wrote:
> 
>>
>> Any advice on how to jump, say, 4 days ahead of the current
>> date of the src/ tree?  That is, I have src/ that should
>> correspond to 24 Dec 2020.  How do I jump to 28 Dec 2020?
>>
> 
> You could use git bisect, but as you say, the laundry list is extensive.
> 
> Git doesn't offer checkout by date, alas. So here's some tools to help you
> out.
> 
> First, let's get a count of how many commits behind main you are at the
> moment. Use 'git log --oneline --first-parent HEAD..main | wc' to get a
> count of the number of commits between what you have checked out and the
> tip of current. My count is 994, but I just updated, so your count will
> differ and that's OK.The --first-parent in the git log above is critical,
> since otherwise a number of commits from vendor merges in the vendor
> branches will appear in git log's output, throwing the count off).
> 
> Now, this is 1 month worth of -current. 4 days in the month is about 13%.
> However, let's keep things simple and step forward 100 commits at a time
> (which is 10% of 1000). The precise numbers don't matter, but it works out
> well in this case.
> 
> So, your commit is:
> % git log -1 3cc0c0d66a0
> Author: Li-Wen Hsu <lwhsu_at_FreeBSD.org>
> Date:   Sun Dec 20 02:59:44 2020 +0000
> 
>     Mark the repository as being converted to Git.
> 
> which is the last subversion commit. It's also head~994, you can do a 'git
> log -1 main~900' to verify that. So, let's move forward 94 commits. This
> would be:
> 
> % git log main~900
> commit 8d405efd73d3991fe1647f91a2b7c9989dd5f18f
> Author: Ulrich Sp<C3><B6>rlein <uqs_at_FreeBSD.org>
> Date:   Wed Dec 23 22:29:34 2020 +0100
> 
>     Fix newvers.sh to no longer print an outdated SVN rev
> 
> which is 3 days newer and may be a good place to start:
> 
> % git checkout main~900
> 
> and that will move you forward 94 commits. Do it again with main~800, etc
> to find a spot that's good for you. Not as convenient as giving dates, but
> once you have a count of the number of commits between where you are and
> head, you can use that number to decide how far forward to go.
> 
> You can adjust this as needed. If you don't do a git pull during this
> process (and you likely shouldn't) these numbers will be stable, and a lot
> easier to work with than hashes. I've found I like to move N commits rather
> than N days.
> 
> Hope this is helpful. Sadly I found no way to say HEAD+50 commits directly
> in git, but maybe one of the more knowledgeable folks on this list can give
> a better hint there.
> 
> Warner
 
Thanks for the thorough reply!  After David's response
I started to think (yes, I should do that more often)
about the mailing list archive dev-commits-src-main.
Each subject line starts with, for example,
"git: 68dc94c7d314 - main -". I assume that the hash
value is sufficient to grab a src/ up to and including
the commit.  Will the following

% cd /usr/src                # This is at 3cc0c0d66a0
% git checkout 68dc94c7d314  # Update to last commit in 2020.

bring the src/ update to 68dc94c7d314 or do 
I need to use 'git pull <some optio> 68dc94c7d314'?

-- 
Steve
Received on Sun Jan 24 2021 - 21:40:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:26 UTC