[PATCH] log: fix broken multiple user search [3, with test]

Henrik Stuart hg at hstuart.dk
Tue Apr 7 13:58:28 CDT 2009


# HG changeset patch
# User Henrik Stuart <hg at hstuart.dk>
# Date 1239130645 -7200
# Node ID a75a11d1400ed2cc663ffb1fdcc967ee22d59972
# Parent  8985e1daa7f58ecbae00b601bd3b9e9d6cc2051e
log: fix broken multiple user search

This fix also allows partial user matches so the full name and email
does not have to be written out in verbatim.

diff -r 8985e1daa7f5 -r a75a11d1400e mercurial/commands.py
--- a/mercurial/commands.py	Tue Apr 07 17:32:40 2009 +0200
+++ b/mercurial/commands.py	Tue Apr 07 20:57:25 2009 +0200
@@ -1963,12 +1963,7 @@
 
             if opts['user']:
                 changes = get(rev)
-                miss = 0
-                for k in opts['user']:
-                    if k != changes[1]:
-                        miss = 1
-                        break
-                if miss:
+                if not [k for k in opts['user'] if k in changes[1]]:
                     continue
 
             copies = []
diff -r 8985e1daa7f5 -r a75a11d1400e tests/test-log
--- a/tests/test-log	Tue Apr 07 17:32:40 2009 +0200
+++ b/tests/test-log	Tue Apr 07 20:57:25 2009 +0200
@@ -104,4 +104,18 @@
 echo '% log -r <some unknown node id>'
 hg log -r 1000000000000000000000000000000000000000
 
+cd ..
+
+hg init usertest
+cd usertest
+
+echo a > a
+hg ci -A -m "a" -u "User One <user1 at example.org>"
+echo b > b
+hg ci -A -m "b" -u "User Two <user2 at example.org>"
+
+hg log -u "User One <user1 at example.org>"
+hg log -u "user1" -u "user2"
+hg log -u "user3"
+
 exit 0
diff -r 8985e1daa7f5 -r a75a11d1400e tests/test-log.out
--- a/tests/test-log.out	Tue Apr 07 17:32:40 2009 +0200
+++ b/tests/test-log.out	Tue Apr 07 20:57:25 2009 +0200
@@ -239,3 +239,21 @@
 abort: 00changelog.i@: ambiguous identifier!
 % log -r <some unknown node id>
 abort: unknown revision '1000000000000000000000000000000000000000'!
+adding a
+adding b
+changeset:   0:29a4c94f1924
+user:        User One <user1 at example.org>
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     a
+
+changeset:   1:e834b5e69c0e
+tag:         tip
+user:        User Two <user2 at example.org>
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     b
+
+changeset:   0:29a4c94f1924
+user:        User One <user1 at example.org>
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     a
+


More information about the Mercurial-devel mailing list