summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-05-27 14:16:33 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-05-27 14:16:33 -0400
commit85feb21fb08874b00e96fa172d6e6c7f4cb02660 (patch)
tree9dd0104be483e8a546231a0eec0f4575dd70f2f9 /debian
parentabafae2d855927568347178a9c678db6348e2b6f (diff)
Fix encoding of data written to git-annex branch. Avoid truncating unicode characters to 8 bits.
Allow any encoding to be used, as with filenames (but utf8 is the sane choice). Affects metadata and repository descriptions, and preferred content expressions. The question of what's the right encoding for the git-annex branch is a vexing one. utf-8 would be a nice choice, but this leaves the possibility of bad data getting into a git-annex branch somehow, and this resulting in git-annex crashing with encoding errors, which is a failure mode I want to avoid. (Also, preferred content expressions can refer to filenames, and filenames can have any encoding, so limiting to utf-8 would not be ideal.) The union merge code already took care to not assume any encoding for a file. Except it assumes that any \n is a literal newline, and not part of some encoding of a character that happens to contain a newline. (At least utf-8 avoids using newline for anything except liternal newlines.) Adapted the git-annex branch code to use this same approach. Note that there is a potential interop problem with Windows, since FileSystemEncoding doesn't work there, and instead things are always decoded as utf-8. If someone uses non-utf8 encoding for data on the git-annex branch, this can lead to an encoding error on windows. However, this commit doesn't actually make that any worse, because the union merge code would similarly fail with an encoding error on windows in that situation. This commit was sponsored by Kyle Meyer.
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog4
1 files changed, 4 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 8603adf17..68678ed21 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,10 @@ git-annex (5.20140518) UNRELEASED; urgency=medium
so that it can be easily enabled elsewhere.
* android: Run busybox install with -s, since some versions of Android
prohibit making hard links.
+ * Fix encoding of data written to git-annex branch. Avoid truncating
+ unicode characters to 8 bits. Allow any encoding to be used, as with
+ filenames (but utf8 is the sane choice). Affects metadata and repository
+ descriptions, and preferred content expressions.
-- Joey Hess <joeyh@debian.org> Mon, 19 May 2014 15:59:25 -0400