view tests/test-revlog-ancestry.py @ 24767:477e76936b1d

histedit: convert pick action into a class This converts the pick action into a histeditclass instance, as part of an ongoing effort to refactor histedit for maintainability and robustness. The test output changed because previously pick would only report the commit disappearing if there were no merge conflicts. Now that we've unified the normal and the --continue flows, they act the same and we get the warning even after --continue.
author Durham Goode <durham@fb.com>
date Sat, 04 Apr 2015 11:39:08 -0700
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,