view tests/test-revlog-ancestry.py @ 7177:09ed32b79656

mq: Fix --qrefresh --short to work with --exclude and --include pmezard expects hg qref -s -X b to apply the -X to the list of files in the patch, and thus remove b from the patch. That's how it worked before f7fc5f5ecd62. That change seemed sensible, but it wasn't... mpm says (17:22:30) pmezard_: kiilerix1: do you mean that -X should be forbidden with -s ? (17:22:54) pmezard_: kiilerix1: and --include too (17:23:03) mpm: No because you should be able to say hg qref -s foo* -X foo-bar so mpm expects hg qref -s -X b * to apply the -X to the list of files in the working directory, and thus don't include b in the patch This patch tries to make both usecases work by creating a matchfn which uses the include/excludes but not the filelist.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 19 Oct 2008 16:31:24 +0200
parents ebf1462f2145
children 284fda4cd093
line wrap: on
line source

import os
from mercurial import hg, ui, merge
from hgext import graphlog

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 = file(name, 'w')
    f.write('%s\n' % name)
    f.close()
    repo.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,

    # 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,