comparison hgext/convert/cvs.py @ 5082:dc2e512cb89a

CVS import: Support new-style .cvspass-file format. Based on an email from Ralf.Leibold at nuance dot com
author Thomas Arendsen Hein <thomas@intevation.de>
date Tue, 07 Aug 2007 15:56:26 +0200
parents 30e826bd8ed1
children 7106f4899aa0 a76c61679b71
comparison
equal deleted inserted replaced
5081:ea7b982b6c08 5082: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))