From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Magnus Hagander <magnus(at)hagander(dot)net> |
Cc: | Kevin Grittner <kgrittn(at)ymail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter_e(at)gmx(dot)net>, PostgreSQL WWW <pgsql-www(at)postgresql(dot)org>, Stephen Frost <sfrost(at)snowman(dot)net> |
Subject: | Re: gitweb is no longer a real-time view |
Date: | 2013-03-04 13:23:57 |
Message-ID: | 20130304132357.GE3943@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)ymail(dot)com> wrote:
> > Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> >
> >> Actually, looking closer, I'm seeing a failure when it actually tries the
> >> push:
> >>
> >> To ssh://git(at)git(dot)postgresql(dot)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(at)gmx(dot)net>
> >>
> >> psql: Let \l accept a pattern
> >>
> >> commit d63977eea3ab18fdec05e370b633d10b9fd20179
> >> Author: Kevin Grittner <kgrittn(at)postgresql(dot)org>
> >>
> >> Remove accidentally-committed .orig file.
> >>
> >> commit 3bf3ab8c563699138be02f9dc305b7b77a724307
> >> Author: Kevin Grittner <kgrittn(at)postgresql(dot)org>
> >>
> >> Add a materialized view relations.
> >>
> >> commit b15a6da29217b14f02895af1d9271e84415a91ae
> >> Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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(at)sss(dot)pgh(dot)pa(dot)us>
> >>
> >> Fix map_sql_value_to_xml_value() to treat domains like their base types.
> >>
> >> commit 3bf3ab8c563699138be02f9dc305b7b77a724307
> >> Author: Kevin Grittner <kgrittn(at)postgresql(dot)org>
> >>
> >> Add a materialized view relations.
> >>
> >> commit b15a6da29217b14f02895af1d9271e84415a91ae
> >> Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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(at)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(at)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(at)Kevin-Desktop:~/pg/master$ cd ../postgresql.git/
> > kgrittn(at)Kevin-Desktop:~/pg/postgresql.git$ git push --dry-run
> > To ssh://git(at)gitmaster(dot)postgresql(dot)org/postgresql.git
> > + b15a6da...3a21ef1 master -> master (forced update)
> > + b15a6da...2b78d10 anonymous/master -> anonymous/master (forced update)
> > kgrittn(at)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(at)Kevin-Desktop:~/pg/postgresql.git$ git remote --verbose
> > origin ssh://git(at)gitmaster(dot)postgresql(dot)org/postgresql.git (fetch)
> > origin ssh://git(at)gitmaster(dot)postgresql(dot)org/postgresql.git (push)
> > kgrittn(at)Kevin-Desktop:~/pg/postgresql.git$ cd ../master
> > kgrittn(at)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
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2013-03-04 13:27:00 | Re: gitweb is no longer a real-time view |
Previous Message | Magnus Hagander | 2013-03-04 13:19:27 | Re: gitweb is no longer a real-time view |