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