annotate tests/failfilemerge.py @ 29181:dae38633eba8 stable

localrepo: prevent executable-bit only changes from being lost on amend If you have just executable-bit change and amend it twice it will vanish: * After the first amend the commit will have the proper executable bit set in manifest but it won't have the the file on the list of files in changelog. * The second amend will read the wrong list of files from changelog and it will copy the manifest entry from parent for this file. * Voila! The change is lost. This change repairs the bug in localrepo causing this and adds a test for it.
author Mateusz Kwapich <mitrandir@fb.com>
date Thu, 19 May 2016 14:35:22 -0700
parents 424c1632fffb
children a7f8939641aa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27988
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
1 # extension to emulate interupting filemerge._filemerge
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
2
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
3 from __future__ import absolute_import
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
4
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
5 from mercurial import (
28772
424c1632fffb tests: sort import lines in failfilemerge.py
Yuya Nishihara <yuya@tcha.org>
parents: 27988
diff changeset
6 error,
27988
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
7 extensions,
28772
424c1632fffb tests: sort import lines in failfilemerge.py
Yuya Nishihara <yuya@tcha.org>
parents: 27988
diff changeset
8 filemerge,
27988
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
9 )
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
10
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
11 def failfilemerge(filemergefn,
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
12 premerge, repo, mynode, orig, fcd, fco, fca, labels=None):
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
13 raise error.Abort("^C")
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
14 return filemergefn(premerge, repo, mynode, orig, fcd, fco, fca, labels)
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
15
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
16 def extsetup(ui):
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
17 extensions.wrapfunction(filemerge, '_filemerge',
61f4d59e9a0b rebase: update working directory when aborting (issue5084)
timeless <timeless@mozdev.org>
parents:
diff changeset
18 failfilemerge)