Mercurial > hg
view tests/test-oldcgi.t @ 36975:795eb53f1d3e
rebase: allow in-memory merge of the working copy parent
Before this patch and when the rebase involved the working copy parent
(and thus the working copy too), we would not do in-memory rebase even
if requested to. The in-code comment explains that the reason had
something to do with avoiding an extra update, but I don't know which
update that refers to. Perhaps an earlier version of the code used to
update to the destination before rebasing even if in-memory rebase was
requested? That seems to not be done at least since aa660c1203a9
(rebase: do not bail on uncomitted changes if rebasing in-memory,
2017-12-07).
To see if this still made it slower, I create a single tiny commit on
top of one branch of the mozilla-unified repo (commit a1098c82 to be
exact) and rebased it to another branch (commit d4e9a7be). Before this
patch that took 11.8s and after this patch it took 8.6s (I only did
two runs each, but the timings were very consistent).
Differential Revision: https://phab.mercurial-scm.org/D2876
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 15 Mar 2018 13:19:55 -0700 |
parents | 8e6f4939a69a |
children | 23b749b84b8a |
line wrap: on
line source
#require no-msys # MSYS will translate web paths as if they were file paths This tests if CGI files from before d0db3462d568 still work. $ hg init test $ cat >hgweb.cgi <<HGWEB > #!$PYTHON > # > # An example CGI script to use hgweb, edit as necessary > > import cgitb, os, sys > cgitb.enable() > > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install > from mercurial import hgweb > > h = hgweb.hgweb("test", "Empty test repository") > h.run() > HGWEB $ chmod 755 hgweb.cgi $ cat >hgweb.config <<HGWEBDIRCONF > [paths] > test = test > HGWEBDIRCONF $ cat >hgwebdir.cgi <<HGWEBDIR > #!$PYTHON > # > # An example CGI script to export multiple hgweb repos, edit as necessary > > import cgitb, sys > cgitb.enable() > > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install > from mercurial import hgweb > > # The config file looks like this. You can have paths to individual > # repos, collections of repos in a directory tree, or both. > # > # [paths] > # virtual/path = /real/path > # virtual/path = /real/path > # > # [collections] > # /prefix/to/strip/off = /root/of/tree/full/of/repos > # > # collections example: say directory tree /foo contains repos /foo/bar, > # /foo/quux/baz. Give this config section: > # [collections] > # /foo = /foo > # Then repos will list as bar and quux/baz. > > # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples > # or use a dictionary with entries like 'virtual/path': '/real/path' > > h = hgweb.hgwebdir("hgweb.config") > h.run() > HGWEBDIR $ chmod 755 hgwebdir.cgi $ . "$TESTDIR/cgienv" $ $PYTHON hgweb.cgi > page1 $ $PYTHON hgwebdir.cgi > page2 $ PATH_INFO="/test/" $ PATH_TRANSLATED="/var/something/test.cgi" $ REQUEST_URI="/test/test/" $ SCRIPT_URI="http://hg.omnifarious.org/test/test/" $ SCRIPT_URL="/test/test/" $ $PYTHON hgwebdir.cgi > page3 $ grep -i error page1 page2 page3 [1]