git and the loss of revision numbers

Ulrich Spörlein uqs at freebsd.org
Wed Dec 30 15:57:42 UTC 2020


On Mon, 2020-12-28 at 17:06:26 -0800, David Wolfskill wrote:
>On Mon, Dec 28, 2020 at 04:56:39PM -0800, John-Mark Gurney wrote:
>> monochrome wrote this message on Mon, Dec 28, 2020 at 19:38 -0500:
>> > what would be the git command for reverting source to a previous version
>> > using these numbers? for example, with svn and old numbers:
>> > svnlite update -r367627 /usr/src
>> >
>> > this is needed often when it blows up for someone tracking current
>>
>> Get the hash from a commit number:
>> $git rev-list --reverse HEAD | tail -n +255241 | head -n 1
>> 3cc0c0d66a065554459bd2f9b4f80cc07426464a
>>
>> so:
>> git checkout $(git rev-list --reverse HEAD | tail -n +255240 | head -n 1)
>> ....
>
>Or save a process:
>
>git rev-list --reverse HEAD | awk 'NR == 255241 {print; exit 0}'
>3cc0c0d66a065554459bd2f9b4f80cc07426464a
>
>(And thus:
>git checkout $(git rev-list --reverse HEAD | awk 'NR == 255241 {print; exit 0}')
>
>Could also pass the number to awk via the "-v var=value" command-line.)

Counting commits will not get you to SVN revision 12345, you need to 
look at the git notes, they are there for that exact reason.

(fun fact, r12345 isn't actually on the main branch, so don't try with 
that one)

% git log --oneline -n1 --notes --grep='revision=12346$' main
df4f0253cd89 Use NO_MTREE, not !USE_X11 && !USE_IMAKE, to determine package args. NO_MTREE should work as advertised (for both direct installation and pkg_add) now.
Notes:
     svn path=/head/; revision=12346

So df4f0253cd89 is the corresponding git commit to your SVN r12346

hth
Uli


More information about the freebsd-current mailing list