summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-05-03 13:36:59 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-05-03 13:36:59 -0400
commit634699480da03954e855540caba1e0a12d458a19 (patch)
tree1c1879e4bbb20478cec5ac13ac6074e4c5def52f
parent215b9ad6b887dcd16720136768a3080afd576687 (diff)
Added DIRHASH_LOWER to external special remote protocol.
-rw-r--r--Remote/External.hs2
-rw-r--r--Remote/External/Types.hs2
-rw-r--r--debian/changelog1
-rw-r--r--doc/design/external_special_remote_protocol.mdwn10
-rw-r--r--doc/design/external_special_remote_protocol/comment_26_4f8addd76a1e64d05a34910d4719a40c._comment11
5 files changed, 25 insertions, 1 deletions
diff --git a/Remote/External.hs b/Remote/External.hs
index 20fd4e52c..69c47a6e4 100644
--- a/Remote/External.hs
+++ b/Remote/External.hs
@@ -227,6 +227,8 @@ handleRequest' lck external req mp responsehandler
maybe noop (\a -> liftIO $ a bytesprocessed) mp
handleRemoteRequest (DIRHASH k) =
send $ VALUE $ hashDirMixed def k
+ handleRemoteRequest (DIRHASH_LOWER k) =
+ send $ VALUE $ hashDirLower def k
handleRemoteRequest (SETCONFIG setting value) =
liftIO $ atomically $ do
let v = externalConfig external
diff --git a/Remote/External/Types.hs b/Remote/External/Types.hs
index 80c785798..9050d0a84 100644
--- a/Remote/External/Types.hs
+++ b/Remote/External/Types.hs
@@ -176,6 +176,7 @@ data RemoteRequest
= VERSION ProtocolVersion
| PROGRESS BytesProcessed
| DIRHASH Key
+ | DIRHASH_LOWER Key
| SETCONFIG Setting String
| GETCONFIG Setting
| SETCREDS Setting String String
@@ -198,6 +199,7 @@ instance Proto.Receivable RemoteRequest where
parseCommand "VERSION" = Proto.parse1 VERSION
parseCommand "PROGRESS" = Proto.parse1 PROGRESS
parseCommand "DIRHASH" = Proto.parse1 DIRHASH
+ parseCommand "DIRHASH_LOWER" = Proto.parse1 DIRHASH_LOWER
parseCommand "SETCONFIG" = Proto.parse2 SETCONFIG
parseCommand "GETCONFIG" = Proto.parse1 GETCONFIG
parseCommand "SETCREDS" = Proto.parse3 SETCREDS
diff --git a/debian/changelog b/debian/changelog
index d85477903..68de420af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,7 @@ git-annex (6.20160420) UNRELEASED; urgency=medium
again later.
* Android: Icon refresh.
Thanks, freewheelinfranks.
+ * Added DIRHASH_LOWER to external special remote protocol.
-- Joey Hess <id@joeyh.name> Thu, 28 Apr 2016 13:17:04 -0400
diff --git a/doc/design/external_special_remote_protocol.mdwn b/doc/design/external_special_remote_protocol.mdwn
index f9eca2af0..cbe8504ed 100644
--- a/doc/design/external_special_remote_protocol.mdwn
+++ b/doc/design/external_special_remote_protocol.mdwn
@@ -230,7 +230,15 @@ in control.
* `DIRHASH Key`
Gets a two level hash associated with a Key. Something like "aB/Cd".
This is always the same for any given Key, so can be used for eg,
- creating hash directory structures to store Keys in.
+ creating hash directory structures to store Keys in. This is the same
+ directory hash that git-annex uses inside `.git/annex/objects/`
+ (git-annex replies with VALUE followed by the value.)
+* `DIRHASH_LOWER Key`
+ Gets a two level hash associated with a Key, using only lower-case.
+ Something like "abc/def".
+ This is always the same for any given Key, so can be used for eg,
+ creating hash directory structures to store Keys in. This is the same
+ directory hash that is used by eg, the directory special remote.
(git-annex replies with VALUE followed by the value.)
* `SETCONFIG Setting Value`
Sets one of the special remote's configuration settings.
diff --git a/doc/design/external_special_remote_protocol/comment_26_4f8addd76a1e64d05a34910d4719a40c._comment b/doc/design/external_special_remote_protocol/comment_26_4f8addd76a1e64d05a34910d4719a40c._comment
new file mode 100644
index 000000000..790da0445
--- /dev/null
+++ b/doc/design/external_special_remote_protocol/comment_26_4f8addd76a1e64d05a34910d4719a40c._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 26"""
+ date="2016-05-03T17:29:02Z"
+ content="""
+I don't think there's any particularly good reason why DIRHASH uses the
+mixed case format. However, it can't be changed without busting existing
+stuff.
+
+So yeah, I've gone ahead and added a `DIRHASH_LOWER`.
+"""]]