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

From Andres Freund
Subject Re: gitweb is no longer a real-time view
Date
Msg-id 20130304132357.GE3943@awork2.anarazel.de
Whole thread Raw
In response to Re: gitweb is no longer a real-time view  (Magnus Hagander <magnus@hagander.net>)
List pgsql-www
On 2013-03-04 14:18:09 +0100, Magnus Hagander wrote:
> 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.

Thats a fetch though. He pulls in Tom's commit. Which is unsurprisingly
a forced update because he locally had committed something.

> 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?

The defaults around this are afaik changing. Its push.default that
configures that, I suggest setting it to the future default "simple"
instead of "matching" which is the current value.

> > 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...

Whats "git config -l" saying?

Greetings,

Andres Freund



pgsql-www by date:

Previous
From: Magnus Hagander
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