1736: Perforce clients not adding the charset

caro*****@gmai***** (Google Code) (Is this you? Claim this profile.)
July 26, 2010
1735
What version are you running?
Applies both to 1.0 and 1.5RC1

What's the URL of the page containing the problem?
It's an issue on the reviewboard/scmtools/perforce.py file

What steps will reproduce the problem?
1. Add a perforce repository whose server is unicode
2. try to upload a review
3. The log will say: "Unicode servers permits only unicode enabled clients"

What is the expected output? What do you see instead?
You should be able to post reviews, you get an error message.

What operating system are you using? What browser?
Doesn't apply.

Please provide any additional information below.

One could solve it by adding the environment variable P4CHARSET, but if you want to use different repositories, some unicode, some not, that won't work.

I have fixed it temporarily by adding on perforce.py:

  import P4
  self.p4 = P4.P4()
  self.p4.port = str(repository.mirror_path or repository.path)
  self.p4.user = str(repository.username)
  self.p4.password = str(repository.password)
  if (str(repository.encoding)):
    self.p4.charset = str(repository.encoding)
  self.p4.exception_level = 1

And

  cmdline = ['p4', '-p', self.p4.port]
  if self.p4.user:
    cmdline.extend(['-u', self.p4.user])
  if self.p4.password:
    cmdline.extend(['-P', self.p4.password])
  if self.p4.charset:    
    cmdline.extend(['-C', self.p4.charset])
  cmdline.extend(['print', '-q', file])

But that's just a temporary fix, since I don't know the real meaning of the encoding attribute.
david
#1 david