From 6f45827fe07262f93f39ae420f4362bfa0246194 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 26 Jun 2012 23:07:11 -0400 Subject: git-config fileEncoding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Accept arbitrarily encoded repository filepaths etc when reading git config output. This fixes support for remotes with unusual characters in their names. For example, a remote with a url of /tmp/çüş was previously skipped, because the filename wasn't encoded right so it didn't think it was available. And when setting the annex-uuid of a remote named "çüş", it used to add it under a mis-encoded form of the remote's name. Both these cases now work ok in my testing. --- Git/Config.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Git') diff --git a/Git/Config.hs b/Git/Config.hs index dab1cdf5e..c9e4f9a2d 100644 --- a/Git/Config.hs +++ b/Git/Config.hs @@ -54,6 +54,10 @@ read' repo = go repo {- Reads git config from a handle and populates a repo with it. -} hRead :: Repo -> Handle -> IO Repo hRead repo h = do + -- We use the FileSystemEncoding when reading from git-config, + -- because it can contain arbitrary filepaths (and other strings) + -- in any encoding. + fileEncoding h val <- hGetContentsStrict h store val repo -- cgit v1.2.3