Mercurial > hg
annotate mercurial/statichttprepo.py @ 47890:3853e6ee160d
dirstatemap: replace `removefile` by an explicit `entry.set_untracked()`
All the other caller goes through `reset_state`, so we can safely have an
explicit method on `DirstateItem` object.
This means that all the logic to preserve the previous state (from p2, merged,
etc) is now properly encapsulated within the DirstateItem. This pave the way to
using different storage for these information.
Differential Revision: https://phab.mercurial-scm.org/D11315
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 20 Aug 2021 11:27:01 +0200 |
parents | d00177d08139 |
children | 4a9570e389b2 |
rev | line source |
---|---|
1101 | 1 # statichttprepo.py - simple http repository class for mercurial |
2 # | |
3 # This provides read-only repo access to repositories exported via static http | |
4 # | |
46819
d4ba4d51f85f
contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents:
46780
diff
changeset
|
5 # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com> |
1101 | 6 # |
8225
46293a0c7e9f
updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents:
7873
diff
changeset
|
7 # This software may be used and distributed according to the terms of the |
10263 | 8 # GNU General Public License version 2 or any later version. |
1101 | 9 |
25978
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
10 from __future__ import absolute_import |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
11 |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
12 import errno |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
13 |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
14 from .i18n import _ |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46713
diff
changeset
|
15 from .node import sha1nodeconstants |
25978
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
16 from . import ( |
41615
328ca3b9e545
branchmap: encapsulate cache updating in the map itself
Martijn Pieters <mj@octobus.net>
parents:
41407
diff
changeset
|
17 branchmap, |
25978
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
18 changelog, |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
19 error, |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
20 localrepo, |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
21 manifest, |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
22 namespaces, |
34943
3423f7e2d287
statichttprepo: do not use platform path separator to build a URL
Yuya Nishihara <yuya@tcha.org>
parents:
33604
diff
changeset
|
23 pathutil, |
41407
6e9bebb65ce7
statichttprepo: use str to appease Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41406
diff
changeset
|
24 pycompat, |
25978
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
25 url, |
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
26 util, |
31241
591fda751c6b
vfs: use 'vfs' module directly in 'mercurial.statichttprepo'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31148
diff
changeset
|
27 vfs as vfsmod, |
25978
762f4c6df6b1
statichttprepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25670
diff
changeset
|
28 ) |
46907
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46819
diff
changeset
|
29 from .utils import ( |
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46819
diff
changeset
|
30 urlutil, |
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46819
diff
changeset
|
31 ) |
1325
57220daf40e9
Move urllib error handling from revlog into statichttprepo, where it belongs.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1101
diff
changeset
|
32 |
28883
032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
timeless <timeless@mozdev.org>
parents:
27705
diff
changeset
|
33 urlerr = util.urlerr |
032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
timeless <timeless@mozdev.org>
parents:
27705
diff
changeset
|
34 urlreq = util.urlreq |
032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
timeless <timeless@mozdev.org>
parents:
27705
diff
changeset
|
35 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
36 |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
37 class httprangereader(object): |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
38 def __init__(self, url, opener): |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
39 # we assume opener has HTTPRangeHandler |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
40 self.url = url |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
41 self.pos = 0 |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
42 self.opener = opener |
11066
26abd91d9e84
static-http: mimic more closely localrepo (issue2164: allow clone -r )
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10263
diff
changeset
|
43 self.name = url |
27705
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
44 |
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
45 def __enter__(self): |
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
46 return self |
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
47 |
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
48 def __exit__(self, exc_type, exc_value, traceback): |
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
49 self.close() |
2380889f8f52
statichttprepo: implement __enter__ and __exit__ on httprangeheader
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26587
diff
changeset
|
50 |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
51 def seek(self, pos): |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
52 self.pos = pos |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
53 |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
54 def read(self, bytes=None): |
41407
6e9bebb65ce7
statichttprepo: use str to appease Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41406
diff
changeset
|
55 req = urlreq.request(pycompat.strurl(self.url)) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
56 end = b'' |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
57 if bytes: |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
58 end = self.pos + bytes - 1 |
16882
a2d6e336e9cc
statichttprepo: don't send Range header when requesting entire file
Alexander Boyd <alex@opengroove.org>
parents:
16115
diff
changeset
|
59 if self.pos or end: |
43506
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43077
diff
changeset
|
60 req.add_header('Range', 'bytes=%d-%s' % (self.pos, end)) |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
61 |
1325
57220daf40e9
Move urllib error handling from revlog into statichttprepo, where it belongs.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1101
diff
changeset
|
62 try: |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
63 f = self.opener.open(req) |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
64 data = f.read() |
25196
7a1af58ab242
statichttprepo: remove wrong getattr ladder
Augie Fackler <raf@durin42.com>
parents:
24377
diff
changeset
|
65 code = f.code |
28883
032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
timeless <timeless@mozdev.org>
parents:
27705
diff
changeset
|
66 except urlerr.httperror as inst: |
6028
6605a03cbf87
make static-http work with empty repos (issue965)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5321
diff
changeset
|
67 num = inst.code == 404 and errno.ENOENT or None |
46202
5135b393884b
statichttprepo: explicitly convert error message to str (issue6247)
Joerg Sonnenberger <joerg@bec.de>
parents:
45434
diff
changeset
|
68 # Explicitly convert the exception to str as Py3 will try |
5135b393884b
statichttprepo: explicitly convert error message to str (issue6247)
Joerg Sonnenberger <joerg@bec.de>
parents:
45434
diff
changeset
|
69 # convert it to local encoding and with as the HTTPResponse |
5135b393884b
statichttprepo: explicitly convert error message to str (issue6247)
Joerg Sonnenberger <joerg@bec.de>
parents:
45434
diff
changeset
|
70 # instance doesn't support encode. |
5135b393884b
statichttprepo: explicitly convert error message to str (issue6247)
Joerg Sonnenberger <joerg@bec.de>
parents:
45434
diff
changeset
|
71 raise IOError(num, str(inst)) |
28883
032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
timeless <timeless@mozdev.org>
parents:
27705
diff
changeset
|
72 except urlerr.urlerror as inst: |
41406
2bf689b13a17
statichttprepo: use URLError.reason directly
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41038
diff
changeset
|
73 raise IOError(None, inst.reason) |
1101 | 74 |
8612
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
75 if code == 200: |
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
76 # HTTPRangeHandler does nothing if remote does not support |
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
77 # Range headers and returns the full entity. Let's slice it. |
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
78 if bytes: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
79 data = data[self.pos : self.pos + bytes] |
8612
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
80 else: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
81 data = data[self.pos :] |
8612
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
82 elif bytes: |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
83 data = data[:bytes] |
8612
e10e984bea46
statichttprepo: handle remote not supporting Range headers
Patrick Mezard <pmezard@gmail.com>
parents:
8225
diff
changeset
|
84 self.pos += len(data) |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
85 return data |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
86 |
20055
6bb9de1e4d16
statichttprepo.httprangeheader: implement readlines
Siddharth Agarwal <sid0@fb.com>
parents:
20054
diff
changeset
|
87 def readlines(self): |
6bb9de1e4d16
statichttprepo.httprangeheader: implement readlines
Siddharth Agarwal <sid0@fb.com>
parents:
20054
diff
changeset
|
88 return self.read().splitlines(True) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
89 |
11066
26abd91d9e84
static-http: mimic more closely localrepo (issue2164: allow clone -r )
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10263
diff
changeset
|
90 def __iter__(self): |
20055
6bb9de1e4d16
statichttprepo.httprangeheader: implement readlines
Siddharth Agarwal <sid0@fb.com>
parents:
20054
diff
changeset
|
91 return iter(self.readlines()) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
92 |
11066
26abd91d9e84
static-http: mimic more closely localrepo (issue2164: allow clone -r )
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10263
diff
changeset
|
93 def close(self): |
26abd91d9e84
static-http: mimic more closely localrepo (issue2164: allow clone -r )
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10263
diff
changeset
|
94 pass |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
95 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
96 |
36425
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
97 # _RangeError and _HTTPRangeHandler were originally in byterange.py, |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
98 # which was itself extracted from urlgrabber. See the last version of |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
99 # byterange.py from history if you need more information. |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
100 class _RangeError(IOError): |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
101 """Error raised when an unsatisfiable range is requested.""" |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
102 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
103 |
36425
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
104 class _HTTPRangeHandler(urlreq.basehandler): |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
105 """Handler that enables HTTP Range headers. |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
106 |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
107 This was extremely simple. The Range header is a HTTP feature to |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
108 begin with so all this class does is tell urllib2 that the |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
109 "206 Partial Content" response from the HTTP server is what we |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
110 expected. |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
111 """ |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
112 |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
113 def http_error_206(self, req, fp, code, msg, hdrs): |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
114 # 206 Partial Content Response |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
115 r = urlreq.addinfourl(fp, hdrs, req.get_full_url()) |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
116 r.code = code |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
117 r.msg = msg |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
118 return r |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
119 |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
120 def http_error_416(self, req, fp, code, msg, hdrs): |
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
121 # HTTP's Range Not Satisfiable error |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
122 raise _RangeError(b'Requested Range Not Satisfiable') |
36425
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
123 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
124 |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
125 def build_opener(ui, authinfo): |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
126 # urllib cannot handle URLs with embedded user or passwd |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
127 urlopener = url.opener(ui, authinfo) |
36425
24c2c760c1cb
statichttprepo: move HTTPRangeHandler from byterange and delete the latter
Augie Fackler <augie@google.com>
parents:
35248
diff
changeset
|
128 urlopener.add_handler(_HTTPRangeHandler()) |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
129 |
31241
591fda751c6b
vfs: use 'vfs' module directly in 'mercurial.statichttprepo'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31148
diff
changeset
|
130 class statichttpvfs(vfsmod.abstractvfs): |
14091
0aa60e4e0b76
statichttprepo: make the opener a subclass of abstractopener
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
14076
diff
changeset
|
131 def __init__(self, base): |
0aa60e4e0b76
statichttprepo: make the opener a subclass of abstractopener
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
14076
diff
changeset
|
132 self.base = base |
43025
3518da504303
vfs: give all vfs an options attribute by default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42231
diff
changeset
|
133 self.options = {} |
14091
0aa60e4e0b76
statichttprepo: make the opener a subclass of abstractopener
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
14076
diff
changeset
|
134 |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
135 def __call__(self, path, mode=b'r', *args, **kw): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
136 if mode not in (b'r', b'rb'): |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
137 raise IOError(b'Permission denied') |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
138 f = b"/".join((self.base, urlreq.quote(path))) |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
139 return httprangereader(f, urlopener) |
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
140 |
17725
ffd589d4b785
vfs: define "join()" in each classes derived from "abstractvfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17649
diff
changeset
|
141 def join(self, path): |
ffd589d4b785
vfs: define "join()" in each classes derived from "abstractvfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17649
diff
changeset
|
142 if path: |
34943
3423f7e2d287
statichttprepo: do not use platform path separator to build a URL
Yuya Nishihara <yuya@tcha.org>
parents:
33604
diff
changeset
|
143 return pathutil.join(self.base, path) |
17725
ffd589d4b785
vfs: define "join()" in each classes derived from "abstractvfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17649
diff
changeset
|
144 else: |
ffd589d4b785
vfs: define "join()" in each classes derived from "abstractvfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17649
diff
changeset
|
145 return self.base |
ffd589d4b785
vfs: define "join()" in each classes derived from "abstractvfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17649
diff
changeset
|
146 |
17649
f65c6a5f256c
scmutil: rename classes from "opener" to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17193
diff
changeset
|
147 return statichttpvfs |
1101 | 148 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
149 |
17192
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
150 class statichttppeer(localrepo.localpeer): |
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
151 def local(self): |
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
152 return None |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
153 |
17193
1d710fe5ee0e
peer: introduce canpush and improve error message
Sune Foldager <cryo@cyanite.org>
parents:
17192
diff
changeset
|
154 def canpush(self): |
1d710fe5ee0e
peer: introduce canpush and improve error message
Sune Foldager <cryo@cyanite.org>
parents:
17192
diff
changeset
|
155 return False |
17192
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
156 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
157 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
158 class statichttprepository( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
159 localrepo.localrepository, localrepo.revlogfilestorage |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
160 ): |
19778
55ef79031009
localrepo: make supported features manageable in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
18915
diff
changeset
|
161 supported = localrepo.localrepository._basesupported |
55ef79031009
localrepo: make supported features manageable in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
18915
diff
changeset
|
162 |
1101 | 163 def __init__(self, ui, path): |
2673
109a22f5434a
hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2072
diff
changeset
|
164 self._url = path |
1101 | 165 self.ui = ui |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3851
diff
changeset
|
166 |
11066
26abd91d9e84
static-http: mimic more closely localrepo (issue2164: allow clone -r )
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10263
diff
changeset
|
167 self.root = path |
46907
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46819
diff
changeset
|
168 u = urlutil.url(path.rstrip(b'/') + b"/.hg") |
13819
d16894e29f91
httprepo/sshrepo: use url.url
Brodie Rao <brodie@bitheap.org>
parents:
13533
diff
changeset
|
169 self.path, authinfo = u.authinfo() |
7274
95f3694cc5a4
statichttprepo: cleanups, use url.py (proxy, password support)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7211
diff
changeset
|
170 |
31147
e04ab2a5bf90
statichttp: use 'repo.vfs' as the main attribute
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30219
diff
changeset
|
171 vfsclass = build_opener(ui, authinfo) |
e04ab2a5bf90
statichttp: use 'repo.vfs' as the main attribute
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30219
diff
changeset
|
172 self.vfs = vfsclass(self.path) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
173 self.cachevfs = vfsclass(self.vfs.join(b'cache')) |
15922
23921c17299a
phases: mechanism to allow extension to alter initial computation of phase
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
14962
diff
changeset
|
174 self._phasedefaults = [] |
6028
6605a03cbf87
make static-http work with empty repos (issue965)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5321
diff
changeset
|
175 |
23561
3c2419e07df5
namespaces: remove weakref; always pass in repo
Ryan McElroy <rmcelroy@fb.com>
parents:
23558
diff
changeset
|
176 self.names = namespaces.namespaces() |
32730
b8ff7d0ff361
localrepo: move filtername to __init__
Gregory Szorc <gregory.szorc@gmail.com>
parents:
31241
diff
changeset
|
177 self.filtername = None |
42231
d345627d104b
repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41615
diff
changeset
|
178 self._extrafilterid = None |
46713
bc2519513ae0
sidedata-exchange: add `wanted_sidedata` and `sidedata_computers` to repos
Raphaël Gomès <rgomes@octobus.net>
parents:
46202
diff
changeset
|
179 self._wanted_sidedata = set() |
47225
d00177d08139
statichttp: add the missing `features` attribute
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46907
diff
changeset
|
180 self.features = set() |
23558
3198aac7a95d
namespaces: add bookmarks to the names data structure
Sean Farley <sean.michael.farley@gmail.com>
parents:
23552
diff
changeset
|
181 |
3851
8f18e31c4441
add "requires" file to the repo, specifying the requirements
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3794
diff
changeset
|
182 try: |
39694
6192980553b4
statichttprepo: use new functions for requirements validation
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39549
diff
changeset
|
183 requirements = set(self.vfs.read(b'requires').splitlines()) |
25660
328739ea70c3
global: mass rewrite to use modern exception syntax
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25196
diff
changeset
|
184 except IOError as inst: |
7178
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
185 if inst.errno != errno.ENOENT: |
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
186 raise |
14482
58b36e9ea783
introduce new function scmutil.readrequires
Adrian Buehlmann <adrian@cadifra.com>
parents:
14168
diff
changeset
|
187 requirements = set() |
58b36e9ea783
introduce new function scmutil.readrequires
Adrian Buehlmann <adrian@cadifra.com>
parents:
14168
diff
changeset
|
188 |
7178
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
189 # check if it is a non-empty old-style repository |
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
190 try: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
191 fp = self.vfs(b"00changelog.i") |
13400
14f3795a5ed7
explicitly close files
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
13253
diff
changeset
|
192 fp.read(1) |
14f3795a5ed7
explicitly close files
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
13253
diff
changeset
|
193 fp.close() |
25660
328739ea70c3
global: mass rewrite to use modern exception syntax
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25196
diff
changeset
|
194 except IOError as inst: |
7178
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
195 if inst.errno != errno.ENOENT: |
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
196 raise |
98b6c3dde237
Fix Debian bug #494889 (fetching from static-http://... broken)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6312
diff
changeset
|
197 # we do not care about empty old-style repositories here |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
198 msg = _(b"'%s' does not appear to be an hg repository") % path |
7637 | 199 raise error.RepoError(msg) |
3851
8f18e31c4441
add "requires" file to the repo, specifying the requirements
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3794
diff
changeset
|
200 |
39694
6192980553b4
statichttprepo: use new functions for requirements validation
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39549
diff
changeset
|
201 supportedrequirements = localrepo.gathersupportedrequirements(ui) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
202 localrepo.ensurerequirementsrecognized( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
203 requirements, supportedrequirements |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
204 ) |
39695
cb2dcfa5cade
localrepo: move requirements reasonability testing to own function
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39694
diff
changeset
|
205 localrepo.ensurerequirementscompatible(ui, requirements) |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46713
diff
changeset
|
206 self.nodeconstants = sha1nodeconstants |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46713
diff
changeset
|
207 self.nullid = self.nodeconstants.nullid |
39694
6192980553b4
statichttprepo: use new functions for requirements validation
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39549
diff
changeset
|
208 |
3851
8f18e31c4441
add "requires" file to the repo, specifying the requirements
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3794
diff
changeset
|
209 # setup store |
39698
f44187605315
localrepo: move store() from store module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
39695
diff
changeset
|
210 self.store = localrepo.makestore(requirements, self.path, vfsclass) |
6897
faea0d27e38f
statichttp: use store class
Matt Mackall <mpm@selenic.com>
parents:
6840
diff
changeset
|
211 self.spath = self.store.path |
23878
37a92908a382
localrepo: remove all external users of localrepo.sopener
Angel Ezquerra <angel.ezquerra@gmail.com>
parents:
23877
diff
changeset
|
212 self.svfs = self.store.opener |
6897
faea0d27e38f
statichttp: use store class
Matt Mackall <mpm@selenic.com>
parents:
6840
diff
changeset
|
213 self.sjoin = self.store.join |
16115
236bb604dc39
scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents:
15922
diff
changeset
|
214 self._filecache = {} |
17192
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
215 self.requirements = requirements |
3851
8f18e31c4441
add "requires" file to the repo, specifying the requirements
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3794
diff
changeset
|
216 |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
46713
diff
changeset
|
217 rootmanifest = manifest.manifestrevlog(self.nodeconstants, self.svfs) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
218 self.manifestlog = manifest.manifestlog( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
219 self.svfs, self, rootmanifest, self.narrowmatch() |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
220 ) |
23878
37a92908a382
localrepo: remove all external users of localrepo.sopener
Angel Ezquerra <angel.ezquerra@gmail.com>
parents:
23877
diff
changeset
|
221 self.changelog = changelog.changelog(self.svfs) |
9146
5614a628d173
localrepo: rename in-memory tag cache instance attributes (issue548).
Greg Ward <greg-hg@gerg.ca>
parents:
8612
diff
changeset
|
222 self._tags = None |
1101 | 223 self.nodetagscache = None |
41615
328ca3b9e545
branchmap: encapsulate cache updating in the map itself
Martijn Pieters <mj@octobus.net>
parents:
41407
diff
changeset
|
224 self._branchcaches = branchmap.BranchMapCache() |
24373
59cc09240afb
revbranchcache: move out of branchmap onto localrepo
Durham Goode <durham@fb.com>
parents:
23878
diff
changeset
|
225 self._revbranchcache = None |
1598
14d1f1868bf6
cleanup of revlog.group when repository is local
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1325
diff
changeset
|
226 self.encodepats = None |
14d1f1868bf6
cleanup of revlog.group when repository is local
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1325
diff
changeset
|
227 self.decodepats = None |
24377
656f93ce66d5
revbranchcache: move cache writing to the transaction finalizer
Durham Goode <durham@fb.com>
parents:
24373
diff
changeset
|
228 self._transref = None |
17192
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
229 |
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
230 def _restrictcapabilities(self, caps): |
20962
af4158b8876b
statichttp: respect localrepo _restrictcapabilities
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20055
diff
changeset
|
231 caps = super(statichttprepository, self)._restrictcapabilities(caps) |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
232 return caps.difference([b"pushkey"]) |
1101 | 233 |
2673
109a22f5434a
hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2072
diff
changeset
|
234 def url(self): |
7211 | 235 return self._url |
2673
109a22f5434a
hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2072
diff
changeset
|
236 |
1101 | 237 def local(self): |
238 return False | |
2740
386f04d6ecb3
clean up hg.py: move repo constructor code into each repo module
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2673
diff
changeset
|
239 |
17192
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
240 def peer(self): |
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
241 return statichttppeer(self) |
1ac628cd7113
peer: introduce real peer classes
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
17156
diff
changeset
|
242 |
33604
8b00c723cee1
statichttprepo: implement wlock() (issue5613)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33533
diff
changeset
|
243 def wlock(self, wait=True): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
244 raise error.LockUnavailable( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
245 0, |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
246 _(b'lock not available'), |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
247 b'lock', |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
248 _(b'cannot lock static-http repository'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
249 ) |
33604
8b00c723cee1
statichttprepo: implement wlock() (issue5613)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33533
diff
changeset
|
250 |
7005
7739b61897df
do not pretend to lock static-http repositories (issue994)
Martin Geisler <mg@daimi.au.dk>
parents:
6988
diff
changeset
|
251 def lock(self, wait=True): |
45434
5523e3e1bc71
statichttprepo: use LockUnavailable() instead of Abort() for lock (API)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
43506
diff
changeset
|
252 raise error.LockUnavailable( |
5523e3e1bc71
statichttprepo: use LockUnavailable() instead of Abort() for lock (API)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
43506
diff
changeset
|
253 0, |
5523e3e1bc71
statichttprepo: use LockUnavailable() instead of Abort() for lock (API)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
43506
diff
changeset
|
254 _(b'lock not available'), |
5523e3e1bc71
statichttprepo: use LockUnavailable() instead of Abort() for lock (API)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
43506
diff
changeset
|
255 b'lock', |
5523e3e1bc71
statichttprepo: use LockUnavailable() instead of Abort() for lock (API)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
43506
diff
changeset
|
256 _(b'cannot lock static-http repository'), |
5523e3e1bc71
statichttprepo: use LockUnavailable() instead of Abort() for lock (API)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
43506
diff
changeset
|
257 ) |
7005
7739b61897df
do not pretend to lock static-http repositories (issue994)
Martin Geisler <mg@daimi.au.dk>
parents:
6988
diff
changeset
|
258 |
29738
c1696430254f
statichttprepo: do not try to write caches
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28883
diff
changeset
|
259 def _writecaches(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
260 pass # statichttprepository are read only |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43025
diff
changeset
|
261 |
29738
c1696430254f
statichttprepo: do not try to write caches
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28883
diff
changeset
|
262 |
39549
089fc0db0954
hg: allow extra arguments to be passed to repo creation (API)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37717
diff
changeset
|
263 def instance(ui, path, create, intents=None, createopts=None): |
2740
386f04d6ecb3
clean up hg.py: move repo constructor code into each repo module
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2673
diff
changeset
|
264 if create: |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
265 raise error.Abort(_(b'cannot create new static-http repository')) |
4853
bf10a03a6b24
Removed deprecated hg:// and old-http:// protocols (issue406)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4635
diff
changeset
|
266 return statichttprepository(ui, path[7:]) |