mercurial/commands.py
changeset 1206 6512d352d6c1
parent 1205 4003ea658693
child 1207 a7b8812973d9
equal deleted inserted replaced
1205:4003ea658693 1206:6512d352d6c1
     8 from demandload import demandload
     8 from demandload import demandload
     9 from node import *
     9 from node import *
    10 demandload(globals(), "os re sys signal shutil imp")
    10 demandload(globals(), "os re sys signal shutil imp")
    11 demandload(globals(), "fancyopts ui hg util lock revlog")
    11 demandload(globals(), "fancyopts ui hg util lock revlog")
    12 demandload(globals(), "fnmatch hgweb mdiff random signal time traceback")
    12 demandload(globals(), "fnmatch hgweb mdiff random signal time traceback")
    13 demandload(globals(), "ConfigParser errno socket version struct atexit sets")
    13 demandload(globals(), "errno socket version struct atexit sets")
    14 
    14 
    15 class UnknownCommand(Exception):
    15 class UnknownCommand(Exception):
    16     """Exception raised if command is not in the command table."""
    16     """Exception raised if command is not in the command table."""
    17 
    17 
    18 def filterfiles(filters, files):
    18 def filterfiles(filters, files):
   608         l = lock.lock(os.path.join(source, ".hg", "lock"))
   608         l = lock.lock(os.path.join(source, ".hg", "lock"))
   609 
   609 
   610         util.copytree(os.path.join(source, ".hg"), os.path.join(dest, ".hg"),
   610         util.copytree(os.path.join(source, ".hg"), os.path.join(dest, ".hg"),
   611                       copyfile)
   611                       copyfile)
   612 
   612 
   613         for fn in "dirstate", "lock":
   613         for fn in "dirstate", "lock", "hgrc", "localtags":
   614             try:
   614             try:
   615                 os.unlink(os.path.join(dest, ".hg", fn))
   615                 os.unlink(os.path.join(dest, ".hg", fn))
   616             except OSError:
   616             except OSError:
   617                 pass
   617                 pass
   618 
   618 
   620 
   620 
   621     else:
   621     else:
   622         repo = hg.repository(ui, dest, create=1)
   622         repo = hg.repository(ui, dest, create=1)
   623         repo.pull(other)
   623         repo.pull(other)
   624 
   624 
   625     cfg = ConfigParser.SafeConfigParser()
   625     f = repo.opener("hgrc", "w")
   626     try:
   626     f.write("[paths]\n")
   627         fp = repo.opener('hgrc', 'r')
   627     f.write("default = %s\n" % abspath)
   628         os.unlink(fp.name)
       
   629         cfg.readfp(fp)
       
   630     except IOError, inst:
       
   631         if inst.errno != errno.ENOENT: raise
       
   632     if not cfg.has_section('paths'): cfg.add_section('paths')
       
   633     cfg.set('paths', 'default', abspath)
       
   634     cfg.write(repo.opener('hgrc', 'w'))
       
   635 
   628 
   636     if not opts['noupdate']:
   629     if not opts['noupdate']:
   637         update(ui, repo)
   630         update(ui, repo)
   638 
   631 
   639     d.close()
   632     d.close()