Show More
@@ -82,7 +82,6 b' from mercurial.pycompat import (' | |||||
82 | from mercurial import ( |
|
82 | from mercurial import ( | |
83 | cmdutil, |
|
83 | cmdutil, | |
84 | commands, |
|
84 | commands, | |
85 | dirstateguard, |
|
|||
86 | encoding, |
|
85 | encoding, | |
87 | error, |
|
86 | error, | |
88 | extensions, |
|
87 | extensions, | |
@@ -1993,72 +1992,65 b' class queue:' | |||||
1993 | bmlist = repo[top].bookmarks() |
|
1992 | bmlist = repo[top].bookmarks() | |
1994 |
|
1993 | |||
1995 | with repo.dirstate.changing_parents(repo): |
|
1994 | with repo.dirstate.changing_parents(repo): | |
1996 | # XXX do we actually need the dirstateguard |
|
1995 | if diffopts.git or diffopts.upgrade: | |
1997 |
|
|
1996 | copies = {} | |
1998 |
|
|
1997 | for dst in a: | |
1999 |
|
|
1998 | src = repo.dirstate.copied(dst) | |
2000 | if diffopts.git or diffopts.upgrade: |
|
1999 | # during qfold, the source file for copies may | |
2001 | copies = {} |
|
2000 | # be removed. Treat this as a simple add. | |
2002 |
f |
|
2001 | if src is not None and src in repo.dirstate: | |
2003 |
src |
|
2002 | copies.setdefault(src, []).append(dst) | |
2004 | # during qfold, the source file for copies may |
|
2003 | repo.dirstate.update_file( | |
2005 | # be removed. Treat this as a simple add. |
|
2004 | dst, p1_tracked=False, wc_tracked=True | |
2006 | if src is not None and src in repo.dirstate: |
|
2005 | ) | |
2007 | copies.setdefault(src, []).append(dst) |
|
2006 | # remember the copies between patchparent and qtip | |
2008 | repo.dirstate.update_file( |
|
2007 | for dst in aaa: | |
2009 | dst, p1_tracked=False, wc_tracked=True |
|
2008 | src = ctx[dst].copysource() | |
|
2009 | if src: | |||
|
2010 | copies.setdefault(src, []).extend( | |||
|
2011 | copies.get(dst, []) | |||
2010 | ) |
|
2012 | ) | |
2011 | # remember the copies between patchparent and qtip |
|
2013 | if dst in a: | |
2012 |
|
|
2014 | copies[src].append(dst) | |
2013 | src = ctx[dst].copysource() |
|
2015 | # we can't copy a file created by the patch itself | |
2014 |
|
|
2016 | if dst in copies: | |
2015 |
|
|
2017 | del copies[dst] | |
2016 |
|
|
2018 | for src, dsts in copies.items(): | |
2017 |
|
|
2019 | for dst in dsts: | |
2018 |
|
|
2020 | repo.dirstate.copy(src, dst) | |
2019 | copies[src].append(dst) |
|
2021 | else: | |
2020 | # we can't copy a file created by the patch itself |
|
2022 | for dst in a: | |
2021 |
|
|
2023 | repo.dirstate.update_file( | |
2022 | del copies[dst] |
|
2024 | dst, p1_tracked=False, wc_tracked=True | |
2023 |
|
|
2025 | ) | |
2024 |
|
|
2026 | # Drop useless copy information | |
2025 |
|
|
2027 | for f in list(repo.dirstate.copies()): | |
2026 |
|
|
2028 | repo.dirstate.copy(None, f) | |
2027 |
|
|
2029 | for f in r: | |
2028 |
|
|
2030 | repo.dirstate.update_file_p1(f, p1_tracked=True) | |
2029 | dst, p1_tracked=False, wc_tracked=True |
|
2031 | # if the patch excludes a modified file, mark that | |
2030 | ) |
|
2032 | # file with mtime=0 so status can see it. | |
2031 | # Drop useless copy information |
|
2033 | mm = [] | |
2032 | for f in list(repo.dirstate.copies()): |
|
2034 | for i in range(len(m) - 1, -1, -1): | |
2033 | repo.dirstate.copy(None, f) |
|
2035 | if not match1(m[i]): | |
2034 |
|
|
2036 | mm.append(m[i]) | |
2035 | repo.dirstate.update_file_p1(f, p1_tracked=True) |
|
2037 | del m[i] | |
2036 | # if the patch excludes a modified file, mark that |
|
2038 | for f in m: | |
2037 | # file with mtime=0 so status can see it. |
|
2039 | repo.dirstate.update_file_p1(f, p1_tracked=True) | |
2038 |
|
|
2040 | for f in mm: | |
2039 | for i in range(len(m) - 1, -1, -1): |
|
2041 | repo.dirstate.update_file_p1(f, p1_tracked=True) | |
2040 |
|
|
2042 | for f in forget: | |
2041 | mm.append(m[i]) |
|
2043 | repo.dirstate.update_file_p1(f, p1_tracked=False) | |
2042 | del m[i] |
|
2044 | ||
2043 | for f in m: |
|
2045 | user = ph.user or ctx.user() | |
2044 | repo.dirstate.update_file_p1(f, p1_tracked=True) |
|
2046 | ||
2045 | for f in mm: |
|
2047 | oldphase = repo[top].phase() | |
2046 | repo.dirstate.update_file_p1(f, p1_tracked=True) |
|
2048 | ||
2047 | for f in forget: |
|
2049 | # assumes strip can roll itself back if interrupted | |
2048 | repo.dirstate.update_file_p1(f, p1_tracked=False) |
|
2050 | repo.setparents(*cparents) | |
2049 |
|
2051 | self.applied.pop() | ||
2050 | user = ph.user or ctx.user() |
|
2052 | self.applieddirty = True | |
2051 |
|
2053 | strip(self.ui, repo, [top], update=False, backup=False) | ||
2052 | oldphase = repo[top].phase() |
|
|||
2053 |
|
||||
2054 | # assumes strip can roll itself back if interrupted |
|
|||
2055 | repo.setparents(*cparents) |
|
|||
2056 | self.applied.pop() |
|
|||
2057 | self.applieddirty = True |
|
|||
2058 | strip(self.ui, repo, [top], update=False, backup=False) |
|
|||
2059 | dsguard.close() |
|
|||
2060 | finally: |
|
|||
2061 | release(dsguard) |
|
|||
2062 |
|
2054 | |||
2063 | try: |
|
2055 | try: | |
2064 | # might be nice to attempt to roll back strip after this |
|
2056 | # might be nice to attempt to roll back strip after this |
General Comments 0
You need to be logged in to leave comments.
Login now