Merge branch 'master' into blender-tweaks

This commit is contained in:
2017-01-20 14:12:45 +01:00
1555 changed files with 56011 additions and 24365 deletions

View File

@@ -1,4 +1,5 @@
{ {
"phabricator.uri": "https://developer.blender.org/", "phabricator.uri": "https://developer.blender.org/",
"load": ["src/"] "load": ["src/"],
"history.immutable": false
} }

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
# Diviner # Diviner
/docs/ /docs/
/.divinercache/ /.divinercache/
/src/.cache/
# libphutil # libphutil
/src/.phutil_module_cache /src/.phutil_module_cache

1
bin/calendar Symbolic link
View File

@@ -0,0 +1 @@
../scripts/setup/manage_calendar.php

View File

@@ -1 +0,0 @@
../scripts/setup/manage_hunks.php

View File

@@ -111,13 +111,13 @@ class MimeMailParser {
* @param $data String * @param $data String
*/ */
public function setText($data) { public function setText($data) {
// NOTE: This has been modified for Phabricator. If the input data does not // NOTE: This has been modified for Phabricator. If the input data does not
// end in a newline, Mailparse fails to include the last line in the mail // end in a newline, Mailparse fails to include the last line in the mail
// body. This happens somewhere deep, deep inside the mailparse extension, // body. This happens somewhere deep, deep inside the mailparse extension,
// so adding a newline here seems like the most straightforward fix. // so adding a newline here seems like the most straightforward fix.
if (!preg_match('/\n\z/', $data)) { if (!preg_match('/\n\z/', $data)) {
$data = $data."\n"; $data = $data."\n";
} }
$this->resource = mailparse_msg_create(); $this->resource = mailparse_msg_create();
// does not parse incrementally, fast memory hog might explode // does not parse incrementally, fast memory hog might explode
@@ -203,23 +203,23 @@ class MimeMailParser {
); );
if (in_array($type, array_keys($mime_types))) { if (in_array($type, array_keys($mime_types))) {
foreach($this->parts as $part) { foreach($this->parts as $part) {
$disposition = $this->getPartContentDisposition($part); $disposition = $this->getPartContentDisposition($part);
if ($disposition == 'attachment') { if ($disposition == 'attachment') {
// text/plain parts with "Content-Disposition: attachment" are // text/plain parts with "Content-Disposition: attachment" are
// attachments, not part of the text body. // attachments, not part of the text body.
continue; continue;
} }
if ($this->getPartContentType($part) == $mime_types[$type]) { if ($this->getPartContentType($part) == $mime_types[$type]) {
$headers = $this->getPartHeaders($part); $headers = $this->getPartHeaders($part);
// Concatenate all the matching parts into the body text. For example, // Concatenate all the matching parts into the body text. For example,
// if a user sends a message with some text, then an image, and then // if a user sends a message with some text, then an image, and then
// some more text, the text body of the email gets split over several // some more text, the text body of the email gets split over several
// attachments. // attachments.
$body .= $this->decode( $body .= $this->decode(
$this->getPartBody($part), $this->getPartBody($part),
array_key_exists('content-transfer-encoding', $headers) array_key_exists('content-transfer-encoding', $headers)
? $headers['content-transfer-encoding'] ? $headers['content-transfer-encoding']
: ''); : '');
} }
} }
} else { } else {
@@ -251,20 +251,42 @@ class MimeMailParser {
return $headers; return $headers;
} }
/** /**
* Returns the attachments contents in order of appearance * Returns the attachments contents in order of appearance
* @return Array * @return Array
* @param $type Object[optional] * @param $type Object[optional]
*/ */
public function getAttachments() { public function getAttachments() {
// NOTE: This has been modified for Phabricator. Some mail clients do not
// send attachments with "Content-Disposition" headers.
$attachments = array(); $attachments = array();
$dispositions = array("attachment","inline"); $dispositions = array("attachment","inline");
foreach($this->parts as $part) { $non_attachment_types = array("text/plain", "text/html");
$nonameIter = 0;
foreach ($this->parts as $part) {
$disposition = $this->getPartContentDisposition($part); $disposition = $this->getPartContentDisposition($part);
if (in_array($disposition, $dispositions)) { $filename = 'noname';
if (isset($part['disposition-filename'])) {
$filename = $part['disposition-filename'];
} elseif (isset($part['content-name'])) {
// if we have no disposition but we have a content-name, it's a valid attachment.
// we simulate the presence of an attachment disposition with a disposition filename
$filename = $part['content-name'];
$disposition = 'attachment';
} elseif (!in_array($part['content-type'], $non_attachment_types, true)
&& substr($part['content-type'], 0, 10) !== 'multipart/'
) {
// if we cannot get it with getMessageBody, we assume it is an attachment
$disposition = 'attachment';
}
if (in_array($disposition, $dispositions) && isset($filename) === true) {
if ($filename == 'noname') {
$nonameIter++;
$filename = 'noname'.$nonameIter;
}
$attachments[] = new MimeMailParser_attachment( $attachments[] = new MimeMailParser_attachment(
$part['disposition-filename'], $filename,
$this->getPartContentType($part), $this->getPartContentType($part),
$this->getAttachmentStream($part), $this->getAttachmentStream($part),
$disposition, $disposition,
@@ -413,7 +435,7 @@ class MimeMailParser {
private function getAttachmentStream(&$part) { private function getAttachmentStream(&$part) {
$temp_fp = tmpfile(); $temp_fp = tmpfile();
array_key_exists('content-transfer-encoding', $part['headers']) ? $encoding = $part['headers']['content-transfer-encoding'] : $encoding = ''; array_key_exists('content-transfer-encoding', $part['headers']) ? $encoding = $part['headers']['content-transfer-encoding'] : $encoding = '';
if ($temp_fp) { if ($temp_fp) {
if ($this->stream) { if ($this->stream) {
@@ -445,21 +467,21 @@ class MimeMailParser {
} }
/** /**
* Decode the string depending on encoding type. * Decode the string depending on encoding type.
* @return String the decoded string. * @return String the decoded string.
* @param $encodedString The string in its original encoded state. * @param $encodedString The string in its original encoded state.
* @param $encodingType The encoding type from the Content-Transfer-Encoding header of the part. * @param $encodingType The encoding type from the Content-Transfer-Encoding header of the part.
*/ */
private function decode($encodedString, $encodingType) { private function decode($encodedString, $encodingType) {
if (strtolower($encodingType) == 'base64') { if (strtolower($encodingType) == 'base64') {
return base64_decode($encodedString); return base64_decode($encodedString);
} else if (strtolower($encodingType) == 'quoted-printable') { } else if (strtolower($encodingType) == 'quoted-printable') {
return quoted_printable_decode($encodedString); return quoted_printable_decode($encodedString);
} else { } else {
return $encodedString; return $encodedString;
} }
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -36,6 +36,7 @@ return array(
'phuix-dropdown-menu', 'phuix-dropdown-menu',
'phuix-action-list-view', 'phuix-action-list-view',
'phuix-action-view', 'phuix-action-view',
'phuix-icon-view',
'phabricator-phtize', 'phabricator-phtize',
'javelin-behavior-phabricator-oncopy', 'javelin-behavior-phabricator-oncopy',
'phabricator-tooltip', 'phabricator-tooltip',
@@ -83,11 +84,15 @@ return array(
'conpherence-thread-manager', 'conpherence-thread-manager',
'javelin-behavior-detect-timezone', 'javelin-behavior-detect-timezone',
'javelin-behavior-setup-check-https', 'javelin-behavior-setup-check-https',
'javelin-behavior-aphlict-status',
'javelin-behavior-user-menu',
'phabricator-favicon',
), ),
'core.pkg.css' => array( 'core.pkg.css' => array(
'phabricator-core-css', 'phabricator-core-css',
'phabricator-zindex-css', 'phabricator-zindex-css',
'phui-button-css', 'phui-button-css',
'phui-theme-css',
'phabricator-standard-page-view', 'phabricator-standard-page-view',
'aphront-dialog-view-css', 'aphront-dialog-view-css',
'phui-form-view-css', 'phui-form-view-css',
@@ -96,6 +101,7 @@ return array(
'aphront-tokenizer-control-css', 'aphront-tokenizer-control-css',
'aphront-typeahead-control-css', 'aphront-typeahead-control-css',
'aphront-list-filter-view-css', 'aphront-list-filter-view-css',
'application-search-view-css',
'phabricator-remarkup-css', 'phabricator-remarkup-css',
'syntax-highlighting-css', 'syntax-highlighting-css',
@@ -104,18 +110,22 @@ return array(
'aphront-tooltip-css', 'aphront-tooltip-css',
'phabricator-flag-css', 'phabricator-flag-css',
'phui-info-view-css', 'phui-info-view-css',
'sprite-menu-css',
'phabricator-main-menu-view', 'phabricator-main-menu-view',
'phabricator-notification-css', 'phabricator-notification-css',
'phabricator-notification-menu-css', 'phabricator-notification-menu-css',
'lightbox-attachment-css', 'phui-lightbox-css',
'phui-comment-panel-css',
'phui-header-view-css', 'phui-header-view-css',
'phabricator-filetree-view-css',
'phabricator-nav-view-css', 'phabricator-nav-view-css',
'phabricator-side-menu-view-css', 'phui-basic-nav-view-css',
'phui-crumbs-view-css', 'phui-crumbs-view-css',
'phui-object-item-list-view-css', 'phui-oi-list-view-css',
'phui-oi-color-css',
'phui-oi-big-ui-css',
'phui-oi-drag-ui-css',
'phui-oi-simple-ui-css',
'phui-oi-flush-ui-css',
'global-drag-and-drop-css', 'global-drag-and-drop-css',
'phui-spacing-css', 'phui-spacing-css',
'phui-form-css', 'phui-form-css',
@@ -129,19 +139,41 @@ return array(
'phui-list-view-css', 'phui-list-view-css',
'font-fontawesome', 'font-fontawesome',
'font-lato',
'font-aleo',
'phui-font-icon-base-css', 'phui-font-icon-base-css',
'phui-fontkit-css',
'phui-box-css', 'phui-box-css',
'phui-object-box-css', 'phui-object-box-css',
'phui-timeline-view-css', 'phui-timeline-view-css',
'phui-two-column-view-css',
'phui-curtain-view-css',
'sprite-login-css',
'sprite-tokens-css', 'sprite-tokens-css',
'tokens-css', 'tokens-css',
'phui-status-list-view-css', 'auth-css',
'phui-status-list-view-css',
'phui-feed-story-css', 'phui-feed-story-css',
'phabricator-feed-css', 'phabricator-feed-css',
'phabricator-dashboard-css', 'phabricator-dashboard-css',
'aphront-multi-column-view-css', 'aphront-multi-column-view-css',
),
'conpherence.pkg.css' => array(
'conpherence-durable-column-view', 'conpherence-durable-column-view',
'conpherence-menu-css',
'conpherence-message-pane-css',
'conpherence-notification-css',
'conpherence-transaction-css',
'conpherence-participant-pane-css',
'conpherence-header-pane-css',
),
'conpherence.pkg.js' => array(
'javelin-behavior-conpherence-menu',
'javelin-behavior-conpherence-participant-pane',
'javelin-behavior-conpherence-pontificate',
'javelin-behavior-toggle-widget',
), ),
'differential.pkg.css' => array( 'differential.pkg.css' => array(
'differential-core-view-css', 'differential-core-view-css',
@@ -155,6 +187,7 @@ return array(
'phabricator-content-source-view-css', 'phabricator-content-source-view-css',
'inline-comment-summary-css', 'inline-comment-summary-css',
'phui-inline-comment-view-css', 'phui-inline-comment-view-css',
'phabricator-filetree-view-css',
), ),
'differential.pkg.js' => array( 'differential.pkg.js' => array(
'phabricator-drag-and-drop-file-upload', 'phabricator-drag-and-drop-file-upload',
@@ -165,7 +198,6 @@ return array(
'javelin-behavior-differential-populate', 'javelin-behavior-differential-populate',
'javelin-behavior-differential-diff-radios', 'javelin-behavior-differential-diff-radios',
'javelin-behavior-differential-comment-jump', 'javelin-behavior-differential-comment-jump',
'javelin-behavior-differential-add-reviewers-and-ccs',
'javelin-behavior-differential-keyboard-navigation', 'javelin-behavior-differential-keyboard-navigation',
'javelin-behavior-aphront-drag-and-drop-textarea', 'javelin-behavior-aphront-drag-and-drop-textarea',
'javelin-behavior-phabricator-object-selector', 'javelin-behavior-phabricator-object-selector',

View File

@@ -15,8 +15,7 @@
], ],
"conduit.uri" : null, "conduit.uri" : null,
"conduit.user" : null, "conduit.token" : null,
"conduit.cert" : null,
"macro.size" : 48, "macro.size" : 48,
"macro.aspect" : 0.66, "macro.aspect" : 0.66,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -81,16 +81,16 @@
"rule": ".login-PayPal", "rule": ".login-PayPal",
"hash": "dfa09f45369c93bb0fd82a333b0fe927" "hash": "dfa09f45369c93bb0fd82a333b0fe927"
}, },
"login-Persona": {
"name": "login-Persona",
"rule": ".login-Persona",
"hash": "14cc5b479b14abe16261c01fc432ffd1"
},
"login-Phabricator": { "login-Phabricator": {
"name": "login-Phabricator", "name": "login-Phabricator",
"rule": ".login-Phabricator", "rule": ".login-Phabricator",
"hash": "d0f830803593bbcc025d7d5a29ee3ecd" "hash": "d0f830803593bbcc025d7d5a29ee3ecd"
}, },
"login-Slack": {
"name": "login-Slack",
"rule": ".login-Slack",
"hash": "fe0df2df040032b949aa05948b6bd986"
},
"login-Stripe": { "login-Stripe": {
"name": "login-Stripe", "name": "login-Stripe",
"rule": ".login-Stripe", "rule": ".login-Stripe",

View File

@@ -1,31 +0,0 @@
{
"version": 1,
"sprites": {
"dark-eye": {
"name": "dark-eye",
"rule": ".dark-eye",
"hash": "c8112e52666fa1cb509ebb2cdf3a3df5"
},
"dark-logo": {
"name": "dark-logo",
"rule": ".dark-logo",
"hash": "e3425da87e8f6737d8db0063d064cd7d"
},
"light-eye": {
"name": "light-eye",
"rule": ".light-eye",
"hash": "5b6bf7c8c10d4f7414d976f6e79ae2ff"
},
"light-logo": {
"name": "light-logo",
"rule": ".light-logo",
"hash": "bee37c0a86825ec7ded38936b1ba7b65"
}
},
"scales": [
1,
2
],
"header": "\/**\n * @provides sprite-menu-css\n * @generated\n *\/\n\n.sprite-menu {\n background-image: url(\/rsrc\/image\/sprite-menu.png);\n background-repeat: no-repeat;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5),\nonly screen and (min-resolution: 1.5dppx) {\n .sprite-menu {\n background-image: url(\/rsrc\/image\/sprite-menu-X2.png);\n background-size: {X}px {Y}px;\n }\n}\n",
"type": "standard"
}

View File

@@ -4,88 +4,128 @@
"tokens-coin-1": { "tokens-coin-1": {
"name": "tokens-coin-1", "name": "tokens-coin-1",
"rule": ".tokens-coin-1", "rule": ".tokens-coin-1",
"hash": "0ec4c7309f8191972340c6789a6b5691" "hash": "5343d745423994c45c5fc689edc47d05"
}, },
"tokens-coin-2": { "tokens-coin-2": {
"name": "tokens-coin-2", "name": "tokens-coin-2",
"rule": ".tokens-coin-2", "rule": ".tokens-coin-2",
"hash": "4c85dd4b0c388cfefe0075b7056384fd" "hash": "9a94b5f925f3e6f8eed673d50fbfe148"
}, },
"tokens-coin-3": { "tokens-coin-3": {
"name": "tokens-coin-3", "name": "tokens-coin-3",
"rule": ".tokens-coin-3", "rule": ".tokens-coin-3",
"hash": "a2e3770894539957e436a7d5a2be4703" "hash": "68db03ca248309a76cee97ada64239c6"
}, },
"tokens-coin-4": { "tokens-coin-4": {
"name": "tokens-coin-4", "name": "tokens-coin-4",
"rule": ".tokens-coin-4", "rule": ".tokens-coin-4",
"hash": "856cb87c5590975c0a25177ca2fd2a8f" "hash": "75832b7e42df9287b3c35c6afed12a93"
},
"tokens-emoji-1": {
"name": "tokens-emoji-1",
"rule": ".tokens-emoji-1",
"hash": "17f57bdeb4078f9c05f1f037ccb1c162"
},
"tokens-emoji-2": {
"name": "tokens-emoji-2",
"rule": ".tokens-emoji-2",
"hash": "6877c6e0c63522d5819531aaf4aba787"
},
"tokens-emoji-3": {
"name": "tokens-emoji-3",
"rule": ".tokens-emoji-3",
"hash": "cc67534b0119d4cc385a93ed5aff86e4"
},
"tokens-emoji-4": {
"name": "tokens-emoji-4",
"rule": ".tokens-emoji-4",
"hash": "f2a6febd638670962dfb5fdd76b23cfb"
},
"tokens-emoji-5": {
"name": "tokens-emoji-5",
"rule": ".tokens-emoji-5",
"hash": "22bc23d162449fde492e0fd3eccc7301"
},
"tokens-emoji-6": {
"name": "tokens-emoji-6",
"rule": ".tokens-emoji-6",
"hash": "e3689840f410ff1bbf365f6b06043d3f"
},
"tokens-emoji-7": {
"name": "tokens-emoji-7",
"rule": ".tokens-emoji-7",
"hash": "a689b9fe7c9f6f300d757b5350e2cc4b"
},
"tokens-emoji-8": {
"name": "tokens-emoji-8",
"rule": ".tokens-emoji-8",
"hash": "26570ef132caea33307e1e7574d754e8"
}, },
"tokens-heart-1": { "tokens-heart-1": {
"name": "tokens-heart-1", "name": "tokens-heart-1",
"rule": ".tokens-heart-1", "rule": ".tokens-heart-1",
"hash": "370228318750a79d93848bdf686444e5" "hash": "2d4812b2129a8eb05fcdbed1e9654422"
}, },
"tokens-heart-2": { "tokens-heart-2": {
"name": "tokens-heart-2", "name": "tokens-heart-2",
"rule": ".tokens-heart-2", "rule": ".tokens-heart-2",
"hash": "197144d3987308aaef311e29e3503707" "hash": "64cbdbfb0dc565f17b6f13b5e41bc000"
}, },
"tokens-like-1": { "tokens-like-1": {
"name": "tokens-like-1", "name": "tokens-like-1",
"rule": ".tokens-like-1", "rule": ".tokens-like-1",
"hash": "3c5271d6678ad6d217a47779488c9918" "hash": "1b3966d6e0e5d902b558fe3d76ed8a79"
}, },
"tokens-like-2": { "tokens-like-2": {
"name": "tokens-like-2", "name": "tokens-like-2",
"rule": ".tokens-like-2", "rule": ".tokens-like-2",
"hash": "b009176baadc3e71786ac24ce8229c5a" "hash": "b74308407fdaa94e08492cfd9b44f2a2"
}, },
"tokens-medal-1": { "tokens-medal-1": {
"name": "tokens-medal-1", "name": "tokens-medal-1",
"rule": ".tokens-medal-1", "rule": ".tokens-medal-1",
"hash": "cd897529c6834917da062589ae1a69ae" "hash": "33d837e703091060c1892c402535eef0"
}, },
"tokens-medal-2": { "tokens-medal-2": {
"name": "tokens-medal-2", "name": "tokens-medal-2",
"rule": ".tokens-medal-2", "rule": ".tokens-medal-2",
"hash": "d56f106b508c33bca6c0a33e2544d0d6" "hash": "fa2f3b237d7616a6cb309718ad162d7a"
}, },
"tokens-medal-3": { "tokens-medal-3": {
"name": "tokens-medal-3", "name": "tokens-medal-3",
"rule": ".tokens-medal-3", "rule": ".tokens-medal-3",
"hash": "d4e7c06cfd39d932a35aa25841d5008c" "hash": "d7282911ba57373b54b4093986143f3e"
}, },
"tokens-medal-4": { "tokens-medal-4": {
"name": "tokens-medal-4", "name": "tokens-medal-4",
"rule": ".tokens-medal-4", "rule": ".tokens-medal-4",
"hash": "36f596bd2615e521542ac10a771d6902" "hash": "a107a334968d57314ec6a71620c45b99"
}, },
"tokens-misc-1": { "tokens-misc-1": {
"name": "tokens-misc-1", "name": "tokens-misc-1",
"rule": ".tokens-misc-1", "rule": ".tokens-misc-1",
"hash": "8f7575c0176570b30aaffb801bcb2c13" "hash": "671ce03f62c7b0946482ec92d35b8aa3"
}, },
"tokens-misc-2": { "tokens-misc-2": {
"name": "tokens-misc-2", "name": "tokens-misc-2",
"rule": ".tokens-misc-2", "rule": ".tokens-misc-2",
"hash": "5c61bc36fd0b5545ebf31b57c6ab5185" "hash": "872353ba82e41512c3b54e5dc2aa3d43"
}, },
"tokens-misc-3": { "tokens-misc-3": {
"name": "tokens-misc-3", "name": "tokens-misc-3",
"rule": ".tokens-misc-3", "rule": ".tokens-misc-3",
"hash": "97a383def5eb847077b2b26a1a441c0e" "hash": "cdf9171ec6397b95ea9abe1edeaab359"
}, },
"tokens-misc-4": { "tokens-misc-4": {
"name": "tokens-misc-4", "name": "tokens-misc-4",
"rule": ".tokens-misc-4", "rule": ".tokens-misc-4",
"hash": "229c8a28e3b6bb883effbb62689e190f" "hash": "7371fa5ecde282e718b7a15b02ca51e8"
} }
}, },
"scales": [ "scales": [
1, 1,
2 2
], ],
"header": "\/**\n * @provides sprite-tokens-css\n * @generated\n *\/\n\n.sprite-tokens {\n background-image: url(\/rsrc\/image\/sprite-tokens.png);\n background-repeat: no-repeat;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5),\nonly screen and (min-resolution: 1.5dppx) {\n .sprite-tokens {\n background-image: url(\/rsrc\/image\/sprite-tokens-X2.png);\n background-size: {X}px {Y}px;\n }\n}\n", "header": "/**\n * @provides sprite-tokens-css\n * @generated\n */\n\n.sprite-tokens {\n background-image: url(/rsrc/image/sprite-tokens.png);\n background-repeat: no-repeat;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5),\nonly screen and (min-resolution: 1.5dppx) {\n .sprite-tokens {\n background-image: url(/rsrc/image/sprite-tokens-X2.png);\n background-size: {X}px {Y}px;\n }\n}\n",
"type": "standard" "type": "standard"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 B

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 B

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 742 B

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 659 B

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 657 B

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 657 B

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 826 B

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -4,27 +4,30 @@ $project_table = new PhabricatorProject();
$table_name = $project_table->getTableName(); $table_name = $project_table->getTableName();
$conn_w = $project_table->establishConnection('w'); $conn_w = $project_table->establishConnection('w');
$slug_table_name = id(new PhabricatorProjectSlug())->getTableName(); $slug_table_name = id(new PhabricatorProjectSlug())->getTableName();
$time = time(); $time = PhabricatorTime::getNow();
echo pht('Migrating project phriction slugs...')."\n"; echo pht('Migrating projects to slugs...')."\n";
foreach (new LiskMigrationIterator($project_table) as $project) { foreach (new LiskMigrationIterator($project_table) as $project) {
$id = $project->getID(); $id = $project->getID();
echo pht('Migrating project %d...', $id)."\n"; echo pht('Migrating project %d...', $id)."\n";
$phriction_slug = rtrim($project->getPhrictionSlug(), '/');
$slug_text = PhabricatorSlug::normalizeProjectSlug($project->getName());
$slug = id(new PhabricatorProjectSlug()) $slug = id(new PhabricatorProjectSlug())
->loadOneWhere('slug = %s', $phriction_slug); ->loadOneWhere('slug = %s', $slug_text);
if ($slug) { if ($slug) {
echo pht('Already migrated %d... Continuing.', $id)."\n"; echo pht('Already migrated %d... Continuing.', $id)."\n";
continue; continue;
} }
queryfx( queryfx(
$conn_w, $conn_w,
'INSERT INTO %T (projectPHID, slug, dateCreated, dateModified) '. 'INSERT INTO %T (projectPHID, slug, dateCreated, dateModified) '.
'VALUES (%s, %s, %d, %d)', 'VALUES (%s, %s, %d, %d)',
$slug_table_name, $slug_table_name,
$project->getPHID(), $project->getPHID(),
$phriction_slug, $slug_text,
$time, $time,
$time); $time);
echo pht('Migrated %d.', $id)."\n"; echo pht('Migrated %d.', $id)."\n";

View File

@@ -17,7 +17,7 @@ foreach ($iterator as $event) {
// later patch. See T8209. // later patch. See T8209.
$user = id(new PhabricatorPeopleQuery()) $user = id(new PhabricatorPeopleQuery())
->setViewer($viewer) ->setViewer($viewer)
->withPHIDs(array($event->getUserPHID())) ->withPHIDs(array($event->getHostPHID()))
->executeOne(); ->executeOne();
if ($user) { if ($user) {

View File

@@ -7,7 +7,7 @@
$project_table = new PhabricatorProject(); $project_table = new PhabricatorProject();
$conn_w = $project_table->establishConnection('w'); $conn_w = $project_table->establishConnection('w');
$panel_table = id(new PhabricatorProfilePanelConfiguration()); $panel_table = id(new PhabricatorProfileMenuItemConfiguration());
$panel_conn = $panel_table->establishConnection('w'); $panel_conn = $panel_table->establishConnection('w');
foreach (new LiskMigrationIterator($project_table) as $project) { foreach (new LiskMigrationIterator($project_table) as $project) {
@@ -50,9 +50,9 @@ foreach (new LiskMigrationIterator($project_table) as $project) {
$panel_table->getTableName(), $panel_table->getTableName(),
$panel_table->generatePHID(), $panel_table->generatePHID(),
$project->getPHID(), $project->getPHID(),
PhabricatorProjectWorkboardProfilePanel::PANELKEY, PhabricatorProjectWorkboardProfileMenuItem::MENUITEMKEY,
PhabricatorProject::PANEL_WORKBOARD, PhabricatorProject::ITEM_WORKBOARD,
PhabricatorProfilePanelConfiguration::VISIBILITY_DEFAULT, PhabricatorProfileMenuItemConfiguration::VISIBILITY_DEFAULT,
'{}', '{}',
2, 2,
PhabricatorTime::getNow(), PhabricatorTime::getNow(),

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_phame.phame_blog
MODIFY parentDomain VARCHAR(128) NULL COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_phame.phame_blog
MODIFY parentSite VARCHAR(128) NULL COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_calendar.calendar_event
ADD isStub BOOL NOT NULL;

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_file.file
ADD builtinKey VARCHAR(64) COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_file.file
ADD UNIQUE KEY `key_builtin` (builtinKey);

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_calendar.calendar_event
CHANGE userPHID hostPHID VARBINARY(64) NOT NULL;

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_calendar.calendar_event
ADD allDayDateFrom INT UNSIGNED NOT NULL;

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_calendar.calendar_event
ADD allDayDateTo INT UNSIGNED NOT NULL;

View File

@@ -0,0 +1,3 @@
<?php
// This migration was replaced by "20161004.cal.01.noepoch.php".

View File

@@ -0,0 +1,37 @@
<?php
$table = new PhabricatorCalendarEventTransaction();
$conn_w = $table->establishConnection('w');
echo pht(
"Restructuring calendar invite transactions...\n");
foreach (new LiskMigrationIterator($table) as $txn) {
$type = PhabricatorCalendarEventInviteTransaction::TRANSACTIONTYPE;
if ($txn->getTransactionType() != $type) {
continue;
}
$old_value = array_keys($txn->getOldValue());
$orig_new = $txn->getNewValue();
$status_uninvited = 'uninvited';
foreach ($orig_new as $key => $status) {
if ($status == $status_uninvited) {
unset($orig_new[$key]);
}
}
$new_value = array_keys($orig_new);
queryfx(
$conn_w,
'UPDATE %T SET '.
'oldValue = %s, newValue = %s'.
'WHERE id = %d',
$table->getTableName(),
phutil_json_encode($old_value),
phutil_json_encode($new_value),
$txn->getID());
}
echo pht('Done.')."\n";

View File

@@ -0,0 +1,11 @@
CREATE TABLE {$NAMESPACE}_packages.packages_publisher (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
name VARCHAR(64) NOT NULL COLLATE {$COLLATE_TEXT},
publisherKey VARCHAR(64) NOT NULL COLLATE {$COLLATE_SORT},
editPolicy VARBINARY(64) NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (phid),
UNIQUE KEY `key_publisher` (publisherKey)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,19 @@
CREATE TABLE {$NAMESPACE}_packages.packages_publishertransaction (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
authorPHID VARBINARY(64) NOT NULL,
objectPHID VARBINARY(64) NOT NULL,
viewPolicy VARBINARY(64) NOT NULL,
editPolicy VARBINARY(64) NOT NULL,
commentPHID VARBINARY(64) DEFAULT NULL,
commentVersion INT UNSIGNED NOT NULL,
transactionType VARCHAR(32) COLLATE {$COLLATE_TEXT} NOT NULL,
oldValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
newValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
contentSource LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
metadata LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (`phid`),
KEY `key_object` (`objectPHID`)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,16 @@
CREATE TABLE {$NAMESPACE}_packages.edge (
src VARBINARY(64) NOT NULL,
type INT UNSIGNED NOT NULL,
dst VARBINARY(64) NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
seq INT UNSIGNED NOT NULL,
dataID INT UNSIGNED,
PRIMARY KEY (src, type, dst),
KEY `src` (src, type, dateCreated, seq),
UNIQUE KEY `key_dst` (dst, type, src)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
CREATE TABLE {$NAMESPACE}_packages.edgedata (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
data LONGTEXT NOT NULL COLLATE {$COLLATE_TEXT}
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,13 @@
CREATE TABLE {$NAMESPACE}_packages.packages_package (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
name VARCHAR(64) NOT NULL COLLATE {$COLLATE_TEXT},
publisherPHID VARBINARY(64) NOT NULL,
packageKey VARCHAR(64) NOT NULL COLLATE {$COLLATE_SORT},
viewPolicy VARBINARY(64) NOT NULL,
editPolicy VARBINARY(64) NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (phid),
UNIQUE KEY `key_package` (publisherPHID, packageKey)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,19 @@
CREATE TABLE {$NAMESPACE}_packages.packages_packagetransaction (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
authorPHID VARBINARY(64) NOT NULL,
objectPHID VARBINARY(64) NOT NULL,
viewPolicy VARBINARY(64) NOT NULL,
editPolicy VARBINARY(64) NOT NULL,
commentPHID VARBINARY(64) DEFAULT NULL,
commentVersion INT UNSIGNED NOT NULL,
transactionType VARCHAR(32) COLLATE {$COLLATE_TEXT} NOT NULL,
oldValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
newValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
contentSource LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
metadata LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (`phid`),
KEY `key_object` (`objectPHID`)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,10 @@
CREATE TABLE {$NAMESPACE}_packages.packages_version (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
name VARCHAR(64) NOT NULL COLLATE {$COLLATE_SORT},
packagePHID VARBINARY(64) NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (phid),
UNIQUE KEY `key_package` (packagePHID, name)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,19 @@
CREATE TABLE {$NAMESPACE}_packages.packages_versiontransaction (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
authorPHID VARBINARY(64) NOT NULL,
objectPHID VARBINARY(64) NOT NULL,
viewPolicy VARBINARY(64) NOT NULL,
editPolicy VARBINARY(64) NOT NULL,
commentPHID VARBINARY(64) DEFAULT NULL,
commentVersion INT UNSIGNED NOT NULL,
transactionType VARCHAR(32) COLLATE {$COLLATE_TEXT} NOT NULL,
oldValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
newValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
contentSource LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
metadata LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (`phid`),
KEY `key_object` (`objectPHID`)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,7 @@
CREATE TABLE {$NAMESPACE}_packages.packages_publishername_ngrams (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
objectID INT UNSIGNED NOT NULL,
ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT},
KEY `key_object` (objectID),
KEY `key_ngram` (ngram, objectID)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,7 @@
CREATE TABLE {$NAMESPACE}_packages.packages_packagename_ngrams (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
objectID INT UNSIGNED NOT NULL,
ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT},
KEY `key_object` (objectID),
KEY `key_ngram` (ngram, objectID)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,7 @@
CREATE TABLE {$NAMESPACE}_packages.packages_versionname_ngrams (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
objectID INT UNSIGNED NOT NULL,
ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT},
KEY `key_object` (objectID),
KEY `key_ngram` (ngram, objectID)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_repository.repository_commit
CHANGE summary summary VARCHAR(255) NOT NULL COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1 @@
DROP TABLE {$NAMESPACE}_conduit.conduit_connectionlog;

View File

@@ -0,0 +1,8 @@
CREATE TABLE {$NAMESPACE}_repository.repository_commithint (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
repositoryPHID VARBINARY(64) NOT NULL,
oldCommitIdentifier VARCHAR(40) NOT NULL COLLATE {$COLLATE_TEXT},
newCommitIdentifier VARCHAR(40) COLLATE {$COLLATE_TEXT},
hintType VARCHAR(32) NOT NULL COLLATE {$COLLATE_TEXT},
UNIQUE KEY `key_old` (repositoryPHID, oldCommitIdentifier)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View File

@@ -0,0 +1,39 @@
<?php
$table = new PhabricatorRepositoryCommit();
$conn = $table->establishConnection('w');
$rows = queryfx_all(
$conn,
'SELECT fullCommitName FROM repository_badcommit');
$viewer = PhabricatorUser::getOmnipotentUser();
foreach ($rows as $row) {
$identifier = $row['fullCommitName'];
$commit = id(new DiffusionCommitQuery())
->setViewer($viewer)
->withIdentifiers(array($identifier))
->executeOne();
if (!$commit) {
echo tsprintf(
"%s\n",
pht(
'Skipped hint for "%s", this is not a valid commit.',
$identifier));
} else {
PhabricatorRepositoryCommitHint::updateHint(
$commit->getRepository()->getPHID(),
$commit->getCommitIdentifier(),
null,
PhabricatorRepositoryCommitHint::HINT_UNREADABLE);
echo tsprintf(
"%s\n",
pht(
'Updated commit hint for "%s".',
$identifier));
}
}

Some files were not shown because too many files have changed in this diff Show More