Show More
@@ -2317,6 +2317,8 b' class path(object):' | |||
|
2317 | 2317 | u.fragment = None |
|
2318 | 2318 | |
|
2319 | 2319 | self.url = u |
|
2320 | # the url from the config/command line before dealing with `path://` | |
|
2321 | self.raw_url = u.copy() | |
|
2320 | 2322 | self.branch = branch |
|
2321 | 2323 | |
|
2322 | 2324 | self.name = name |
@@ -2338,6 +2340,10 b' class path(object):' | |||
|
2338 | 2340 | if self.url.scheme == b'path': |
|
2339 | 2341 | assert self.url.path is None |
|
2340 | 2342 | subpath = paths[self.url.host] |
|
2343 | if subpath.raw_url.scheme == b'path': | |
|
2344 | m = _('cannot use `%s`, "%s" is also define as a `path://`') | |
|
2345 | m %= (self.rawloc, self.url.host) | |
|
2346 | raise error.Abort(m) | |
|
2341 | 2347 | self.url = subpath.url |
|
2342 | 2348 | self.rawloc = subpath.rawloc |
|
2343 | 2349 | self.loc = subpath.loc |
@@ -3144,6 +3144,21 b' class url(object):' | |||
|
3144 | 3144 | if v is not None: |
|
3145 | 3145 | setattr(self, a, urlreq.unquote(v)) |
|
3146 | 3146 | |
|
3147 | def copy(self): | |
|
3148 | u = url(b'temporary useless value') | |
|
3149 | u.path = self.path | |
|
3150 | u.scheme = self.scheme | |
|
3151 | u.user = self.user | |
|
3152 | u.passwd = self.passwd | |
|
3153 | u.host = self.host | |
|
3154 | u.path = self.path | |
|
3155 | u.query = self.query | |
|
3156 | u.fragment = self.fragment | |
|
3157 | u._localpath = self._localpath | |
|
3158 | u._hostport = self._hostport | |
|
3159 | u._origpath = self._origpath | |
|
3160 | return u | |
|
3161 | ||
|
3147 | 3162 | @encoding.strmethod |
|
3148 | 3163 | def __repr__(self): |
|
3149 | 3164 | attrs = [] |
@@ -334,3 +334,39 b' test inheritance of the suboptions' | |||
|
334 | 334 | adding manifests |
|
335 | 335 | adding file changes |
|
336 | 336 | added 5 changesets with 0 changes to 0 files (+1 heads) |
|
337 | ||
|
338 | Test chaining path:// definition | |
|
339 | -------------------------------- | |
|
340 | ||
|
341 | This is currently unsupported, but feel free to implement the necessary | |
|
342 | dependency detection. | |
|
343 | ||
|
344 | $ cat << EOF >> .hg/hgrc | |
|
345 | > chain_path=path://other_default | |
|
346 | > EOF | |
|
347 | ||
|
348 | $ hg id | |
|
349 | 000000000000 | |
|
350 | $ hg path | |
|
351 | abort: cannot use `path://other_default`, "other_default" is also define as a `path://` | |
|
352 | [255] | |
|
353 | $ hg pull chain_path | |
|
354 | abort: cannot use `path://other_default`, "other_default" is also define as a `path://` | |
|
355 | [255] | |
|
356 | ||
|
357 | Doing an actual circle should always be an issue | |
|
358 | ||
|
359 | $ cat << EOF >> .hg/hgrc | |
|
360 | > rock=path://cissors | |
|
361 | > cissors=path://paper | |
|
362 | > paper=://rock | |
|
363 | > EOF | |
|
364 | ||
|
365 | $ hg id | |
|
366 | 000000000000 | |
|
367 | $ hg path | |
|
368 | abort: cannot use `path://other_default`, "other_default" is also define as a `path://` | |
|
369 | [255] | |
|
370 | $ hg pull chain_path | |
|
371 | abort: cannot use `path://other_default`, "other_default" is also define as a `path://` | |
|
372 | [255] |
General Comments 0
You need to be logged in to leave comments.
Login now