Каково обоснование позади рекомендуемого расположения для репозиториев Подверсии?

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
17
задан Community 23 May 2017 в 12:26
поделиться

7 ответов

Основное различие между рекомендуемым расположением и Вашим предложенным расположением - то, что рекомендуемое расположение несколько самодокументирует как, туда, где фиксировать вещи, и как оно ведет себя.

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

С предложенным расположением, некоторые из этих вещей являются менее бесспорными./development/stable переходится от / тока? Каково отношение между/development/stable и/production/stable? Какой из этих каталогов является тегами, и которые я могу на самом деле проверить материал в?

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

18
ответ дан 30 November 2019 в 12:14
поделиться

Я попытаюсь подвести итог ответов до сих пор:

<час>

Простой

  1. "классическое" расположение ( соединительная линия / + ответвления / + теги / ) имеет преимущество growable простоты
  2. , Соединительная линия является (обычно) основной строкой разработки
  3. , Ответвления проявляют внимание к специальным нуждам развития, таким как сложные подпроекты и обслуживание после выхода
  4. , Теги фиксируются, неизменные сообщения маркера
  5. , Это классическое расположение известно, таким образом, Ваши разработчики входят в курс дела быстрее

Расширяемый

  1. , разработка Поставщика продуктов, интегрированных в Вашу разработку (возможно, с адаптацией), может, при необходимости быть обработанной как ответвление поставщика (обычно, каждый достаточно)
  2. , ось "Процесса" (Например, Разработка, Тест, если сделано отдельно, QA, если используется и Производство) может быть обработана соответствующим ответвлением или конвенциями тега (в зависимости от того, требуются ли какие-либо изменения или разрешаются внешнюю "Разработку").
  3. Эти дополнительные наборы ответвлений могут быть обработаны соглашениями о присвоении имен, или дополнительным уровнем каталога в теги / или ответвления / .

Видят Другие Вопросы

  1. , Что действительно переходит, отмечает и соединяет магистралью действительно средний?
  2. , Что такое хорошее расположение репозитория для выпусков и проектов в Подрывной деятельности?
  3. Вы используете конвенцию соединительной линии тегов ответвлений?
<час>

я сделал это общественным ответом; не стесняйтесь исправлять или расширять любые дефициты, за которые я приношу извинения.

9
ответ дан 30 November 2019 в 12:14
поделиться

Вы описали две в значительной степени стандартных модели для организации репозитория: dev-test-prod и магистральное ответвление. Eric Sink делает хорошее задание описания их в его ПРАКТИЧЕСКОЕ РУКОВОДСТВО Управления исходным кодом . Одна вещь отметить состоит в том, что способ, которым большинство людей использует магистральное ответвление, состоит в том, чтобы создать ответвление для каждой версии, поскольку это выпущено клиентам, который затем становится ответвлением обслуживания.

я был бы склонен предпочитать магистральное ответвление, так как оно не требует, чтобы миграция каждого изменения от разработки протестировала к производству. Только изменения, которые должны быть бэкпортированы к ответвлениям maintance или bugfixes, которые мигрируют от ответвления maintance до соединительной линии, должны быть перемещены.

Однако одно обстоятельство было dev-test-prod, могло бы быть предпочтительным, находится в веб-разработке, где понятие версий, выпущенных клиентам, действительно не существует. Напоминание, в этом случае, было бы тем, что работает на сервере прямо сейчас, в то время как код работается на в dev и тесте и постоянно перемещается в приложение, вместо того, чтобы быть выпущенным в одном большом блоке.

5
ответ дан 30 November 2019 в 12:14
поделиться

Я думаю, неоднозначность гибкости и предотвращения является Вашим ответом.

При помощи номеров версий Вы не связываете себя туда, где та версия развертывается.

, Например, у Вас могло бы быть версия 1.3, которая развертывается как разработка, 1.2, который находится в тесте и 1.1, который работает. Если бы Вы хотели Вас, то могла бы легко добавить другая среда подготовки для другой версии, не имея необходимость изменять Ваше расположение подверсии.

Никто не может аргумент, какова версия 1.1 кода, но "стабильная производством" версия неоднозначна.

2
ответ дан 30 November 2019 в 12:14
поделиться

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

0
ответ дан 30 November 2019 в 12:14
поделиться

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

0
ответ дан 30 November 2019 в 12:14
поделиться

Я думаю, что Ваш план довольно хорош, действительно. Как Вы объясните ответвления, где программист блуждает прочь на их собственном просто попытка чего-то? Возможно, как/development/jfm3-messing-around?

-1
ответ дан 30 November 2019 в 12:14
поделиться
Другие вопросы по тегам:

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