示例#1
0
文件: svnmerge.php 项目: rjsmelo/tiki
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.");
}
// Proceed to update
info("Updating...");
update_working_copy('.');
// Do merge
info("Merging...");
incorporate($destination, $source);
important("After verifications, commit using a meaningful message for this feature.");
$conflicts = get_conflicts('.');
if ($conflicts->length > 0) {
    $message = "Conflicts occurred during the merge. Fix the conflicts and start again.";
示例#2
0
<?php

// (c) Copyright 2002-2010 by authors of the Tiki Wiki/CMS/Groupware Project
//
// 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
if (!isset($_SERVER['argc']) || $_SERVER['argc'] != 2) {
    error("Missing argument. Expecting branch to review as argument.\n\nExamples:\n\tbranches/experimental/plugin_ui");
}
$source = full($_SERVER['argv'][1]);
$trunk = full('trunk');
if (!is_experimental($source)) {
    error("This script is only valid to review experimental branches.");
}
$last = find_last_merge($source, $trunk);
if (!$last) {
    error("Could not find previous merge.");
}
$eS = escapeshellarg($source);
$eT = escapeshellarg($trunk);
passthru("svn diff {$eT}@{$last} {$eS}");
示例#3
0
    important('Note: Not checking uncommitted changes. Make sure you commit the right files!');
} else {
    if (has_uncommited_changes('.')) {
        error("Working copy has uncommited changes. Revert or commit them before merging a branch.");
    }
}
// Proceed to update
if ($ignore_externals) {
    important('Note: Updating but ignoring external libraries - only use this if you are sure this working copy is up to date.');
} else {
    info("Updating...");
}
update_working_copy('.', $ignore_externals);
$revision = (int) get_info($source)->entry->commit['revision'];
// Do merge
info("Merging...");
$last = find_last_merge('.', $source);
if (!$last) {
    error("Could not find previous merge. Impossible to merge automatically.");
}
merge('.', $source, $last, $revision);
important("After verifications, commit using `svn ci -F svn-commit.tmp`");
$conflicts = get_conflicts('.');
if ($conflicts->length > 0) {
    $message = "Conflicts occurred during the merge. Fix the conflicts and start again.";
    foreach ($conflicts as $path) {
        $path = $path->parentNode->getAttribute('path');
        $message .= "\n\t{$path}";
    }
    error($message);
}