diff --git a/LibGit2Sharp.Tests/CommitFixture.cs b/LibGit2Sharp.Tests/CommitFixture.cs index 66c89a895..2b663cda0 100644 --- a/LibGit2Sharp.Tests/CommitFixture.cs +++ b/LibGit2Sharp.Tests/CommitFixture.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -879,5 +879,41 @@ public void CanCommitOnOrphanedBranch() Assert.Equal(1, repo.Head.Commits.Count()); } } + + [Fact] + public void HandlesWrite_i18n_commitEncoding() + { + string encoding = "windows-1250"; + string message = "This commit is created by Janusz Białobrzewski"; + string path = CloneStandardTestRepo(); + using (var repo = new Repository(path)) + { + repo.Config.Set("i18n.commitEncoding", encoding); + + var committer = new Signature("Janusz Białobrzewski", "jbialobr@o2.pl", + Epoch.ToDateTimeOffset(1244286496, 120)); + + Commit c = repo.Commit(message, committer, committer); + + Assert.Equal(encoding, c.Encoding); + Assert.Equal(message, c.Message); + } + } + + [Fact] + public void HandlesRead_i18n_commitEncoding() + { + string encoding = "windows-1250"; + string message = "Message in windows1250 encoding. ąęćłóśźż"; + string path = CloneStandardTestRepo(); + using (var repo = new Repository(path)) + { + Commit c = repo.Lookup("44d6630d4c4917e3eacc3e585bee47e8908efedf"); + + Assert.NotNull(c); + Assert.Equal(encoding, c.Encoding); + Assert.Equal(message, c.Message); + } + } } } diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/COMMIT_EDITMSG b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/COMMIT_EDITMSG index 63ec8fdda..19ee4df70 100644 --- a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/COMMIT_EDITMSG +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/COMMIT_EDITMSG @@ -1 +1 @@ -Add "1.txt" file beside "1" folder +Message in windows1250 encoding. 󜟿 diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/HEAD b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/HEAD index cb4380516..cb089cd89 100644 --- a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/HEAD +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/HEAD @@ -1 +1 @@ -ref: refs/heads/master +ref: refs/heads/master diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/ORIG_HEAD b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/ORIG_HEAD new file mode 100644 index 000000000..bca334acf --- /dev/null +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/ORIG_HEAD @@ -0,0 +1 @@ +32eab9cb1f450b5fe7ab663462b77d7f4b703344 diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/config b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/config index 1599f0b76..c11193760 100644 --- a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/config +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/config @@ -21,3 +21,4 @@ [unittests] longsetting = 15234 intsetting = 2 +[i18n] diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/index b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/index index ba522b9fd..d51ca71b8 100644 Binary files a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/index and b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/index differ diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/HEAD b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/HEAD index 23375c60c..f1dcf5435 100644 --- a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/HEAD +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/HEAD @@ -1,3 +1,6 @@ 0000000000000000000000000000000000000000 4c062a6361ae6959e06292c1fa5e2822d9c96345 Tim Clem 1303768198 -0700 clone: from c:/GitHub/libgit2sharp/Resources/testrepo.git 4c062a6361ae6959e06292c1fa5e2822d9c96345 592d3c869dbc4127fc57c189cb94f2794fa84e7e Tim Clem 1303835722 -0700 commit: add more test files 592d3c869dbc4127fc57c189cb94f2794fa84e7e 32eab9cb1f450b5fe7ab663462b77d7f4b703344 nulltoken 1320047537 +0100 commit: Add "1.txt" file beside "1" folder +32eab9cb1f450b5fe7ab663462b77d7f4b703344 32eab9cb1f450b5fe7ab663462b77d7f4b703344 Janusz Białobrzewski 1381379423 +0200 checkout: moving from master to win1250 +32eab9cb1f450b5fe7ab663462b77d7f4b703344 44d6630d4c4917e3eacc3e585bee47e8908efedf Janusz Białobrzewski 1381379618 +0200 commit: Message in windows1250 encoding. 󜟿 +44d6630d4c4917e3eacc3e585bee47e8908efedf 32eab9cb1f450b5fe7ab663462b77d7f4b703344 Janusz Białobrzewski 1381379656 +0200 checkout: moving from win1250 to master diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/refs/heads/win1250 b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/refs/heads/win1250 new file mode 100644 index 000000000..77e7368dd --- /dev/null +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/logs/refs/heads/win1250 @@ -0,0 +1,2 @@ +0000000000000000000000000000000000000000 32eab9cb1f450b5fe7ab663462b77d7f4b703344 Janusz Białobrzewski 1381379423 +0200 branch: Created from 32eab9cb1f450b5fe7ab663462b77d7f4b703344 +32eab9cb1f450b5fe7ab663462b77d7f4b703344 44d6630d4c4917e3eacc3e585bee47e8908efedf Janusz Białobrzewski 1381379618 +0200 commit: Message in windows1250 encoding. 󜟿 diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/3b/ce4b376c62ad5cb34d10cb9953464f35edd6ce b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/3b/ce4b376c62ad5cb34d10cb9953464f35edd6ce new file mode 100644 index 000000000..43426e562 Binary files /dev/null and b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/3b/ce4b376c62ad5cb34d10cb9953464f35edd6ce differ diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/44/d6630d4c4917e3eacc3e585bee47e8908efedf b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/44/d6630d4c4917e3eacc3e585bee47e8908efedf new file mode 100644 index 000000000..96895fe4a --- /dev/null +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/44/d6630d4c4917e3eacc3e585bee47e8908efedf @@ -0,0 +1 @@ +x=JD1ۋC@D,7Fg%Ã)]"܊pf;v;a833 E6EC$%#ĒSr.\:@c$5+N9wT5ydKDcD:m(v>*^casUv+P8(SK-?;K)5, [ k\N/w!a \ No newline at end of file diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/f3/37719ef2eb6f2b2387173ac7954f770e0b513d b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/f3/37719ef2eb6f2b2387173ac7954f770e0b513d new file mode 100644 index 000000000..7e1944ee2 Binary files /dev/null and b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/objects/f3/37719ef2eb6f2b2387173ac7954f770e0b513d differ diff --git a/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/refs/heads/win1250 b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/refs/heads/win1250 new file mode 100644 index 000000000..f826f2d3c --- /dev/null +++ b/LibGit2Sharp.Tests/Resources/testrepo_wd/dot_git/refs/heads/win1250 @@ -0,0 +1 @@ +44d6630d4c4917e3eacc3e585bee47e8908efedf