Ejemplo n.º 1
0
}
$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.";
    foreach ($conflicts as $path) {
        $path = $path->parentNode->getAttribute('path');
        $message .= "\n\t{$path}";
    }
    error($message);
}
Ejemplo n.º 2
0
    error("The provided source cannot be used to update this working copy.");
}
if ($no_check_svn) {
    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}";