Mercurial > hg
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) |