Отмена определенных ревизий в Subversion

Ну, это просто 4-х шаговый простой процесс,

Надеюсь, он поможет

Step 1. Хранить ссылку на объект XMLHttpRequest

var xmlHttp = createXmlHttpRequestObject();

Step 2. Получить объект XMLHttpRequest

function createXmlHttpRequestObject() {
    // will store the reference to the XMLHttpRequest object
    var xmlHttp;
    // if running Internet Explorer
    if (window.ActiveXObject) {
        try {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            xmlHttp = false;
        }
    }
    // if running Mozilla or other browsers
    else {
        try {
            xmlHttp = new XMLHttpRequest();
        } catch (e) {
            xmlHttp = false;
        }
    }
    // return the created object or display an error message
    if (!xmlHttp)
        alert("Error creating the XMLHttpRequest object.");
    else
        return xmlHttp;
}

Step 3. Сделать асинхронный HTTP-запрос с использованием объекта XMLHttpRequest

function process() {
    // proceed only if the xmlHttp object isn't busy
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
        // retrieve the name typed by the user on the form
        item = encodeURIComponent(document.getElementById("input_item").value);
        // execute the your_file.php page from the server
        xmlHttp.open("GET", "your_file.php?item=" + item, true);
        // define the method to handle server responses
        xmlHttp.onreadystatechange = handleServerResponse;
        // make the server request
        xmlHttp.send(null);
    }
}

Step 4. Выполнено автоматически, когда сообщение получено с сервера

function handleServerResponse() {

    // move forward only if the transaction has completed
    if (xmlHttp.readyState == 4) {
        // status of 200 indicates the transaction completed successfully
        if (xmlHttp.status == 200) {
            // extract the XML retrieved from the server
            xmlResponse = xmlHttp.responseText;
            document.getElementById("put_response").innerHTML = xmlResponse;
            // restart sequence
        }
        // a HTTP status different than 200 signals an error
        else {
            alert("There was a problem accessing the server: " + xmlHttp.statusText);
        }
    }
}
30
задан neves 8 July 2013 в 19:12
поделиться

3 ответа

Отменить изменения 118 и 120:

svn up -r HEAD       # get latest revision
svn merge -c -120 .  # undo revision 120
svn merge -c -118 .  # undo revision 118
svn commit           # after solving problems (if any)

Также см. описание в Отменяющие изменения .

Примечание минус в -c -120 аргумент. -c (или --change) переключатель поддерживается начиная с Подрывной деятельности 1.4, более старые версии могут использовать -r 120:119.

32
ответ дан Bruno De Fraine 8 July 2013 в 19:12
поделиться
  • 1
    Увеличение Вашего сокета ограничивает won' t фиксируют утечку хотя, it' ll только мешают Вашему приложению отказывать на некоторое время дольше. – jpillora 14 August 2013 в 00:10

Я предполагаю, что Вы могли создать ответвление из пересмотра 117, затем объединить все кроме 118 и 120.

svn copy -r 117 source destination

Тогда контроль это ответвление и оттуда делают svnmerge.py merge -r119,120-123

РЕДАКТИРОВАНИЕ: Это не отменяет изменения в ответвлении/соединительной линии. Используйте svn merge вместо этого.

-2
ответ дан Christian Davén 8 July 2013 в 19:12
поделиться
  • 1
    @Robert, Иногда увеличивающий ulimit, является на самом деле решением, как то, если это было в 256, и у Вас был интенсивный трафик, хотя I' m мой случай я неоднократно открывал пары файла и никогда не закрывал их, я поймал эту утечку с lsof-p < узлы pid>. если это перестало работать, можно использовать izaacs модуль корректной фс – jpillora 23 August 2013 в 15:59

Существует более простой путь при использовании TortoiseSVN, клиента Windows для Подрывной деятельности. Вы просто нажимаете, чтобы просмотреть журнал в Вашей обновленной рабочей копии, выбрать изменения, которые Вы хотите отменить, щелкнуть правой кнопкой, и выбор "Возвращается изменения от этих изменений".

Это - безопасная работа, потому что изменения применяются только в Вашей рабочей области. Все еще необходимо фиксировать изменять репозиторий.

Это - одна из лучших функций TortoiseSVN. Я всегда был парнем командной строки, но Черепаха передумала.

8
ответ дан neves 8 July 2013 в 19:12
поделиться
  • 1
    @jpillora, что Вы предлагаете предотвратить утечку? I' ve точно та же проблема и я don' t хотят, фиксируют его путем увеличения ulimit, потому что, как Вы записали, it' s временно фиксируют. – Rob 22 August 2013 в 11:45
Другие вопросы по тегам:

Похожие вопросы: