changeset 9597:fbed59b61a1c

Merge with mpm
author Bryan O'Sullivan <bos@serpentine.com>
date Tue, 13 Oct 2009 13:43:55 -0700
parents 17da88da1abd (diff) a41f2840f9c6 (current diff)
children a981ddb16b80
files
diffstat 11 files changed, 45 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Tue Oct 13 12:27:50 2009 -0700
+++ b/mercurial/commands.py	Tue Oct 13 13:43:55 2009 -0700
@@ -340,14 +340,11 @@
     state = hbisect.load_state(repo)
 
     if command:
-        commandpath = util.find_exe(command)
-        if commandpath is None:
-            raise util.Abort(_("cannot find executable: %s") % command)
         changesets = 1
         try:
             while changesets:
                 # update state
-                status = subprocess.call([commandpath])
+                status = util.system(command)
                 if status == 125:
                     transition = "skip"
                 elif status == 0:
@@ -370,7 +367,7 @@
                 hg.clean(repo, nodes[0], show_stats=False)
         finally:
             hbisect.save_state(repo, state)
-        return print_result(nodes, not status)
+        return print_result(nodes, good)
 
     # update state
     node = repo.lookup(rev or '.')
--- a/mercurial/hbisect.py	Tue Oct 13 12:27:50 2009 -0700
+++ b/mercurial/hbisect.py	Tue Oct 13 13:43:55 2009 -0700
@@ -31,8 +31,16 @@
         # only the earliest bad revision matters
         badrev = min([changelog.rev(n) for n in bad])
         goodrevs = [changelog.rev(n) for n in good]
-        # build ancestors array
-        ancestors = [[]] * (len(changelog) + 1) # an extra for [-1]
+        goodrev = min(goodrevs)
+        # build visit array
+        ancestors = [None] * (len(changelog) + 1) # an extra for [-1]
+
+        # set nodes descended from goodrev
+        ancestors[goodrev] = []
+        for rev in xrange(goodrev + 1, len(changelog)):
+            for prev in clparents(rev):
+                if ancestors[prev] == []:
+                    ancestors[rev] = []
 
         # clear good revs from array
         for node in goodrevs:
--- a/templates/atom/changelogentry.tmpl	Tue Oct 13 12:27:50 2009 -0700
+++ b/templates/atom/changelogentry.tmpl	Tue Oct 13 13:43:55 2009 -0700
@@ -1,7 +1,7 @@
  <entry>
   <title>{desc|strip|firstline|strip|escape|nonempty}</title>
   <id>{urlbase}{url}#changeset-{node}</id>
-  <link href="{urlbase}{url}rev/{node}"/>
+  <link href="{urlbase}{url}rev/{node|short}"/>
   <author>
    <name>{author|person|escape}</name>
    <email>{author|email|obfuscate}</email>
--- a/templates/atom/tagentry.tmpl	Tue Oct 13 12:27:50 2009 -0700
+++ b/templates/atom/tagentry.tmpl	Tue Oct 13 13:43:55 2009 -0700
@@ -1,6 +1,6 @@
  <entry>
   <title>{tag|escape}</title>
-  <link rel="alternate" href="{urlbase}{url}rev/{node}"/>
+  <link rel="alternate" href="{urlbase}{url}rev/{node|short}"/>
   <id>{urlbase}{url}#tag-{node}</id>
   <updated>{date|rfc3339date}</updated>
   <published>{date|rfc3339date}</published>
--- a/tests/run-tests.py	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/run-tests.py	Tue Oct 13 13:43:55 2009 -0700
@@ -90,6 +90,8 @@
     parser.add_option("-j", "--jobs", type="int",
         help="number of jobs to run in parallel"
              " (default: $%s or %d)" % defaults['jobs'])
+    parser.add_option("-k", "--keywords",
+        help="run tests matching keywords")
     parser.add_option("--keep-tmpdir", action="store_true",
         help="keep temporary directory after running tests"
              " (best used with --tmpdir)")
@@ -688,10 +690,21 @@
 
         skips = []
         fails = []
+
         for test in tests:
             if options.retest and not os.path.exists(test + ".err"):
                 skipped += 1
                 continue
+
+            if options.keywords:
+                t = open(test).read().lower() + test.lower()
+                for k in options.keywords.lower().split():
+                    if k in t:
+                        break
+                else:
+                    skipped +=1
+                    continue
+
             ret = runone(options, test, skips, fails)
             if ret is None:
                 skipped += 1
--- a/tests/test-bisect.out	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/test-bisect.out	Tue Oct 13 13:43:55 2009 -0700
@@ -304,7 +304,8 @@
 summary:     msg 6
 
 % test invalid command
-abort: cannot find executable: foobar
+/bin/sh: foobar: command not found
+abort: failed to execute foobar
 % test bisecting command
 Testing changeset 15:e7fa0811edb0 (31 changesets remaining, ~4 tests)
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-bisect2.out	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/test-bisect2.out	Tue Oct 13 13:43:55 2009 -0700
@@ -201,12 +201,12 @@
 summary:     merge 10,13
 
 % complex bisect test 4
