view tests/test-status-inprocess.py @ 16722:7bf48bc7de23 stable

hgweb: fix filediff base calculation Previously, we were finding the most recent version of a file in a changeset and comparing it against its first file parent. This was wrong on three counts: - it would show a diff in revisions where there was no change to a file - it would show a diff when only the exec bit changed - it would potentially compare against a much older changeset, which could be very expensive if git-style rename detection was enabled This compares the file in the current context with that context's parent, which may result in an empty diff when looking at a file not touched by the current changeset.
author Matt Mackall <mpm@selenic.com>
date Mon, 14 May 2012 12:56:43 +0200
parents 13a1b2fb7ef2
children 7779f9dfd938
line wrap: on
line source

#!/usr/bin/python
from mercurial.ui import ui
from mercurial.localrepo import localrepository
from mercurial.commands import add, commit, status

u = ui()

print '% creating repo'
repo = localrepository(u, '.', create=True)

f = open('test.py', 'w')
try:
    f.write('foo\n')
finally:
    f.close

print '% add and commit'
add(u, repo, 'test.py')
commit(u, repo, message='*')
status(u, repo, clean=True)


print '% change'
f = open('test.py', 'w')
try:
    f.write('bar\n')
finally:
    f.close()

# this would return clean instead of changed before the fix
status(u, repo, clean=True, modified=True)