This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 252736 - history does not display commit messages in utf-8
Summary: history does not display commit messages in utf-8
Status: RESOLVED FIXED
Alias: None
Product: versioncontrol
Classification: Unclassified
Component: Mercurial (show other bugs)
Version: 8.0.2
Hardware: PC Windows 8 x64
: P3 normal (vote)
Assignee: Ondrej Vrabec
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-02 06:25 UTC by gameshas
Modified: 2015-08-01 02:01 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
screenshot of corrupted characters (11.26 KB, image/png)
2015-06-02 06:25 UTC, gameshas
Details
history messages and tortoise hg messages for comparison (20.62 KB, image/png)
2015-06-02 06:49 UTC, gameshas
Details
messages.log (34.79 KB, application/x-zip-compressed)
2015-06-02 06:51 UTC, gameshas
Details
mercurial history (9.83 KB, image/png)
2015-06-02 07:45 UTC, gameshas
Details
with mercurial-encoding parameter (17.68 KB, image/png)
2015-06-02 07:50 UTC, gameshas
Details
windows env vars (24.73 KB, image/png)
2015-07-30 06:07 UTC, gameshas
Details
netbeans64.exe properties environment (58.11 KB, image/png)
2015-07-30 07:05 UTC, gameshas
Details

Note You need to log in before you can comment on or make changes to this bug.
Description gameshas 2015-06-02 06:25:50 UTC
Created attachment 154000 [details]
screenshot of corrupted characters

when viewing history in history tab all commit messages that contain utf-8 characters are displayed wrong and there is no way to change encoding.

HGENCODING environment variable is set to "utf-8".

