#!/usr/bin/env php <?php /* * Copyright 2012 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ $root = dirname(dirname(dirname(__FILE__))); require_once $root.'/scripts/__init_script__.php'; if ($argc != 3 || !is_numeric($argv[1]) || !is_numeric($argv[2])) { echo "Usage: {$argv[0]} <diff_id_from> <diff_id_to>\n"; exit(1); } list(, $from, $to) = $argv; for ($diff_id = $from; $diff_id <= $to; $diff_id++) { echo "Processing $diff_id"; $diff = id(new DifferentialDiff())->load($diff_id); if ($diff) { $diff->attachChangesets($diff->loadChangesets()); $orig_copy = array(); foreach ($diff->getChangesets() as $i => $changeset) { $orig_copy[$i] = idx((array)$changeset->getMetadata(), 'copy:lines'); $changeset->attachHunks($changeset->loadHunks()); } $diff->detectCopiedCode(); foreach ($diff->getChangesets() as $i => $changeset) { if (idx($changeset->getMetadata(), 'copy:lines') || $orig_copy[$i]) { echo "."; $changeset->save(); } } } echo "\n"; } echo "Done.\n";