Mercurial > hg
changeset 1205:4003ea658693
Write out hgrc properly.
Previously, we simply appended to the hgrc file, which meant that it
ended up containing multiple "paths" sections. Now, we only modify
"paths.default".
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Sun, 04 Sep 2005 15:47:59 -0700 |
parents | b0f6053df539 |
children | 6512d352d6c1 |
files | mercurial/commands.py |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Sun Sep 04 15:12:20 2005 -0700 +++ b/mercurial/commands.py Sun Sep 04 15:47:59 2005 -0700 @@ -10,7 +10,7 @@ demandload(globals(), "os re sys signal shutil imp") demandload(globals(), "fancyopts ui hg util lock revlog") demandload(globals(), "fnmatch hgweb mdiff random signal time traceback") -demandload(globals(), "errno socket version struct atexit sets") +demandload(globals(), "ConfigParser errno socket version struct atexit sets") class UnknownCommand(Exception): """Exception raised if command is not in the command table.""" @@ -622,9 +622,16 @@ repo = hg.repository(ui, dest, create=1) repo.pull(other) - f = repo.opener("hgrc", "a") - f.write("\n[paths]\n") - f.write("default = %s\n" % abspath) + cfg = ConfigParser.SafeConfigParser() + try: + fp = repo.opener('hgrc', 'r') + os.unlink(fp.name) + cfg.readfp(fp) + except IOError, inst: + if inst.errno != errno.ENOENT: raise + if not cfg.has_section('paths'): cfg.add_section('paths') + cfg.set('paths', 'default', abspath) + cfg.write(repo.opener('hgrc', 'w')) if not opts['noupdate']: update(ui, repo)