/** * @param $destination * @param $source * @return bool */ function is_valid_merge_source($destination, $source) { if (is_trunk($destination)) { return is_stable($source); } if (is_experimental($destination)) { return is_trunk($source); } return false; }
// // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // $Id$ require dirname(__FILE__) . '/svntools.php'; // Perform basic checks info("Verifying..."); if (!isset($_SERVER['argc']) || $_SERVER['argc'] != 2) { error("Missing argument. Expecting branch to merge as argument.\n\nExamples:\n\tbranches/experimental/foobar"); } $local = get_info('.'); if (!isset($local->entry)) { error("Local copy not found."); } $destination = $local->entry->url; if (!is_trunk($destination)) { error("This script is likely not to be appropriate for this working copy. This script can be used in:\n\ttrunk"); } $source = full($_SERVER['argv'][1]); if (!is_experimental($source)) { error("The provided source cannot be used to update this working copy. Only experimental branches can be used."); } if (has_uncommited_changes('.')) { error("Working copy has uncommited changes. Revert or commit them before merging a branch."); } $revision = (int) get_info($destination)->entry->commit['revision']; $last = find_last_merge($source, $destination); $sDest = short($destination); $sSource = short($source); if ($last !== $revision) { error("You must branchupdate {$sSource} from {$sDest} before merging.");