"""Find all the changes in a node in a way portable across Mercurial versions"""def changes(repo, node): start = repo.changectx(node).rev() try: end = len(repo.changelog) except: end = repo.changelog.count() for rev in xrange(start, end): yield repo.changectx(rev)