Должен ли я поставить включенный код в SCM? - PullRequest
2 голосов
/ 24 ноября 2010

Я занимаюсь разработкой веб-приложения.
Если я включаю плагин jQuery (или сам файл jQuery), он должен быть помещен в мой статический каталог, который находится в SCM, для правильного обслуживания.

Должен ли я gitignore или добавить его, даже если я не планирую что-либо изменять с его помощью?
А как насчет бинарных файлов (графических ресурсов), которые могут поставляться с ним?

Заранее спасибо за любой совет!

Ответы [ 4 ]

2 голосов
/ 24 ноября 2010

Я считаю, что всем, что нужно для правильной работы приложения, необходимо управлять.Это включает сторонний код.

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

Если вы не управляете этим в SCM или чем-то подобном, как вы гарантируете, что версии, с которыми вы разрабатываете и тестируете, совпадают?И что они такие же как производство?Отладка проблемы, вызванной различием версий, которое вы не замечаете, может быть ужасной.

1 голос
/ 24 ноября 2010

Я обычно добавляю внешние ресурсы в свой проект напрямую.Это облегчает развертывание и гарантирует, что если кто-то изменит версию этого файла в вашем проекте, у вас будет четкая история аудита того, что произошло, если это вызовет проблемы в написанном вами коде.Разработчики должны знать, чтобы не изменять эти внешние ресурсы.

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

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

0 голосов
/ 24 ноября 2010

Это зависит.

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

Аргументы в пользу:

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

  2. Если вы вносите какие-либо изменения в библиотеку, вы можете вносить эти изменения в версию с контролируемым исходным кодом, поэтому при выходе новой версии вы используете инструменты объединения исходного кода, чтобы убедиться, что ваши изменения не пропали. *

Аргументы против:

  1. Это может означать, что у каждого есть копия библиотеки локально - если только вы не подключите сторонние инструменты к центральному серверу.

  2. Развертывание может быть проблематичным - опять же, если вы не подключите сторонние инструменты к центральному серверу и не включите их в сценарий развертывания.

0 голосов
/ 24 ноября 2010

Не так много причин , а не , чтобы использовать внешние ресурсы, такие как jQuery, в своем репо:

  1. Если вы извлекаете его из jQuery при каждой проверке или развертывании, у вас меньше контроля над тем, какую версию вы используете. Это справедливо для большинства сторонних библиотек; Вы, вероятно, не хотите обновлять свои библиотеки без тестирования своего кода, чтобы увидеть, не сломалось ли оно.
  2. У вас всегда будет полная копия вашего сайта, когда вы проверяете свой репозиторий, и вам не нужно будет искать ресурсы, которые могут стать недоступными.

Для небольших (с точки зрения размера файлов) вещей, таких как jQuery и изображения, я бы просто добавил их, если вы действительно не заботитесь о пространстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...