Есть ли способ автоматического возобновления при фиксации Subversion? - PullRequest
1 голос
/ 20 сентября 2011

Я часто получаю ошибки транзакции при фиксации.Насколько я знаю, они являются результатом коммитов, которые терпят неудачу на полпути.Есть ли способ, предпочтительно с использованием графического интерфейса, такого как TortoiseSVN, который будет автоматически возобновлять коммит, если он не выполнен, и будет повторять попытки до тех пор, пока все не будет зафиксировано?

Пример неудачной фиксации:

Не удалось выполнить фиксацию (подробности приведены ниже): PUT из файла /svn/namcloud/!svn/wrk/02b0f9ff-2510-a147-892a-2ee0b7b442dc/src/sites/all/modules/globalredirect/LICENSE.txt ': не удалось прочитатьтело ответа: существующее соединение было принудительно закрыто удаленным хостом.(http://XXX.XXX.XXX)

Ответы [ 5 ]

3 голосов
/ 20 сентября 2011

Это не совсем автоматически, но есть флажок TortoiseSVN -> Settings... -> Dialogs 2 -> Reopen commit and branch/tag dialog after a commit failed. Это немного уменьшает раздражение, автоматически воскрешая ваше сообщение.

«Существующее соединение было принудительно закрыто удаленным хостом», вероятно, указывает RST, возвращающееся по соединению TCP / IP. Это может быть сгенерировано чем-либо между вами и удаленным хостом.

Я бы порекомендовал взять что-то вроде Wireshark и посмотреть, есть ли что-нибудь сразу очевидное. (Этот вид диагноза сложен, если вы к нему не привыкли, но все же стоит взглянуть все же.)

Как предположил А.Х., вы можете связаться с администратором сервера. Возможно, некоторые свидетельства тайм-аута соединения могут отображаться в журналах их веб-сервера или брандмауэра, или может быть сразу очевидная настройка тайм-аута, например, директива конфигурации SSL.

3 голосов
/ 05 июня 2012

К сожалению, у нас не всегда есть выбор того, что мы используем, или какую поддержку / управление мы имеем на стороне сервера вещей.

Еще один «более злой» способ - создать скрипт, который фиксирует каждый файл в дереве по отдельности , снова и снова, пока все они не преуспеют.

Конечно, при большом коммите кто-то может жаловаться, что существует более 100 идентичных сообщений журнала, по одному для каждого файла, и, как и при большом коммите RCS / CVS, люди будут «обновляться» и получать что-то «между» начало коммита и финиш, но затем вы можете рассказать им о своих проблемах и о «решении», к которому вы были вынуждены прибегнуть, чтобы ПОЛУЧИТЬ РАБОТУ, несмотря на плохое управление и поддержку.

К сожалению, для особо больших файлов или особенно «плохих» проблем с сетью это может не сработать.

В худшем случае все остальные участники проекта тоже просят вас за сценарий.

Или, я думаю, кто-то может «уволить» вас за это. Но это, вероятно, будет лучшим результатом, чем работа в такой среде, которая саботирует все ваши усилия по достижению целей, а затем заставляет вас «отвечать», когда вы пытаетесь преодолеть их препятствия, чтобы добиться цели.

2 голосов
/ 18 февраля 2013

TortoiseSVN -> Настройки ... -> Диалоги 2 -> Повторно открыть коммит и диалог ветки / тега после неудачной фиксации

Я думаю, что эта функция была удалена. Я не вижу эту опцию в TortoiseSVN 1.7.11 Build 23600

2 голосов
/ 20 сентября 2011

«Транзакция» или «атомарный коммит» в SVN - это все или ничего. Поэтому нет auto_ резюме . Все, что вы можете сделать, это начать регистрацию с самого начала.

Лучшее решение - поговорить с соответствующим администратором сервера, чтобы выяснить и устранить причину. Лечить только симптомы никогда не бывает хорошей идеей.

0 голосов
/ 08 декабря 2018

Проблема заключается в том, что некоторые сетевые поставщики разрывают соединение после короткого времени ожидания.Жалуйте все, что вы хотите в отеле в Китае (или Роджерсу в Канаде), они не собираются это исправить.К сожалению, когда фиксация прерывается, все уже загруженные файлы теряются.Таким образом, невозможно выполнить коммит.

...