view tests/test-empty-file.t @ 31276:cd29673cebdb

hgweb: use patch.diffhunks in webutil.diffs to simplify the algorithm Function patch.diffhunks yields items for a "block" (i.e. a file) as a whole so take advantage of this to simplify the algorithm and avoid parsing diff lines to determine whether we're starting a new "block" or not. Thus we drop to external block counter and rely on diffhunks iterations instead. We also take advantage of the fact that patch.diffhunks() yields *lines* of hunks (instead of a string) to avoid building a list that is ''.join-ed into a string that is then split. As lines in 'header' returned by patch.diffhunks() have no trailing new line, we need to insert it ourselves to match template expectations.
author Denis Laxalde <denis.laxalde@logilab.fr>
date Mon, 06 Mar 2017 09:28:33 +0100
parents f2719b387380
children
line wrap: on
line source

  $ hg init a
  $ cd a
  $ touch empty1
  $ hg add empty1
  $ hg commit -m 'add empty1'

  $ touch empty2
  $ hg add empty2
  $ hg commit -m 'add empty2'

  $ hg up -C 0
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ touch empty3
  $ hg add empty3
  $ hg commit -m 'add empty3'
  created new head

  $ hg heads
  changeset:   2:a1cb177e0d44
  tag:         tip
  parent:      0:1e1d9c4e5b64
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     add empty3
  
  changeset:   1:097d2b0e17f6
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     add empty2
  

  $ hg merge 1
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)

Before changeset 05257fd28591, we didn't notice the
empty file that came from rev 1:

  $ hg status
  M empty2
  $ hg commit -m merge
  $ hg manifest --debug tip
  b80de5d138758541c5f05265ad144ab9fa86d1db 644   empty1
  b80de5d138758541c5f05265ad144ab9fa86d1db 644   empty2
  b80de5d138758541c5f05265ad144ab9fa86d1db 644   empty3

  $ cd ..