mercurial/commands.py
changeset 2859 b3d1145ed06c
parent 2842 7706fa503677
child 2860 0f08f2c042ec
equal deleted inserted replaced
2842:7706fa503677 2859:b3d1145ed06c
  1823                         '(---|\*\*\*)[ \t])', re.MULTILINE)
  1823                         '(---|\*\*\*)[ \t])', re.MULTILINE)
  1824 
  1824 
  1825     wlock = repo.wlock()
  1825     wlock = repo.wlock()
  1826     lock = repo.lock()
  1826     lock = repo.lock()
  1827 
  1827 
       
  1828     wlock = repo.wlock()
  1828     for patch in patches:
  1829     for patch in patches:
  1829         pf = os.path.join(d, patch)
  1830         pf = os.path.join(d, patch)
  1830 
  1831 
  1831         message = None
  1832         message = None
  1832         user = None
  1833         user = None
  1906             tmpfp.close()
  1907             tmpfp.close()
  1907             if not diffs_seen:
  1908             if not diffs_seen:
  1908                 raise util.Abort(_('no diffs found'))
  1909                 raise util.Abort(_('no diffs found'))
  1909 
  1910 
  1910             files = util.patch(strip, tmpname, ui, cwd=repo.root)
  1911             files = util.patch(strip, tmpname, ui, cwd=repo.root)
       
  1912             removes = []
  1911             if len(files) > 0:
  1913             if len(files) > 0:
  1912                 cfiles = files
  1914                 cfiles = files.keys()
       
  1915                 copies = []
       
  1916                 copts = {'after': False, 'force': False}
  1913                 cwd = repo.getcwd()
  1917                 cwd = repo.getcwd()
  1914                 if cwd:
  1918                 if cwd:
  1915                     cfiles = [util.pathto(cwd, f) for f in files]
  1919                     cfiles = [util.pathto(cwd, f) for f in files.keys()]
       
  1920                 for f in files:
       
  1921                     ctype, gp = files[f]
       
  1922                     if ctype == 'RENAME':
       
  1923                         copies.append((gp.oldpath, gp.path, gp.copymod))
       
  1924                         removes.append(gp.oldpath)
       
  1925                     elif ctype == 'COPY':
       
  1926                         copies.append((gp.oldpath, gp.path, gp.copymod))
       
  1927                     elif ctype == 'DELETE':
       
  1928                         removes.append(gp.path)
       
  1929                 for src, dst, after in copies:
       
  1930                     absdst = os.path.join(repo.root, dst)
       
  1931                     if not after and os.path.exists(absdst):
       
  1932                         raise util.Abort(_('patch creates existing file %s') % dst)
       
  1933                     if cwd:
       
  1934                         src, dst = [util.pathto(cwd, f) for f in (src, dst)]
       
  1935                     copts['after'] = after
       
  1936                     errs, copied = docopy(ui, repo, (src, dst), copts, wlock=wlock)
       
  1937                     if errs:
       
  1938                         raise util.Abort(errs)
       
  1939                 if removes:
       
  1940                     repo.remove(removes, True, wlock=wlock)
       
  1941                 for f in files:
       
  1942                     ctype, gp = files[f]
       
  1943                     if gp and gp.mode:
       
  1944                         x = gp.mode & 0100 != 0
       
  1945                         dst = os.path.join(repo.root, gp.path)
       
  1946                         util.set_exec(dst, x)
  1916                 addremove_lock(ui, repo, cfiles, {}, wlock=wlock)
  1947                 addremove_lock(ui, repo, cfiles, {}, wlock=wlock)
       
  1948             files = files.keys()
       
  1949             files.extend([r for r in removes if r not in files])
  1917             repo.commit(files, message, user, date, wlock=wlock, lock=lock)
  1950             repo.commit(files, message, user, date, wlock=wlock, lock=lock)
  1918         finally:
  1951         finally:
  1919             os.unlink(tmpname)
  1952             os.unlink(tmpname)
  1920 
  1953 
  1921 def incoming(ui, repo, source="default", **opts):
  1954 def incoming(ui, repo, source="default", **opts):