-Testing changeset 10:429fcd26f52d (13 changesets remaining, ~3 tests)
-0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-Testing changeset 13:b0a32c86eb31 (6 changesets remaining, ~2 tests)
+Testing changeset 13:b0a32c86eb31 (8 changesets remaining, ~3 tests)
+2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+Testing changeset 10:429fcd26f52d (5 changesets remaining, ~2 tests)
 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
 Testing changeset 15:857b178a7cf3 (3 changesets remaining, ~1 tests)
-3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 Testing changeset 16:609d82a7ebae (3 changesets remaining, ~1 tests)
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 Due to skipped revisions, the first good revision could be any of:
--- a/tests/test-hgweb-commands.out	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/test-hgweb-commands.out	Tue Oct 13 13:43:55 2009 -0700
@@ -17,7 +17,7 @@
  <entry>
   <title>branch</title>
   <id>http://127.0.0.1/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id>
-  <link href="http://127.0.0.1/rev/1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe"/>
+  <link href="http://127.0.0.1/rev/1d22e65f027e"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -33,7 +33,7 @@
  <entry>
   <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
   <id>http://127.0.0.1/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id>
-  <link href="http://127.0.0.1/rev/a4f92ed23982be056b9852de5dfe873eaac7f0de"/>
+  <link href="http://127.0.0.1/rev/a4f92ed23982"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -49,7 +49,7 @@
  <entry>
   <title>base</title>
   <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
-  <link href="http://127.0.0.1/rev/2ef0ac749a14e4f57a5a822464a0902c6f7f448f"/>
+  <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -78,7 +78,7 @@
  <entry>
   <title>branch</title>
   <id>http://127.0.0.1/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id>
-  <link href="http://127.0.0.1/rev/1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe"/>
+  <link href="http://127.0.0.1/rev/1d22e65f027e"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -94,7 +94,7 @@
  <entry>
   <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
   <id>http://127.0.0.1/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id>
-  <link href="http://127.0.0.1/rev/a4f92ed23982be056b9852de5dfe873eaac7f0de"/>
+  <link href="http://127.0.0.1/rev/a4f92ed23982"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -110,7 +110,7 @@
  <entry>
   <title>base</title>
   <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
-  <link href="http://127.0.0.1/rev/2ef0ac749a14e4f57a5a822464a0902c6f7f448f"/>
+  <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -137,7 +137,7 @@
  <entry>
   <title>base</title>
   <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
-  <link href="http://127.0.0.1/rev/2ef0ac749a14e4f57a5a822464a0902c6f7f448f"/>
+  <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -476,7 +476,7 @@
 
  <entry>
   <title>1.0</title>
-  <link rel="alternate" href="http://127.0.0.1/rev/2ef0ac749a14e4f57a5a822464a0902c6f7f448f"/>
+  <link rel="alternate" href="http://127.0.0.1/rev/2ef0ac749a14"/>
   <id>http://127.0.0.1/#tag-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
   <updated>1970-01-01T00:00:00+00:00</updated>
   <published>1970-01-01T00:00:00+00:00</published>
--- a/tests/test-hgweb-no-path-info.out	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/test-hgweb-no-path-info.out	Tue Oct 13 13:43:55 2009 -0700
@@ -20,7 +20,7 @@
  <entry>
   <title>test</title>
   <id>http://127.0.0.1/#changeset-4cbec7e6f8c42eb52b6b52670e1f7560ae9a101e</id>
-  <link href="http://127.0.0.1/rev/4cbec7e6f8c42eb52b6b52670e1f7560ae9a101e"/>
+  <link href="http://127.0.0.1/rev/4cbec7e6f8c4"/>
   <author>
    <name>Testing</name>
    <email>&#84;&#101;&#115;&#116;&#105;&#110;&#103;</email>
--- a/tests/test-hgweb-no-request-uri.out	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/test-hgweb-no-request-uri.out	Tue Oct 13 13:43:55 2009 -0700
@@ -20,7 +20,7 @@
  <entry>
   <title>test</title>
   <id>http://127.0.0.1/#changeset-4cbec7e6f8c42eb52b6b52670e1f7560ae9a101e</id>
-  <link href="http://127.0.0.1/rev/4cbec7e6f8c42eb52b6b52670e1f7560ae9a101e"/>
+  <link href="http://127.0.0.1/rev/4cbec7e6f8c4"/>
   <author>
    <name>Testing</name>
    <email>&#84;&#101;&#115;&#116;&#105;&#110;&#103;</email>
--- a/tests/test-hgwebdir.out	Tue Oct 13 12:27:50 2009 -0700
+++ b/tests/test-hgwebdir.out	Tue Oct 13 13:43:55 2009 -0700
@@ -237,7 +237,7 @@
  <entry>
   <title>a</title>
   <id>http://127.0.0.1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id>
-  <link href="http://127.0.0.1/t/a/rev/8580ff50825a50c8f716709acdf8de0deddcd6ab"/>
+  <link href="http://127.0.0.1/t/a/rev/8580ff50825a"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>
@@ -266,7 +266,7 @@
  <entry>
   <title>a</title>
   <id>http://127.0.0.1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id>
-  <link href="http://127.0.0.1/t/a/rev/8580ff50825a50c8f716709acdf8de0deddcd6ab"/>
+  <link href="http://127.0.0.1/t/a/rev/8580ff50825a"/>
   <author>
    <name>test</name>
    <email>&#116;&#101;&#115;&#116;</email>