| @@ -275,6 +275,10 @@ | ||
| 275 | 275 | return $remoteObject->getBlobId() !== $lastLocalObject->getBlobId(); | 
| 276 | 276 | } | 
| 277 | 277 | |
| 278 | + /** | |
| 279 | + * @param IndexObject $localObject | |
| 280 | + * @param IndexObject $lastLocalObject | |
| 281 | + */ | |
| 278 | 282 | protected function resolveConflict(ConflictHandlerInterface $conflictHandler, IndexObject $remoteObject, ?IndexObject $localObject, ?IndexObject $lastLocalObject): IndexObject | 
| 279 | 283 |      { | 
| 280 | 284 |          $this->logger->notice("Resolving conflict at {$remoteObject->getRelativePath()}..."); | 
| @@ -100,38 +100,32 @@ discard block | ||
| 100 | 100 |          { | 
| 101 | 101 | // locally and remotely deleted | 
| 102 | 102 | return null; | 
| 103 | - } | |
| 104 | - elseif ($lastLocalObject === null) | |
| 103 | + } elseif ($lastLocalObject === null) | |
| 105 | 104 |          { | 
| 106 | 105 | if ($remoteObject === null) | 
| 107 | 106 |              { | 
| 108 | 107 | // locally created | 
| 109 | 108 | return clone $localObject; | 
| 110 | - } | |
| 111 | - elseif ($localObject === null) | |
| 109 | + } elseif ($localObject === null) | |
| 112 | 110 |              { | 
| 113 | 111 | // remotely created | 
| 114 | 112 | return clone $remoteObject; | 
| 115 | - } | |
| 116 | - elseif ($remoteObject !== null && $localObject !== null) | |
| 113 | + } elseif ($remoteObject !== null && $localObject !== null) | |
| 117 | 114 |              { | 
| 118 | 115 | // remotely and locally created | 
| 119 | 116 | return $this->resolveConflict($conflictHandler, $remoteObject, $localObject, $lastLocalObject); | 
| 120 | 117 | } | 
| 121 | - } | |
| 122 | - elseif ($remoteObject === null) | |
| 118 | + } elseif ($remoteObject === null) | |
| 123 | 119 |          { | 
| 124 | 120 | // remotely deleted and locally changed | 
| 125 | 121 | return $this->resolveConflict($conflictHandler, $remoteObject, $localObject, $lastLocalObject); | 
| 126 | - } | |
| 127 | - elseif ($localObject === null) | |
| 122 | + } elseif ($localObject === null) | |
| 128 | 123 |          { | 
| 129 | 124 | if ($remoteObject->equals($lastLocalObject)) | 
| 130 | 125 |              { | 
| 131 | 126 | // locally deleted | 
| 132 | 127 | return null; | 
| 133 | - } | |
| 134 | - else | |
| 128 | + } else | |
| 135 | 129 |              { | 
| 136 | 130 | // remotely changed and locally deleted | 
| 137 | 131 | return $this->resolveConflict($conflictHandler, $remoteObject, $localObject, $lastLocalObject); | 
| @@ -183,8 +177,7 @@ discard block | ||
| 183 | 177 | if ($modifiedRemote || !$modifiedLocal) | 
| 184 | 178 |              { | 
| 185 | 179 | $attributes[$attribute] = $remoteObject[$attribute]; | 
| 186 | - } | |
| 187 | - else | |
| 180 | + } else | |
| 188 | 181 |              { | 
| 189 | 182 | $attributes[$attribute] = $localObject[$attribute]; | 
| 190 | 183 | } | 
| @@ -210,8 +203,7 @@ discard block | ||
| 210 | 203 | $attributes['size'] = $remoteObject->getSize(); | 
| 211 | 204 | $attributes['blobId'] = $remoteObject->getBlobId(); | 
| 212 | 205 | $attributes['hashes'] = clone $remoteObject->getHashes(); | 
| 213 | - } | |
| 214 | - else | |
| 206 | + } else | |
| 215 | 207 |              { | 
| 216 | 208 | $attributes['size'] = $localObject->getSize(); | 
| 217 | 209 | $attributes['inode'] = $localObject->getInode(); | 
| @@ -63,9 +63,7 @@ discard block | ||
| 63 | 63 | $toSetMtime[$mergedIndexObject->getRelativePath()] = $mergedIndexObject; | 
| 64 | 64 | } | 
| 65 | 65 | } | 
| 66 | - } | |
| 67 | - | |
| 68 | - elseif ($mergedIndexObject->isFile()) | |
| 66 | + } elseif ($mergedIndexObject->isFile()) | |
| 69 | 67 |              { | 
| 70 | 68 | // local file did not exist, hasn't been a file before or has outdated content | 
| 71 | 69 | $doDownloadFile = $localObject === null || !$localObject->isFile() || $mergedIndexObject->getBlobId() !== $localObject->getBlobId(); | 
| @@ -78,9 +76,7 @@ discard block | ||
| 78 | 76 | |
| 79 | 77 | $modifiedPaths[] = $mergedIndexObject->getRelativePath(); | 
| 80 | 78 | } | 
| 81 | - } | |
| 82 | - | |
| 83 | - elseif ($mergedIndexObject->isLink()) | |
| 79 | + } elseif ($mergedIndexObject->isLink()) | |
| 84 | 80 |              { | 
| 85 | 81 | if ($localObject !== null && $localObject->getLinkTarget() !== $mergedIndexObject->getLinkTarget()) | 
| 86 | 82 |                  { | 
| @@ -89,9 +85,7 @@ discard block | ||
| 89 | 85 | |
| 90 | 86 | $modifiedPaths[] = $mergedIndexObject->getRelativePath(); | 
| 91 | 87 | } | 
| 92 | - } | |
| 93 | - | |
| 94 | - else | |
| 88 | + } else | |
| 95 | 89 |              { | 
| 96 | 90 | // unknown/invalid object type | 
| 97 | 91 | throw new Exception(); | 
| @@ -284,8 +284,7 @@ | ||
| 284 | 284 |                  "size: {$this->size} B", | 
| 285 | 285 |                  "blobId: {$blobId}", | 
| 286 | 286 | ]); | 
| 287 | - } | |
| 288 | - elseif ($this->isLink()) | |
| 287 | + } elseif ($this->isLink()) | |
| 289 | 288 |          { | 
| 290 | 289 | $parts = array_merge($parts, [ | 
| 291 | 290 |                  "target: {$this->linkTarget}", |