equal
deleted
inserted
replaced
3121 if p2 != nullid: |
3121 if p2 != nullid: |
3122 normal = repo.dirstate.normallookup |
3122 normal = repo.dirstate.normallookup |
3123 else: |
3123 else: |
3124 normal = repo.dirstate.normal |
3124 normal = repo.dirstate.normal |
3125 |
3125 |
|
3126 newlyaddedandmodifiedfiles = set() |
3126 if interactive: |
3127 if interactive: |
3127 # Prompt the user for changes to revert |
3128 # Prompt the user for changes to revert |
3128 torevert = [repo.wjoin(f) for f in actions['revert'][0]] |
3129 torevert = [repo.wjoin(f) for f in actions['revert'][0]] |
3129 m = scmutil.match(ctx, torevert, {}) |
3130 m = scmutil.match(ctx, torevert, {}) |
3130 diffopts = patch.difffeatureopts(repo.ui, whitespace=True) |
3131 diffopts = patch.difffeatureopts(repo.ui, whitespace=True) |
3135 try: |
3136 try: |
3136 chunks = recordfilter(repo.ui, originalchunks) |
3137 chunks = recordfilter(repo.ui, originalchunks) |
3137 except patch.PatchError, err: |
3138 except patch.PatchError, err: |
3138 raise util.Abort(_('error parsing patch: %s') % err) |
3139 raise util.Abort(_('error parsing patch: %s') % err) |
3139 |
3140 |
|
3141 newlyaddedandmodifiedfiles = newandmodified(chunks, originalchunks) |
3140 # Apply changes |
3142 # Apply changes |
3141 fp = cStringIO.StringIO() |
3143 fp = cStringIO.StringIO() |
3142 for c in chunks: |
3144 for c in chunks: |
3143 c.write(fp) |
3145 c.write(fp) |
3144 dopatch = fp.tell() |
3146 dopatch = fp.tell() |
3158 # changes may be overlooked without normallookup, |
3160 # changes may be overlooked without normallookup, |
3159 # if size isn't changed at reverting |
3161 # if size isn't changed at reverting |
3160 repo.dirstate.normallookup(f) |
3162 repo.dirstate.normallookup(f) |
3161 |
3163 |
3162 for f in actions['add'][0]: |
3164 for f in actions['add'][0]: |
3163 checkout(f) |
3165 # Don't checkout modified files, they are already created by the diff |
3164 repo.dirstate.add(f) |
3166 if f not in newlyaddedandmodifiedfiles: |
|
3167 checkout(f) |
|
3168 repo.dirstate.add(f) |
3165 |
3169 |
3166 normal = repo.dirstate.normallookup |
3170 normal = repo.dirstate.normallookup |
3167 if node == parent and p2 == nullid: |
3171 if node == parent and p2 == nullid: |
3168 normal = repo.dirstate.normal |
3172 normal = repo.dirstate.normal |
3169 for f in actions['undelete'][0]: |
3173 for f in actions['undelete'][0]: |