Обсуждение: buildfarm and git pull

Поиск
Список
Период
Сортировка

buildfarm and git pull

От
Alexander Kuzmenkov
Дата:
Hi Andrew,

I have a question about how buildfarm works with git, could you please 
help? We use buildfarm locally at PGPro to test our branches, and it 
breaks when I rebase and force push to the repository. To get the remote 
changes, buildfarm does 'git checkout .' followed by 'git pull', and the 
latter breaks when the remote branch was rebased.

I was wondering if the buildfarm really has to do 'git pull'? Pull is 
supposed to be used to integrate local changes with remote ones, but 
buildfarm doesn't have any local changes, does it? It just has to 
checkout the remote branch as-is. To do that, when the state of working 
directory is not know, I'd do the following commands:

git fetch # get the remote changes
git checkout -f <remote>/<branch> # checkout the needed remote branch; 
on conflict, use the remote files
git reset --hard # revert all modifications in tracked files
git clean -xfd # recursively delete all unversioned and ignored files

Do you think this approach is correct or am I missing something?

-- 
Alexander Kuzmenkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company



Re: buildfarm and git pull

От
Andrew Dunstan
Дата:

On 09/27/2018 11:32 AM, Alexander Kuzmenkov wrote:
> Hi Andrew,
>
> I have a question about how buildfarm works with git, could you please 
> help? We use buildfarm locally at PGPro to test our branches, and it 
> breaks when I rebase and force push to the repository. To get the 
> remote changes, buildfarm does 'git checkout .' followed by 'git 
> pull', and the latter breaks when the remote branch was rebased.
>
> I was wondering if the buildfarm really has to do 'git pull'? Pull is 
> supposed to be used to integrate local changes with remote ones, but 
> buildfarm doesn't have any local changes, does it? It just has to 
> checkout the remote branch as-is. To do that, when the state of 
> working directory is not know, I'd do the following commands:
>
> git fetch # get the remote changes
> git checkout -f <remote>/<branch> # checkout the needed remote branch; 
> on conflict, use the remote files
> git reset --hard # revert all modifications in tracked files
> git clean -xfd # recursively delete all unversioned and ignored files
>
> Do you think this approach is correct or am I missing something?
>


possibly. It seems a little violent. We don't do rebase + forced push in 
Postgres - it's something of a nono in public repositories according to 
my understanding.

Send me a patch and I'll take a look at it.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: buildfarm and git pull

От
Justin Pryzby
Дата:
On Thu, Sep 27, 2018 at 06:32:59PM +0300, Alexander Kuzmenkov wrote:
> It just has to checkout the remote branch as-is.

It doesn't clean files, but I would suggest:
git checkout -B branch remote/branch

Justin


Re: buildfarm and git pull

От
Andrew Dunstan
Дата:

On 10/01/2018 11:45 AM, Justin Pryzby wrote:
> On Thu, Sep 27, 2018 at 06:32:59PM +0300, Alexander Kuzmenkov wrote:
>> It just has to checkout the remote branch as-is.
> It doesn't clean files, but I would suggest:
> git checkout -B branch remote/branch
>

You can see what was done in yesterday's three commits: 
<https://github.com/PGBuildFarm/client-code/commits/master/PGBuild/SCM.pm>

This has been working in a couple of installations, and will be in a 
release soon.

BTW, -hackers isn't the right forum for this. Please take any further 
discussion to buildfarm-members.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services