Мерзавец - лучшие практики (в целом, и с точки зрения бывшего пользователя SVN.)

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

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

Здесь адрес выглядит разумным. Но кто знает. Может быть, код выделяет новый буфер, освобождает старый и переключает старый адрес на новый, но при ошибке не переключает адреса, а освобождает старый адрес, вызывая доступ после освобождения. Без исходного кода невозможно узнать.

8
задан Kamil Zadora 21 January 2009 в 20:51
поделиться

3 ответа

Сотрудничество больше чем среди одного разработчика, вероятно, лучше всего сделано с помощью центрального "пустого" репозитория, который примерно походит на репозиторий в Подверсии. Совместное использование изменений между двумя или больше людьми только с их собственными репозиториями, является трудным и подверженным ошибке. Кроме того, использование центрального репозитория будет чувствовать себя более комфортно, происходя из среды Подверсии.

Одна большая вещь о Мерзавце состоит в том, что у Вас может легко быть больше чем один "общий" репозиторий. Мне настраивали мою разработку, таким образом, я сохраняю ряд пустых репозиториев на одном сервере, с которым я обычно взаимодействую ("источник" для большинства моих проектов), но для некоторых проектов я также продвигаю все это до GitHub. Я не должен выбирать, какой является единственным центральным репозиторием, я могу вытянуть и работать из репозитория GitHub и более позднего нажатия к моей собственной копии.

3
ответ дан 5 December 2019 в 22:20
поделиться

При получении учетной записи на GitHub и использовании его для поддержания некоторой работы несущественный код является отличным способом найти собственный лучший способ сделать это. Я нашел Сетевой Visualizer очень полезным для "наблюдения", что происходит, поскольку я пробую различные вещи мерзавцем.

1
ответ дан 5 December 2019 в 22:20
поделиться

Существуют ловушки к размышлению, что Мерзавец является SVN с плохим диакритическим знаком. Этот недавний вопрос демонстрирует две ловушки в Мерзавце, который мог иметь смысл в SVN:

  1. Думая это rebase в Мерзавце должен быть заменен merge. Слияние с чужими изменениями будет иногда приводить ко многим ненужным конфликтам слияния это rebase избегает.
  2. Продвижение ответвления функции в удаленный репозиторий и затем слияние там получают еще худшие результаты.

Другая главная ловушка выражается хорошо в часто задаваемых вопросах Мерзавца под "Неожиданным 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.

2
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

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