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): |