record: --user/-u now works with record when ui.username not set (issue3857)
The -u flag didn't work when ui.username was not set and resulted in an
abort message. This was fixed by checking for the 'user' key in the opts
dictionary. If the key is present, the step causing the exception is not
executed.
--- a/hgext/record.py Wed Dec 11 11:33:58 2013 -0600
+++ b/hgext/record.py Thu Dec 12 12:25:56 2013 +0530
@@ -502,7 +502,8 @@
cmdsuggest)
# make sure username is set before going interactive
- ui.username()
+ if not opts.get('user'):
+ ui.username() # raise exception, username not provided
def recordfunc(ui, repo, message, match, opts):
"""This is generic record driver.
--- a/tests/test-record.t Wed Dec 11 11:33:58 2013 -0600
+++ b/tests/test-record.t Thu Dec 12 12:25:56 2013 +0530
@@ -1277,5 +1277,25 @@
c
+d
+Test --user when ui.username not set
+ $ unset HGUSER
+ $ echo e >> subdir/f1
+ $ hg record --config ui.username= -d '8 0' --user xyz -m "user flag" <<EOF
+ > y
+ > y
+ > EOF
+ diff --git a/subdir/f1 b/subdir/f1
+ 1 hunks, 1 lines changed
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
+ @@ -4,3 +4,4 @@
+ b
+ c
+ d
+ +e
+ record this change to 'subdir/f1'? [Ynesfdaq?]
+ $ hg log --template '{author}\n' -l 1
+ xyz
+ $ HGUSER="test"
+ $ export HGUSER
$ cd ..