Re: gitweb is no longer a real-time view - Mailing list pgsql-www

From Magnus Hagander
Subject Re: gitweb is no longer a real-time view
Date
Msg-id CABUevEwvWyCfGn8oZZTSPtQb513Kvn2LPZPSPoiha5e+J3=W8w@mail.gmail.com
Whole thread Raw
In response to Re: gitweb is no longer a real-time view  (Kevin Grittner <kgrittn@ymail.com>)
Responses Re: gitweb is no longer a real-time view  (Andres Freund <andres@2ndquadrant.com>)
Re: gitweb is no longer a real-time view  (Kevin Grittner <kgrittn@ymail.com>)
List pgsql-www
On Mon, Mar 4, 2013 at 2:11 PM, Kevin Grittner <kgrittn@ymail.com> wrote:
> Magnus Hagander <magnus@hagander.net> wrote:
>
>> Actually, looking closer, I'm seeing a failure when it actually tries the
>> push:
>>
>> To ssh://git@git.postgresql.org/postgresql.git
>> ! [rejected]        master -> master (non-fast-forward)
>>
>>
>> So the problem might have nothing at all to do with the cacheing.
>>
>> AFAICT, the three missing commits are materialized  views,
>> accidentally committed .orig file and \l support.
>>
>> But. The *anonymous* repository also has:
>> bc61878682051678ade5f59da7bfd90ab72ce13b Fix
>> map_sql_value_to_xml_value() to treat domains like their base types.
>>
>> This patch is *not* in the master repository, it's only in anonymous.
>> (The object is in the repository, but it's not part of any branch)
>>
>> How the hell did *that* happen?
>>
>> The master repo has:
>> commit 5db5974c692b0fc68e7608dd85a6b4e6173a0f28
>> Author: Peter Eisentraut <peter_e@gmx.net>
>>
>>     psql: Let \l accept a pattern
>>
>> commit d63977eea3ab18fdec05e370b633d10b9fd20179
>> Author: Kevin Grittner <kgrittn@postgresql.org>
>>
>>     Remove accidentally-committed .orig file.
>>
>> commit 3bf3ab8c563699138be02f9dc305b7b77a724307
>> Author: Kevin Grittner <kgrittn@postgresql.org>
>>
>>     Add a materialized view relations.
>>
>> commit b15a6da29217b14f02895af1d9271e84415a91ae
>> Author: Tom Lane <tgl@sss.pgh.pa.us>
>>
>>     Get rid of any toast table when converting a table to a view.
>>
>>
>> And the anonymous one has:
>> commit bc61878682051678ade5f59da7bfd90ab72ce13b
>> Author: Tom Lane <tgl@sss.pgh.pa.us>
>>
>>     Fix map_sql_value_to_xml_value() to treat domains like their base types.
>>
>> commit 3bf3ab8c563699138be02f9dc305b7b77a724307
>> Author: Kevin Grittner <kgrittn@postgresql.org>
>>
>>     Add a materialized view relations.
>>
>> commit b15a6da29217b14f02895af1d9271e84415a91ae
>> Author: Tom Lane <tgl@sss.pgh.pa.us>
>>
>>     Get rid of any toast table when converting a table to a view.
>>
>>
>>
>> Does anybody have an explanation for that? Did someone do a force-push
>> on the master repository, overwriting some old history?
>>
>> We don't explicitly forbid this on the master repo, since we expect
>> committers to know how things work.. Maybe we need to do that, and
>> manually turn it off in case someone actually *needs* to do a non fast
>> forward push? But either way, it would be good to actually know how
>> tihs happened...
>>
>> Copying this one to Kevin and Peter too, since they seem to be the
>> other people who are involved in any of these pushes.
>
> Apologies if I contributed to this.  At no point did I use a force option.
>
> I'm using this pattern:
>
>
http://wiki.postgresql.org/wiki/Committing_with_Git#Dependent_Clone_per_Branch.2C_Pushing_and_Pulling_From_a_Local_Repository
>
> I still have the shell windows open that I used, so (redacting
> things which I'm sure are not significant, like git log commands)
> there is this:
>
> You will see a pull command used.  Here's what that is:
>
> kgrittn@Kevin-Desktop:~/pg/master$ cat ~/bin/pull
> #!/bin/bash
>
> pushd ~/pg/postgresql.git >/dev/null && git fetch && popd >/dev/null && git pull
>
>
> Here's what I have in my (still open) shell windows:
>
> kgrittn@Kevin-Desktop:~/pg/master$ git push
> Counting objects: 301, done.
> Delta compression using up to 8 threads.
> Compressing objects: 100% (154/154), done.
> Writing objects: 100% (155/155), 40.94 KiB, done.
> Total 155 (delta 147), reused 6 (delta 1)
> To /home/kgrittn/pg/postgresql
>    2b78d10..3a21ef1  master -> master
> kgrittn@Kevin-Desktop:~/pg/master$ cd ../postgresql.git/
> kgrittn@Kevin-Desktop:~/pg/postgresql.git$ git push --dry-run
> To ssh://git@gitmaster.postgresql.org/postgresql.git
>  + b15a6da...3a21ef1 master -> master (forced update)
>  + b15a6da...2b78d10 anonymous/master -> anonymous/master (forced update)
> kgrittn@Kevin-Desktop:~/pg/postgresql.git$ git fetch
> remote: Counting objects: 31, done.
> remote: Compressing objects: 100% (16/16), done.
> remote: Total 16 (delta 15), reused 0 (delta 0)
> Unpacking objects: 100% (16/16), done.
> From ssh://gitmaster.postgresql.org/postgresql
>  + 3a21ef1...b15a6da master     -> master  (forced update)
>    2b78d10..b15a6da  anonymous/master -> anonymous/master

^^ there it clearly says forced update. So - at least now we know what happened.

Question still remains how then.

Normally it should, AFAIK, refuse to do such a push without a --force.
But admittedly, I don't know for sure exactly how those more complex
setups work.

Do you by any chance have any other git settings either in your local
or in the repository config?

Also, can someone who knows how that stuff is set up, explain why it's
pushing anonymous/master in this case? Seems like it should just push
the actual branch, no? Are those instructions for usage wrong?


> kgrittn@Kevin-Desktop:~/pg/postgresql.git$ git remote --verbose
> origin  ssh://git@gitmaster.postgresql.org/postgresql.git (fetch)
> origin  ssh://git@gitmaster.postgresql.org/postgresql.git (push)
> kgrittn@Kevin-Desktop:~/pg/postgresql.git$ cd ../master
> kgrittn@Kevin-Desktop:~/pg/master$ pull
> remote: Counting objects: 31, done.
> remote: Compressing objects: 100% (16/16), done.
> remote: Total 16 (delta 15), reused 0 (delta 0)
> Unpacking objects: 100% (16/16), done.
> From /home/kgrittn/pg/postgresql
>  + 3a21ef1...b15a6da master     -> origin/master  (forced update)

^^ there's another forced update. Which seems to indicate that your
git is doing forced updates by default in both directions.

I have no idea how it would do that by default - I've always received
an error when accidentally doing something like that...

--Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/



pgsql-www by date:

Previous
From: Kevin Grittner
Date:
Subject: Re: gitweb is no longer a real-time view
Next
From: Andres Freund
Date:
Subject: Re: gitweb is no longer a real-time view