after looking in the git log for the hash I use:

git -C /usr/src reset --hard <hash>

you will lose any local changes


On 1/24/21 5:40 PM, Steve Kargl wrote:
On Sun, Jan 24, 2021 at 03:22:18PM -0700, Warner Losh wrote:
On Sun, Jan 24, 2021, 12:14 PM Steve Kargl <s...@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 <lw...@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 <u...@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'?

_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to