History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-704
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Robin Shen
Reporter: Alexey Shumkin
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Git plugin. Changeset: non-English log messages and file names are shown incorrectly

Created: 22/Oct/10 01:33 PM   Updated: 29/Nov/10 11:38 AM
Return to search
Component/s: None
Affects Version/s: 3.1.0-beta1
Fix Version/s: 3.1.0

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
File Attachments: 1. File .gitconfig (0.1 kb)
2. Zip Archive cygcheck.log.zip (5 kb)
3. Zip Archive git-repo-test.bundle.zip (3 kb)

Image Attachments:

1. git-repo-changeset-error-all.png
(42 kb)

2. git-repo-changeset-error-eng.jpg
(122 kb)

3. git-repo-changeset-error.png
(70 kb)

4. git-repo-changeset-ok.png
(69 kb)

5. svn-repo-changeset-ok.png
(69 kb)
Environment:
Operating System Windows 2003 5.2, x86
JVM Java HotSpot(TM) Client VM 17.0-b17, Sun Microsystems Inc.
QuickBuild Version 3.1.0-beta1 - Tue Oct 19 03:36:59 MSD 2010
Git (v1.7.3; compiled from sources) under Cygwin (v1.5)


 Description  « Hide
Non-English log messages and file names are shown incorrectly when "English(USA)" regional settings are set

Prerequisites

Repo:
Note: Git is usually is used under Cygwin. Nevertheless it can be run under native Windows and work correctly (as Java is run under Windows, not Cygwin)
1. Configure Git to work correctly with your codepage (cp1251 in my case; see attached ".gitconfig")
2. Create test Git repository
3. Make first commit

OS:
1. Set regional settings to "English (USA)" for <test-user> (this is done for a project tests (they are run by QB) which must pass with such a regional settings)

QB:
1. Start QB server under <test-user>
2. Create config using Git repo created above.
3. To reproduce error it is enough to setup "checkout from repo" step
4. Optionally repo label step can be set.

Steps
1. Start configuration build. Wait for first build
2. As changesets are calculated between builds modify repo: add/change files. Filenames must contain non-English characters (Russian in my case)
3. Commit changes. Log message also must contain non-English characters (Russian, of course ))
4. Start build again.
5. See changesets with invalid filenames and log messages (see screenshot "git-repo-changeset-error.png")

Expected:
AFAIK, log messages and filenames are stored in Git repo in UTF-8 encoding. So, I expect its representation in changeset to be independent of regional settings (as for SVN, for example)

Correct behaviour can be achieved with steps:
Change regional settings for <test-user> to appropriate ones ("Russian" for me).
Restart QB server (to make regional settings applied)
Delete last build with invalid characters in changeset
Start build again (to make changeset)
Changeset is shown CORRECTLY (see screenshot "git-repo-changeset-ok.png")

For SVN plugin such a change of regional settings does not matter (see screenshot "svn-repo-changeset-ok.png" for "English (USA)" settings)
Note: regional settings that was set at the moment of making changeset can be verified at Action column: date representation depends on it)

 All   Comments   Work Log   Change History      Sort Order:
No work has yet been logged on this issue.