[PATCH 2 of 2] convert: check existence of ~/.cvspass before reading it
Edouard Gomez
ed.gomez at free.fr
Thu Nov 27 09:36:34 UTC 2008
# HG changeset patch
# User Edouard Gomez <ed.gomez at free.fr>
# Date 1227777200 -3600
# Node ID 8bf030143888f4017ceb5e934140fc9a61c05bf9
# Parent c48daeae689ddbe1b4c0bcce548f0b6ca50393b8
convert: check existence of ~/.cvspass before reading it
As mercurial is so good at keeping track of CVS repos, I don't use
cvs anymore. Which results in the ~/.cvspass not being created by
any cvs command execution.
So I end up with this type of convert error:
$ hg convert enblend.cvs enblend.hg
initializing destination enblend.hg repository
using builtin cvsps
collecting CVS rlog
cvs rlog: CVS password file /home/ed/.cvspass does not exist - creating a new file
[...]
connecting to :pserver:anonymous at enblend.cvs.sourceforge.net:/cvsroot/enblend
abort: No such file or directory: /home/ed/.cvspass
Though cvs rlog says it creates the file, it doesn't create it...
So better check for it before reading it.
diff --git a/hgext/convert/cvs.py b/hgext/convert/cvs.py
--- a/hgext/convert/cvs.py
+++ b/hgext/convert/cvs.py
@@ -201,20 +201,22 @@
if not passw:
passw = "A"
- pf = open(os.path.expanduser("~/.cvspass"))
- for line in pf.read().splitlines():
- part1, part2 = line.split(' ', 1)
- if part1 == '/1':
- # /1 :pserver:user at example.com:2401/cvsroot/foo Ah<Z
- part1, part2 = part2.split(' ', 1)
- format = format1
- else:
- # :pserver:user at example.com:/cvsroot/foo Ah<Z
- format = format0
- if part1 == format:
- passw = part2
- break
- pf.close()
+ cvspass = os.path.expanduser("~/.cvspass")
+ if os.path.exists(cvspass):
+ pf = open(cvspass)
+ for line in pf.read().splitlines():
+ part1, part2 = line.split(' ', 1)
+ if part1 == '/1':
+ # /1 :pserver:user at example.com:2401/cvsroot/foo Ah<Z
+ part1, part2 = part2.split(' ', 1)
+ format = format1
+ else:
+ # :pserver:user at example.com:/cvsroot/foo Ah<Z
+ format = format0
+ if part1 == format:
+ passw = part2
+ break
+ pf.close()
sck = socket.socket()
sck.connect((serv, port))
More information about the Mercurial-devel
mailing list