1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-24 07:42:40 +01:00
phorge-phorge/src/applications/files
James Rhodes b8b7bf8ad9 Provide phragment.getstate and phragment.getpatch Conduit methods
Summary:
This provides a `phragment.getstate` and a `phragment.getpatch` Conduit method.

`phragment.getstate` - This returns the current state of the fragment and all of it's children.

`phragment.getpatch` - This accepts a base path and a mapping of paths to hashes.  The mapping is for the caller to specify the current state of the files it has.  This returns a list of patches that the caller needs to apply to it's files to get to the latest version.

Test Plan:
Ran the following script in a folder which had content matching a fragment and it's children:

```
#!/bin/bash

STATE=""
for i in $(find ./ -type f); do
    HASH=$(cat $i | sha1sum | awk '{ print $1 }')
    BASE=${i:2}
    STATE="$STATE,\"$BASE\":\"$HASH\""
done
STATE=${STATE:1}
STATE="{$STATE}"

echo '{"path":"tychaia3.zip","state":'$STATE'}' | arc --conduit-uri=http://phabricator.local/ call-conduit phragment.getpatch
```

and I got:

```
{"error":null,"errorMessage":null,"response":[]}
```

I updated one of the child fragments with a new file and ran the script again (patch has been omitted due to it's size):

```
{"error":null,"errorMessage":null,"response":[{"path":"Content\/TitleFont.xnb","hash_old":"4a927d7b90582e50cdd330de9f4b59b0cc5eb5c7","hash_new":"25867504642a3a403102274c68fbb9b430c1980f","patch":"..."}]}
```

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley

CC: Korvin, epriestley, aran, staticshock

Maniphest Tasks: T4205

Differential Revision: https://secure.phabricator.com/D7739
2013-12-11 11:19:23 +11:00
..
application Add an icon+background selector for project images 2013-10-17 09:32:34 -07:00
conduit Make most file reads policy-aware 2013-09-30 09:38:13 -07:00
config Support audio files with HTML5 <audio /> 2013-09-27 10:51:25 -07:00
controller Have TransactionComments return a PHUIObjectBoxView 2013-11-21 16:09:04 -08:00
editor Add support for more granular sending of email in application transactions 2013-09-13 15:08:17 -07:00
engine Muck around with Diviner method documentation display 2013-09-08 09:15:22 -07:00
engineselector Delete license headers from files 2012-11-05 11:16:51 -08:00
exception Delete license headers from files 2012-11-05 11:16:51 -08:00
lipsum Made Changes to Mock and File generation after pushing some methods to superclass 2013-05-06 13:32:01 -07:00
mail Maniphest - add support for !assign command 2013-10-14 12:29:41 -07:00
management Convert bin/files to ObjectQuery 2013-09-30 12:23:18 -07:00
phid Lock policy queries to their applications 2013-10-21 17:20:27 -07:00
query Provide phragment.getstate and phragment.getpatch Conduit methods 2013-12-11 11:19:23 +11:00
remarkup Add explicit width/height controls for embedded images in Remarkup 2013-11-19 17:33:55 -08:00
storage Add filter by object ability to flag query 2013-10-25 12:52:00 -07:00
view Fix file upload redirect URI 2013-05-31 14:35:25 -07:00
PhabricatorImageTransformer.php Fix meme generation for palette PNGs 2013-11-18 15:16:58 -08:00