hgext/convert/cvs.py
changeset 5120 dc2e512cb89a
parent 4698 30e826bd8ed1
child 5121 7106f4899aa0
child 5303 a76c61679b71
equal deleted inserted replaced
5115:ea7b982b6c08 5120:dc2e512cb89a
   105             if m:
   105             if m:
   106                 conntype = "pserver"
   106                 conntype = "pserver"
   107                 user, passw, serv, port, root = m.groups()
   107                 user, passw, serv, port, root = m.groups()
   108                 if not user:
   108                 if not user:
   109                     user = "anonymous"
   109                     user = "anonymous"
   110                 rr = ":pserver:" + user + "@" + serv + ":" +  root
   110                 if not port:
   111                 if port:
   111                     port = 2401
   112                     rr2, port = "-", int(port)
       
   113                 else:
   112                 else:
   114                     rr2, port = rr, 2401
   113                     port = int(port)
   115                 rr += str(port)
   114                 format0 = ":pserver:%s@%s:%s" % (user, serv, root)
       
   115                 format1 = ":pserver:%s@%s:%d%s" % (user, serv, port, root)
   116 
   116 
   117                 if not passw:
   117                 if not passw:
   118                     passw = "A"
   118                     passw = "A"
   119                     pf = open(os.path.join(os.environ["HOME"], ".cvspass"))
   119                     pf = open(os.path.join(os.environ["HOME"], ".cvspass"))
   120                     for l in pf:
   120                     for line in pf.read().splitlines():
   121                         # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z
   121                         part1, part2 = line.split(' ', 1)
   122                         m = re.match(r'(/\d+\s+/)?(.*)', l)
   122                         if part1 == '/1':
   123                         l = m.group(2)
   123                             # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z
   124                         w, p = l.split(' ', 1)
   124                             part1, part2 = part2.split(' ', 1)
   125                         if w in [rr, rr2]:
   125                             format = format1
   126                             passw = p
   126                         else:
       
   127                             # :pserver:user@example.com:/cvsroot/foo Ah<Z
       
   128                             format = format0
       
   129                         if part1 == format:
       
   130                             passw = part2
   127                             break
   131                             break
   128                     pf.close()
   132                     pf.close()
   129 
   133 
   130                 sck = socket.socket()
   134                 sck = socket.socket()
   131                 sck.connect((serv, port))
   135                 sck.connect((serv, port))