view tests/test-revlog-ancestry.py @ 23965:6156edaa82aa stable

revert: move prefetch to after the actions logic The prefetch logic came before the actual population of the actions collection, so it was always being passed an empty action list. This fixes it by moving it to after that logic. The only consumer of this function at the moment is remotefilelog, and I verified it works with this change.
author Durham Goode <durham@fb.com>
date Tue, 27 Jan 2015 19:52:26 -0800
parents f88c60e740a1
children 43c00ca887d1
line wrap: on
line source

import os
from mercurial import hg, ui, merge

u = ui.ui()

repo = hg.repository(u, 'test1', create=1)
os.chdir('test1')

def commit(text, time):
    repo.commit(text=text, date="%d 0" % time)

def addcommit(name, time):
    f = open(name, 'w')
    f.write('%s\n' % name)
    f.close()
    repo[None].add([name])
    commit(name, time)

def update(rev):
    merge.update(repo, rev, False, True, False)

def merge_(rev):
    merge.update(repo, rev, True, False, False)

if __name__ == '__main__':
    addcommit("A", 0)
    addcommit("B", 1)

    update(0)
    addcommit("C", 2)

    merge_(1)
    commit("D", 3)

    update(2)
    addcommit("E", 4)
    addcommit("F", 5)

    update(3)
    addcommit("G", 6)

    merge_(5)
    commit("H", 7)

    update(5)
    addcommit("I", 8)

    # Ancestors
    print 'Ancestors of 5'
    for r in repo.changelog.ancestors([5]):
        print r,

    print '\nAncestors of 6 and 5'
    for r in repo.changelog.ancestors([6, 5]):
        print r,

    print '\nAncestors of 5 and 4'
    for r in repo.changelog.ancestors([5, 4]):
        print r,

    print '\nAncestors of 7, stop at 6'
    for r in repo.changelog.ancestors([7], 6):
        print r,

    print '\nAncestors of 7, including revs'
    for r in repo.changelog.ancestors([7], inclusive=True):
        print r,

    print '\nAncestors of 7, 5 and 3, including revs'
    for r in repo.changelog.ancestors([7, 5, 3], inclusive=True):
        print r,

    # Descendants
    print '\n\nDescendants of 5'
    for r in repo.changelog.descendants([5]):
        print r,

    print '\nDescendants of 5 and 3'
    for r in repo.changelog.descendants([5, 3]):
        print r,

    print '\nDescendants of 5 and 4'
    for r in repo.changelog.descendants([5, 4]):
        print r,