--
To reply, visit https://hellosplat.com/s/beanbag/tickets/3843/
--
New update by mark*@gmai* (Google Code)
For Beanbag, Inc. > Review Board > Ticket #3843
Reply:
Found the issue, we have mixed description in DB where some are ascii and
some utf-8. We have a customization where we change the change description and
commit it to perforce.
There was an issue in our code where we were handling the description as
string. It worked if the encoding was ascii as default python encoding is ascii
but when the description had utf-8 encoding we were not decoding it as utf-8.
Since we were doing some manipulation on the string like regex search and
replace and split it was throwing errors.
Therefore whereever we found the issue we fixed it and now we got a utf-8
encoded changelist description which we wanted to update to perforce
For that we use amend_commit_description. Problem with this function is
uses plain text therefore it doesn't do encoding
p.communicate(input_string)
>>> Preparing to amend change --rbtools-pending-cln:549348
>>> Running: p4 change -o 549348
Traceback (most recent call last):
File "/tmp/rbtool-for-mac/bin/rbt", line 24, in
load_entry_point(version_string, 'console_scripts', 'rbt')()
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/commands/main.py",
line 133, in main
command.run_from_argv([RB_MAIN, command_name] + args)
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/commands/__init__.py",
line 622, in run_from_argv
exit_code = self.main(*args) or 0
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/commands/post.py",
line 941, in main
base_dir=base_dir)
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/commands/post.py",
line 537, in post_request
self.add_review_info(changenum,
review_request.absolute_url.replace('***.com', '***.com'))
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/commands/post.py",
line 657, in add_review_info
self.tool.amend_commit_description(change_dict['Description'],
self.revisions)
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/clients/perforce.py",
line 1517, in amend_commit_description
self.p4.modify_change(new_change)
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/clients/perforce.py",
line 53, in modify_change
return self.run_p4(['change', '-i'], input_string=new_change_spec)
File
"/tmp/rbtool-for-mac/lib/RBTools/RBTools-0.7.5-py2.7.egg/rbtools/clients/perforce.py",
line 160, in run_p4
p.communicate(input_string) # Send input, wait, set returncode
File "/usr/lib/python2.7/subprocess.py", line 740, in communicate
self.stdin.write(input)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in
position 1671: ordinal not in range(128)
So to fix this error I encoded the input string as below
p.communicate(input_string.encode('utf-8'))
--
You received this message because you are subscribed to the Google Groups
"reviewboard-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to reviewboard-issues+unsubscr...@googlegroups.com.
To post to this group, send email to reviewboard-issues@googlegroups.com.
Visit this group at https://groups.google.com/group/reviewboard-issues.
For more options, visit https://groups.google.com/d/optout.