annotate contrib/hgweb.fcgi @ 15183:59e8bc22506e

rollback: avoid unsafe rollback when not at tip (issue2998) You can get into trouble if you commit, update back to an older changeset, and then rollback. The update removes your valuable changes from the working dir, then rollback removes them history. Oops: you've just irretrievably lost data running nothing but core Mercurial commands. (More subtly: rollback from a shared clone that was already at an older changeset -- no update required, just rollback from the wrong directory.) The fix assumes that only "commit" transactions have irreplaceable data, and allows rolling back non-commit transactions as always. But when rolling back a commit, check that the working dir is checked out to tip, i.e. the changeset we're about to destroy. If not, abort. You can get back the old (dangerous) behaviour with --force.
author Greg Ward <greg@gerg.ca>
date Fri, 30 Sep 2011 21:58:54 -0400
parents b1739ebb9f3f
children 85cba926cb59
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
1 #!/usr/bin/env python
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
2 #
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
3 # An example FastCGI script for use with flup, edit as necessary
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
4
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
5 # Path to repo or hgweb config to serve (see 'hg help hgweb')
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
6 config = "/path/to/repo/or/config"
5244
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
7
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
8 # Uncomment and adjust if Mercurial is not installed system-wide:
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
9 #import sys; sys.path.insert(0, "/path/to/python/lib")
5197
55860a45bbf2 Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4391
diff changeset
10
6085
e1f11b8a1e9e hgweb: disable cgitb by default in hgwebdir.fcgi too
Maxim Dounin <mdounin@mdounin.ru>
parents: 5995
diff changeset
11 # Uncomment to send python tracebacks to the browser if an error occurs:
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
12 #import cgitb; cgitb.enable()
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
13
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
14 from mercurial import demandimport; demandimport.enable()
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
15 from mercurial.hgweb import hgweb
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
16 from flup.server.fcgi import WSGIServer
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
17 application = hgweb(config)
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
18 WSGIServer(application).run()