hgext/convert/cvs.py
changeset 5121 7106f4899aa0
parent 5076 ef338e34a906
parent 5120 dc2e512cb89a
child 5173 7e05bdeee7de
equal deleted inserted replaced
5119:0751c25ea0c0 5121:7106f4899aa0
   122             if m:
   122             if m:
   123                 conntype = "pserver"
   123                 conntype = "pserver"
   124                 user, passw, serv, port, root = m.groups()
   124                 user, passw, serv, port, root = m.groups()
   125                 if not user:
   125                 if not user:
   126                     user = "anonymous"
   126                     user = "anonymous"
   127                 rr = ":pserver:" + user + "@" + serv + ":" +  root
   127                 if not port:
   128                 if port:
   128                     port = 2401
   129                     rr2, port = "-", int(port)
       
   130                 else:
   129                 else:
   131                     rr2, port = rr, 2401
   130                     port = int(port)
   132                 rr += str(port)
   131                 format0 = ":pserver:%s@%s:%s" % (user, serv, root)
       
   132                 format1 = ":pserver:%s@%s:%d%s" % (user, serv, port, root)
   133 
   133 
   134                 if not passw:
   134                 if not passw:
   135                     passw = "A"
   135                     passw = "A"
   136                     pf = open(os.path.join(os.environ["HOME"], ".cvspass"))
   136                     pf = open(os.path.join(os.environ["HOME"], ".cvspass"))
   137                     for l in pf:
   137                     for line in pf.read().splitlines():
   138                         # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z
   138                         part1, part2 = line.split(' ', 1)
   139                         m = re.match(r'(/\d+\s+/)?(.*)', l)
   139                         if part1 == '/1':
   140                         l = m.group(2)
   140                             # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z
   141                         w, p = l.split(' ', 1)
   141                             part1, part2 = part2.split(' ', 1)
   142                         if w in [rr, rr2]:
   142                             format = format1
   143                             passw = p
   143                         else:
       
   144                             # :pserver:user@example.com:/cvsroot/foo Ah<Z
       
   145                             format = format0
       
   146                         if part1 == format:
       
   147                             passw = part2
   144                             break
   148                             break
   145                     pf.close()
   149                     pf.close()
   146 
   150 
   147                 sck = socket.socket()
   151                 sck = socket.socket()
   148                 sck.connect((serv, port))
   152                 sck.connect((serv, port))