comparison hgext/largefiles/overrides.py @ 18778:1ef89df2c248

rebase: fix --collapse when a file was added then removed When a series of commits first adds a file and then removes it, hg rebase --collapse prompts whether to keep the file or delete it. This is due to it reusing the branch merge code. In a noninteractive terminal it defaults to keeping the file, which results in a collapsed commit that is has a file that should be deleted. This bug resulted in developers accidentally commiting unintentional changes to our repo twice today, so it's fairly important to get fixed. This change allows rebase --collapse to tell the merge code to accept the latest version every time without prompting. Adds a test as well.
author Durham Goode <durham@fb.com>
date Fri, 15 Mar 2013 11:23:29 -0700
parents 1793251e75c8
children a12798938721
comparison
equal deleted inserted replaced
18777:8048c519dc6a 18778:1ef89df2c248
359 # 359 #
360 # Finally, the merge.applyupdates function will then take care of 360 # Finally, the merge.applyupdates function will then take care of
361 # writing the files into the working copy and lfcommands.updatelfiles 361 # writing the files into the working copy and lfcommands.updatelfiles
362 # will update the largefiles. 362 # will update the largefiles.
363 def overridemanifestmerge(origfn, repo, p1, p2, pa, branchmerge, force, 363 def overridemanifestmerge(origfn, repo, p1, p2, pa, branchmerge, force,
364 partial): 364 partial, acceptremote=False):
365 overwrite = force and not branchmerge 365 overwrite = force and not branchmerge
366 actions = origfn(repo, p1, p2, pa, branchmerge, force, partial) 366 actions = origfn(repo, p1, p2, pa, branchmerge, force, partial,
367 acceptremote)
367 processed = [] 368 processed = []
368 369
369 for action in actions: 370 for action in actions:
370 if overwrite: 371 if overwrite:
371 processed.append(action) 372 processed.append(action)