Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Mar 2021 21:39:03 +0100
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org>
To:        Michael Grimm <trashcan@ellael.org>
Cc:        freebsd-git@freebsd.org, freebsd-questions@freebsd.org
Subject:   Re: ports and git, first steps
Message-ID:  <YEFFZ18nBocAG8j4@acme.spoerlein.net>
In-Reply-To: <003857DB-447A-49E5-8A70-064AD27EB791@ellael.org>
References:  <6996AB6C-B178-48C2-94D4-1F7D62E59998@ellael.org> <YD6XP9uqNwa9L5y%2B@acme.spoerlein.net> <B98FC9B8-216F-48CF-9FCC-18E780E13CDE@ellael.org> <YEDO2xpsjz6gMG7C@acme.spoerlein.net> <003857DB-447A-49E5-8A70-064AD27EB791@ellael.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2021-03-04 at 14:46:13 +0100, Michael Grimm wrote:
>Ulrich Spörlein <uqs@FreeBSD.org> wrote:
>> On Wed, 2021-03-03 at 16:10:15 +0100, Michael Grimm wrote:
>
>>> Does anyone know if poudriere is using 'git pull —rebase' as default?
>>
>> It's just a bunch of shell scripts, so easy to check:
>>
>> % git grep GIT_CMD
>> src/share/poudriere/common.sh:: ${GIT_CMD:=git}
>> src/share/poudriere/jail.sh:                    ${GIT_CMD} clone ${GIT_DEPTH} -q -b ${VERSION} ${GIT_FULLURL} ${SRC_BASE} || err 1 " fail"
>> src/share/poudriere/jail.sh:                    ${GIT_CMD} -C ${SRC_BASE} pull --rebase -q || err 1 " fail"
>> src/share/poudriere/jail.sh:                            ${GIT_CMD} checkout -q "${TORELEASE}" || err 1 " fail"
>> src/share/poudriere/jail.sh:            git_sha=$(${GIT_CMD} -C ${SRC_BASE} rev-parse --short HEAD)
>> src/share/poudriere/ports.sh:                   ${GIT_CMD} clone --depth=1 --single-branch ${quiet} -b ${BRANCH} ${GIT_FULLURL} ${PTMNT} || err 1 " fail"
>> src/share/poudriere/ports.sh:           ${GIT_CMD} -C ${PORTSMNT:-${PTMNT}} pull --rebase ${quiet}
>
>Sorry for the noise, I should have find out by myself :-(
>
>> Besides, `git pull --rebase` is pretty much the only sane choice for poudriere anyway.
>
>Good to know. Now, all I need to modify is the git repository's server name after the final migration.

Yes and no. It defaults to using the Github mirror and we will 
force-push the new content there, but `git pull --rebase` will totally 
barf on that, so you'll need to manually:

- git fetch --prune
- git checkout -B main origin/main
- git branch -D master

or something like that. (you need to rebase your stuff from old-master 
to new-main as well).

We could actually bake this logic into poudriere and have it do its 
thing during a ports update, but it'll be rather fragile I suppose.

Cheers
Uli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YEFFZ18nBocAG8j4>