tests/test-diff-newlines.t
author Sean Farley <sean.michael.farley@gmail.com>
Sat, 13 Jul 2013 19:59:21 -0500
changeset 19537 6e3e8575276d
parent 17742 405b6bd015df
child 22947 c63a09b6b337
permissions -rw-r--r--
basectx: add an empty class that will be used as a parent of all contexts At the moment, there is no simple way to check if an object is a context because there is no common parent class. If there were, we could use 'isinstance' everywhere. Simply having memctx inherit from workingctx or changectx would allow the use of 'isinstance' but that could lead to some confusing situations of reading the code since we have three distinct concepts of a context: - changectx represents a changeset *already* in the repo, and is therefore immutable - workingctx represents changes on disk in the working directory - memctx represents changes solely in memory which may or may not be on disk Therefore, I propose refactoring context.py to have all three contexts inherit from a parent class 'basectx'.

  $ hg init

  $ python -c 'file("a", "wb").write("confuse str.splitlines\nembedded\rnewline\n")'
  $ hg ci -Ama -d '1 0'
  adding a

  $ echo clean diff >> a
  $ hg ci -mb -d '2 0'

  $ hg diff -r0 -r1
  diff -r 107ba6f817b5 -r 310ce7989cdc a
  --- a/a	Thu Jan 01 00:00:01 1970 +0000
  +++ b/a	Thu Jan 01 00:00:02 1970 +0000
  @@ -1,2 +1,3 @@
   confuse str.splitlines
   embedded\r (no-eol) (esc)
  newline
  +clean diff