Не видя исходного кода, невозможно узнать, что он может сделать, если обнаружит ошибку нехватки памяти. Конечно, существует множество программ, которые не проверяют каждое выделение памяти на предмет сбоев, и в результате их код может полностью сойти с рельсов.
Самым распространенным результатом ошибки «нехватка памяти», которая не проверяется, является нарушение доступа, но обычно оно происходит по адресу, который либо очень мал, либо имеет какой-то очевидный бессмысленный шаблон. Это связано с тем, что многие функции выделения памяти возвращают ноль, когда им не хватает памяти, и невозможность проверки может привести к доступу к адресу возле возвращаемого значения. Кроме того, некоторые функции оставляют результат неинициализированным и возвращают отдельную ошибку. Неспособность проверить эту ошибку может привести к использованию неинициализированного значения для доступа к памяти, что обычно выглядит очень странно.
Здесь адрес выглядит разумным. Но кто знает. Может быть, код выделяет новый буфер, освобождает старый и переключает старый адрес на новый, но при ошибке не переключает адреса, а освобождает старый адрес, вызывая доступ после освобождения. Без исходного кода невозможно узнать.
Сотрудничество больше чем среди одного разработчика, вероятно, лучше всего сделано с помощью центрального "пустого" репозитория, который примерно походит на репозиторий в Подверсии. Совместное использование изменений между двумя или больше людьми только с их собственными репозиториями, является трудным и подверженным ошибке. Кроме того, использование центрального репозитория будет чувствовать себя более комфортно, происходя из среды Подверсии.
Одна большая вещь о Мерзавце состоит в том, что у Вас может легко быть больше чем один "общий" репозиторий. Мне настраивали мою разработку, таким образом, я сохраняю ряд пустых репозиториев на одном сервере, с которым я обычно взаимодействую ("источник" для большинства моих проектов), но для некоторых проектов я также продвигаю все это до GitHub. Я не должен выбирать, какой является единственным центральным репозиторием, я могу вытянуть и работать из репозитория GitHub и более позднего нажатия к моей собственной копии.
При получении учетной записи на GitHub и использовании его для поддержания некоторой работы несущественный код является отличным способом найти собственный лучший способ сделать это. Я нашел Сетевой Visualizer очень полезным для "наблюдения", что происходит, поскольку я пробую различные вещи мерзавцем.
Существуют ловушки к размышлению, что Мерзавец является SVN с плохим диакритическим знаком. Этот недавний вопрос демонстрирует две ловушки в Мерзавце, который мог иметь смысл в SVN:
rebase
в Мерзавце должен быть заменен merge
. Слияние с чужими изменениями будет иногда приводить ко многим ненужным конфликтам слияния это rebase
избегает.Другая главная ловушка выражается хорошо в часто задаваемых вопросах Мерзавца под "Неожиданным Beharviour":
A quick rule of thumb is to *never* push into a repository
that has a work tree attached to it, until you know what you are doing.
Где-нибудь в Страницах справочника мягко объяснено, что это может "привести к неожиданным результатам". Как потеря всей чужой работы.
Этот Мерзавец Интенсивный курс SVN упростит Ваш переход к Мерзавцу при тихом размышлении в SVN.