Вопрос

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

Обновлять: Просто для уточнения.Это предоставленные клиентами изображения продуктов, которые они вводят/изменяют.

Это было полезно?

Решение

Я согласен с «ни в коем случае».

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

Другие советы

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

  • Изображения меняются?
  • Связаны ли изменения с чем-то еще?
  • Могут ли быть допущены ошибки?
  • Желательна/нужна ли прослеживаемость?

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

Если изображения генерируются, контролируйте версии генератора.

Вероятно, вы говорите о контенте, который будет классифицироваться как пользовательские данные, а не как файлы проекта.Этот материал, хотя и важен, не нуждается в версионировании — для этого нужен простой старый механизм резервного копирования.

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

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

Если это не так и ваш веб-сайт статичен, то я бы сделал это только потому, что это «часть сайта».

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

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

/common_ancestor
   /project_code/      # repository a
   /resources_dir/     # repository b

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

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

Если вы не собираетесь предоставлять информацию о версиях клиентам, какой в ​​этом смысл?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top