Ну, это просто 4-х шаговый простой процесс,
blockquote>Надеюсь, он поможет
Step 1.
Хранить ссылку на объект XMLHttpRequestvar xmlHttp = createXmlHttpRequestObject();
Step 2.
Получить объект XMLHttpRequestfunction 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-запрос с использованием объекта XMLHttpRequestfunction 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); } } }
Отменить изменения 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
.
Я предполагаю, что Вы могли создать ответвление из пересмотра 117, затем объединить все кроме 118 и 120.
svn copy -r 117 source destination
Тогда контроль это ответвление и оттуда делают svnmerge.py merge -r119,120-123
РЕДАКТИРОВАНИЕ: Это не отменяет изменения в ответвлении/соединительной линии. Используйте svn merge
вместо этого.
Существует более простой путь при использовании TortoiseSVN, клиента Windows для Подрывной деятельности. Вы просто нажимаете, чтобы просмотреть журнал в Вашей обновленной рабочей копии, выбрать изменения, которые Вы хотите отменить, щелкнуть правой кнопкой, и выбор "Возвращается изменения от этих изменений".
Это - безопасная работа, потому что изменения применяются только в Вашей рабочей области. Все еще необходимо фиксировать изменять репозиторий.
Это - одна из лучших функций TortoiseSVN. Я всегда был парнем командной строки, но Черепаха передумала.