tests/failfilemerge.py
author Olivier Trempe <oliviertrempe@gmail.com>
Wed, 08 Mar 2017 09:03:42 -0500
changeset 31846 1064a296a2a7
parent 30332 318a24b52eeb
child 34122 c0ce60459d84
permissions -rw-r--r--
fsmonitor: match watchman and filesystem encoding watchman's paths encoding can differ from filesystem encoding. For example, on Windows, it's always utf-8. Before this patch, on Windows, mismatch in path comparison between fsmonitor state and osutil.statfiles would yield a clean status for added/modified files. In addition to status reporting wrong results, this leads to files being discarded from changesets while doing history editing operations such as rebase. Benchmark: There is a little overhead at module import: python -m timeit "import hgext.fsmonitor" Windows before patch: 1000000 loops, best of 3: 0.563 usec per loop Windows after patch: 1000000 loops, best of 3: 0.583 usec per loop Linx before patch: 1000000 loops, best of 3: 0.579 usec per loop Linux after patch: 1000000 loops, best of 3: 0.588 usec per loop 10000 calls to _watchmantofsencoding: python -m timeit -s "from hgext.fsmonitor import _watchmantofsencoding, _fixencoding" "fname = '/path/to/file'" "for i in range(10000):" " if _fixencoding: fname = _watchmantofsencoding(fname)" Windows (_fixencoding is True): 100 loops, best of 3: 19.5 msec per loop Linux (_fixencoding is False): 100 loops, best of 3: 3.08 msec per loop
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30332
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 29774
diff changeset
     1
# extension to emulate interrupting filemerge._filemerge
27988
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,
29774
a7f8939641aa merge: use labels in prompts to the user
Simon Farnsworth <simonfar@fb.com>
parents: 28772
diff changeset
    12
                  premerge, repo, mynode, orig, fcd, fco, fca, labels=None):
27988
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)