Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9.3, 2.0, and 2.0.1

stable sync: hoist SyncWidget.urlparse() to a global function for reuse

Changeset c7bfb730df64

Parent 8d18eb04377b

by Steve Borho

Changes to one file · Browse files at c7bfb730df64 Showing diff from parent 8d18eb04377b Diff from another changeset...

 
27
28
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
31
32
 
343
344
345
346
 
347
348
349
 
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
 
422
423
424
425
 
426
427
428
 
430
431
432
433
 
434
435
436
 
532
533
534
535
 
536
537
538
 
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
364
365
366
 
367
368
369
370
 
397
398
399
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
400
401
402
 
423
424
425
 
426
427
428
429
 
431
432
433
 
434
435
436
437
 
533
534
535
 
536
537
538
539
@@ -27,6 +27,27 @@
   _schemes = ['local', 'ssh', 'http', 'https']   +def parseurl(path): + m = re.match(r'^ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?$', path) + if m: + user = m.group(2) + host = m.group(3) + port = m.group(5) + folder = m.group(7) or '.' + passwd = '' + scheme = 'ssh' + elif path.startswith('http://') or path.startswith('https://'): + snpaqf = urlparse.urlparse(path) + scheme, netloc, folder, params, query, fragment = snpaqf + host, port, user, passwd = url.netlocsplit(netloc) + if folder.startswith('/'): + folder = folder[1:] + else: + user, host, port, passwd = [''] * 4 + folder = path + scheme = 'local' + return user, host, port, folder, passwd, scheme +  class SyncWidget(QWidget):   outgoingNodes = pyqtSignal(object)   incomingBundle = pyqtSignal(QString) @@ -343,7 +364,7 @@
  def setUrl(self, newurl):   'User has selected a new URL: newurl is expected in local encoding'   try: - user, host, port, folder, passwd, scheme = self.urlparse(newurl) + user, host, port, folder, passwd, scheme = parseurl(newurl)   except TypeError:   return   self.updateInProgress = True @@ -376,26 +397,6 @@
  self.setUrl(hglib.fromunicode(text))   event.accept()   - def urlparse(self, path): - m = re.match(r'^ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?$', path) - if m: - user = m.group(2) - host = m.group(3) - port = m.group(5) - folder = m.group(7) or '.' - passwd = '' - scheme = 'ssh' - elif path.startswith('http://') or path.startswith('https://'): - snpaqf = urlparse.urlparse(path) - scheme, netloc, folder, params, query, fragment = snpaqf - host, port, user, passwd = url.netlocsplit(netloc) - if folder.startswith('/'): folder = folder[1:] - else: - user, host, port, passwd = [''] * 4 - folder = path - scheme = 'local' - return user, host, port, folder, passwd, scheme -   def canExit(self):   return not self.cmd.core.running()   @@ -422,7 +423,7 @@
    def exploreurl(self):   url = hglib.fromunicode(self.menuurl) - u, h, p, folder, pw, scheme = self.urlparse(url) + u, h, p, folder, pw, scheme = parseurl(url)   if scheme == 'local':   QDesktopServices.openUrl(QUrl.fromLocalFile(folder))   else: @@ -430,7 +431,7 @@
    def terminalurl(self):   url = hglib.fromunicode(self.menuurl) - u, h, p, folder, pw, scheme = self.urlparse(url) + u, h, p, folder, pw, scheme = parseurl(url)   if scheme != 'local':   qtlib.InfoMsgBox(_('Repository not local'),   _('A terminal shell cannot be opened for remote')) @@ -532,7 +533,7 @@
  parent=self)   return   - user, host, port, folder, passwd, scheme = self.urlparse(url) + user, host, port, folder, passwd, scheme = parseurl(url)   if scheme == 'https':   if self.repo.ui.configbool('insecurehosts', host):   cmdline.append('--insecure')