51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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";
 | 