attached screenshot.
Comment 1 Ondrej Vrabec 2015-06-02 06:35:19 UTC
Does it show correctly in Mercurial -> Show History? Please attach the IDE log, thanks.
Comment 2 gameshas 2015-06-02 06:49:45 UTC
Created attachment 154002 [details]
history messages and tortoise hg messages for comparison
Comment 3 gameshas 2015-06-02 06:51:17 UTC
Created attachment 154003 [details]
messages.log
Comment 4 gameshas 2015-06-02 06:53:20 UTC
It is mercurial history in netbeans history tab. if you where referring to mercurial UI such as tortoiseHG history then yes it does display correctly commit messages. changed attachment to show how it looks like in tortoisehg
Comment 5 Ondrej Vrabec 2015-06-02 07:25:56 UTC
(In reply to gameshas from comment #4)
> It is mercurial history in netbeans history tab. if you where referring to
> mercurial UI such as tortoiseHG history then yes it does display correctly
> commit messages. changed attachment to show how it looks like in tortoisehg
I mean the full Mercurial history in NetBeans that you open with Mercurial -> Show History.
Comment 6 Ondrej Vrabec 2015-06-02 07:36:55 UTC
And please try to run NetBeans with this switch:
-J-Dmercurial.encoding=utf-8 and let me know if it helped.
Comment 7 gameshas 2015-06-02 07:45:25 UTC
Created attachment 154005 [details]
mercurial history

there is no mercurial -> show history.

right clicked on project sources -> mercurial -> search history -> searched for last 10 entries.

commit messages are still not displaying utf-8 chars.
Comment 8 gameshas 2015-06-02 07:50:30 UTC
Created attachment 154006 [details]
with mercurial-encoding parameter

yes mercurial encoding parameter fixes the problem. But why it's not used by default? 

and there is no way to change this from netbeans options. conf file not migrated when installing a new major netbeans version so it will need to be copied or  added by hand each time to the conf.
Comment 9 Ondrej Vrabec 2015-06-02 07:59:00 UTC
(In reply to gameshas from comment #8)
> yes mercurial encoding parameter fixes the problem. But why it's not used by
> default? 
Is it in your system properties? If so, it should work by default, so there's a chance NetBeans does not get the property on its input.
Comment 10 gameshas 2015-06-02 08:20:04 UTC
how can i find system properties ? are you referring to windows environment variables ? that are printed out when i run SET command in cmd
Comment 11 Ondrej Vrabec 2015-06-02 08:52:15 UTC
Well you said that:
> HGENCODING environment variable is set to "utf-8".
so i assumed you set it somewhere. But yes, it should be set in windows environment variables.
But to know what properties are passed to NetBeans probably the best is to use VisualVM, double click on the running NetBeans app and in the overview tab expand "System properties".

jvisualvm can be found in your Program Files\Java\javaversion\bin
Comment 12 gameshas 2015-06-02 09:36:53 UTC
can't get netbeans to show up on visualVM, first time i opened visualVM it was there i opened it and the closed netbeans tab. Removed java parameter mercurial encoding and restarted netbeans, to see what parameters are withouth mercurial.encoding and now everytime when i start visualvm netbeans is no longer listed in local appliations. i tried restarting netbeans and visualVM many times.
Comment 13 gameshas 2015-06-02 09:43:09 UTC
deleting hsperf directory in the user temp fixed the problem :)

System properties:

apple.awt.graphics.UseQuartz=true
apple.laf.useScreenMenuBar=true
awt.toolkit=sun.awt.windows.WToolkit
file.encoding=Cp1257
file.encoding.pkg=sun.io
file.separator=\
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.awt.printerjob=sun.awt.windows.WPrinterJob
java.class.path=C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\boot.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\org-openide-util-lookup.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\boot_ja.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\boot_pt_BR.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\boot_ru.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\boot_zh_CN.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\org-openide-util-lookup_ja.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\org-openide-util-lookup_pt_BR.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\org-openide-util-lookup_ru.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\lib\locale\org-openide-util-lookup_zh_CN.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\org-openide-modules.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\org-openide-util.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-modules_ja.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-modules_pt_BR.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-modules_ru.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-modules_zh_CN.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-util_ja.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-util_pt_BR.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-util_ru.jar;C:\Program Files\NetBeans 8.0.1\platform\lib\locale\org-openide-util_zh_CN.jar
java.class.version=52.0
java.endorsed.dirs=C:\Program Files\Java\latest\lib\endorsed
java.ext.dirs=C:\Program Files\Java\latest\lib\ext;C:\Windows\Sun\Java\lib\ext
java.home=C:\Program Files\Java\latest
java.io.tmpdir=C:\Users\jusurb\AppData\Local\Temp\
java.library.path=C:\Program Files\NetBeans 8.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Python27\;C:\Python27\Scripts;C:\Program Files (x86)\iis express\PHP\v5.5;C:\Windows\system32\inetsrv;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\MySQL\MySQL Utilities\;C:\ProgramData\ComposerSetup\bin;C:\Windows\idmu\common;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Skype\Phone\;C:\HashiCorp\Vagrant\bin;C:\Program Files\TortoiseHg\;C:\Program Files\Oracle\VirtualBox;;.
java.net.preferIPv4Stack=true
java.rmi.server.randomIDs=true
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.8.0_40-b26
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=1.8
java.util.logging.config.class=org.netbeans.core.startup.TopLogging
java.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
java.version=1.8.0_40
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=1.8
java.vm.vendor=Oracle Corporation
java.vm.version=25.40-b25
jdk.home=C:\Program Files\Java\latest
jna.boot.library.name=jnidispatch-410
line.separator=\r\n
nb.native.filechooser=false
nb.show.statistics.ui=usageStatisticsEnabled
netbeans.accept_license_class=org.netbeans.license.AcceptLicense
netbeans.autoupdate.country=GB
netbeans.autoupdate.language=en
netbeans.autoupdate.variant=
netbeans.autoupdate.version=1.23
netbeans.buildnumber=201411181905
netbeans.default_userdir_root=C:\Users\jusurb\AppData\Roaming\NetBeans
netbeans.dirs=C:\Program Files\NetBeans 8.0.1\nb;C:\Program Files\NetBeans 8.0.1\ergonomics;C:\Program Files\NetBeans 8.0.1\ide;C:\Program Files\NetBeans 8.0.1\extide;C:\Program Files\NetBeans 8.0.1\java;C:\Program Files\NetBeans 8.0.1\apisupport;C:\Program Files\NetBeans 8.0.1\webcommon;C:\Program Files\NetBeans 8.0.1\websvccommon;C:\Program Files\NetBeans 8.0.1\enterprise;C:\Program Files\NetBeans 8.0.1\mobility;C:\Program Files\NetBeans 8.0.1\profiler;C:\Program Files\NetBeans 8.0.1\python;C:\Program Files\NetBeans 8.0.1\php;C:\Program Files\NetBeans 8.0.1\identity;C:\Program Files\NetBeans 8.0.1\harness;C:\Program Files\NetBeans 8.0.1\cnd;C:\Program Files\NetBeans 8.0.1\dlight;C:\Program Files\NetBeans 8.0.1\groovy;C:\Program Files\NetBeans 8.0.1\extra;C:\Program Files\NetBeans 8.0.1\javacard;C:\Program Files\NetBeans 8.0.1\javafx
netbeans.dynamic.classpath=C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\core.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\org-netbeans-upgrader.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_ja.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_nb.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_nb_ja.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_nb_pt_BR.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_nb_ru.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_nb_zh_CN.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_pt_BR.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_ru.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\core_zh_CN.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\org-netbeans-upgrader_ja.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\org-netbeans-upgrader_pt_BR.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\org-netbeans-upgrader_ru.jar;C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1\core\locale\org-netbeans-upgrader_zh_CN.jar;C:\Program Files\NetBeans 8.0.1\platform\core\org-openide-filesystems.jar;C:\Program Files\NetBeans 8.0.1\platform\core\locale\org-openide-filesystems_ja.jar;C:\Program Files\NetBeans 8.0.1\platform\core\locale\org-openide-filesystems_pt_BR.jar;C:\Program Files\NetBeans 8.0.1\platform\core\locale\org-openide-filesystems_ru.jar;C:\Program Files\NetBeans 8.0.1\platform\core\locale\org-openide-filesystems_zh_CN.jar
netbeans.hash.code=unique=NB_EXTIDE_PHP_WEBCOMMON02af2b652-7955-4ef9-90e0-fe7840e4e9ad_c76537de-27b3-41d4-9827-e345a03d7916
netbeans.home=C:\Program Files\NetBeans 8.0.1\platform
netbeans.importclass=org.netbeans.upgrade.AutoUpgrade
netbeans.productversion=NetBeans IDE 8.0.2 (Build 201411181905)
netbeans.user=C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1
nu.validator.spec.alt-advice=jar:file:/C:/Program%20Files/NetBeans%208.0.1/ide/modules/ext/validator.jar!/nu/validator/localentities/files/wiki_whatwg_org_wiki_Validator_nu_alt_advice
nu.validator.spec.microsyntax-descriptions=jar:file:/C:/Program%20Files/NetBeans%208.0.1/ide/modules/ext/validator.jar!/nu/validator/localentities/files/wiki_whatwg_org_wiki_MicrosyntaxDescriptions
org.netbeans.core.TimeableEventQueue.report=10000
org.openide.major.version=IDE/1
org.openide.specification.version=6.2
org.openide.version=deprecated
org.xml.sax.driver=com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
os.arch=amd64
os.name=Windows 8
os.version=6.2
path.separator=;
sun.arch.data.model=64
sun.awt.datatransfer.timeout=1000
sun.awt.enableExtraMouseButtons=true
sun.awt.keepWorkingSetOnMinimize=true
sun.boot.class.path=C:\Program Files\Java\latest\lib\resources.jar;C:\Program Files\Java\latest\lib\rt.jar;C:\Program Files\Java\latest\lib\sunrsasign.jar;C:\Program Files\Java\latest\lib\jsse.jar;C:\Program Files\Java\latest\lib\jce.jar;C:\Program Files\Java\latest\lib\charsets.jar;C:\Program Files\Java\latest\lib\jfr.jar;C:\Program Files\Java\latest\classes
sun.boot.library.path=C:\Program Files\Java\latest\bin
sun.cpu.endian=little
sun.cpu.isalist=amd64
sun.desktop=windows
sun.io.unicode.encoding=UnicodeLittle
sun.java2d.dpiaware=true
sun.java2d.noddraw=true
sun.jnu.encoding=Cp1257
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.os.patch.level=
user.country=GB
user.country.format=LT
user.dir=C:\Program Files\NetBeans 8.0.1
user.home=C:\Users\jusurb
user.language=en
user.language.format=lt
user.name=jusurb
user.script=
user.timezone=Europe/Helsinki
user.variant=
winp.folder.preferred=C:\Users\jusurb\AppData\Roaming\NetBeans\8.0.1
Comment 14 Ondrej Vrabec 2015-07-29 14:40:55 UTC
i just checked this, visualvm does not show the environment property such as HGENCODING, according to http://serverfault.com/questions/66363/environment-variables-of-a-running-process-on-unix someone uses Process Explorer (https://technet.microsoft.com/cs-cz/sysinternals/bb896653.aspx) and on Linux this command: cat /proc/<pid>/environ
Or you can try PowerShell command as described in http://stackoverflow.com/questions/2255968/view-environment-variable-of-process-on-windows

I tried on Linux and with:
export HGENCODING=utf-8
and starting NetBeans the property is properly passed to invoked hg executable.

Make sure you really set the env property for netbeans.
Comment 15 gameshas 2015-07-30 06:01:12 UTC
although it might be working for you on linux, it's not working for me in windows.
Maybe the problem is only in windows so you should test it in that environment.

i have the environment variable set. First i thought it was because HGENCODING was set in user's environment variable (windows has two, user and system), then i removed it from users environment variables and added to system, restarted the computer but the commit messages are still scrambled.

i know it works because TortoiseHg needs the same environment variable to be able to use Unicode commit messages, otherwise it throws an error and replaces every utf character with a question mark. So i set it and tortoiseHg picked it up from users variables, but netbeans does not.

C:\Users\jusurb>set | find "HGENCODING"
HGENCODING=utf-8

so it's there. I don't know who is supposed to pick it up java or netbeans but it's not working
Comment 16 gameshas 2015-07-30 06:07:17 UTC
Created attachment 155029 [details]
windows env vars

first screen shows env vars system, after moving the variable to system and restarting computer. second shows initial, where hgencoding was in users vars.
Comment 17 Ondrej Vrabec 2015-07-30 06:49:32 UTC
Have you checked the env vars for the running netbeans process according to http://stackoverflow.com/questions/2255968/view-environment-variable-of-process-on-windows ? Please list them here, or at least tell me if HGENCODING is set for the process or not.
Comment 18 gameshas 2015-07-30 07:05:56 UTC
Created attachment 155031 [details]
netbeans64.exe properties environment

the env var HGENCODING is listed.
Comment 19 Ondrej Vrabec 2015-07-30 19:54:30 UTC
fixed: core-main #126c809c4c51
Comment 20 Quality Engineering 2015-08-01 02:01:51 UTC
Integrated into 'main-silver', will be available in build *201508010002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/126c809c4c51
User: Ondrej Vrabec <ovrabec@netbeans.org>
Log: Issue #252736 - history does not display commit messages in utf-8
When HGENCODING is set as an env property it is now used as both env property for hg executable
and encoding for reading hg executable output.