Вопрос

Использование онлайн-интерфейсов для системы контроля версий - это хороший способ опубликовать местоположение самых последних версий кода. Например, у меня здесь есть пакет LaTeX (который выпускается в CTAN всякий раз, когда проверяются изменения, чтобы он действительно работал):

http://github.com/wspr/pstool/tree/master

Сам пакет получен из одного файла (в данном случае pstool.tex), который при обработке создает документацию, readme, файл установщика и фактические файлы, которые составляют пакет при его использовании. от LaTeX.

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

Это извращение контроля версий?

<Ч>

@ Джон Лимджап поднял хорошую мысль:

  

Есть ли другой способ опубликовать созданные вами файлы в другом месте для загрузки, вместо того, чтобы полагаться на управление версиями в качестве сервера загрузки?

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

С другой стороны, @ комментарий Мадира о том, что:

  

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

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

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

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

Решение

Я использую Tortoise SVN для разработки небольших систем ASP.NET. Большая часть кода интерпретируется как ASPX, но существует около дюжины двоичных DLL, сгенерированных с помощью шага компиляции вручную. Несмотря на то, что теоретически нет необходимости иметь версионные версии этих исходных кодов, это, безусловно, позволяет обеспечить их правильное отражение в среде разработки в производственной системе (один щелчок). Также - в случае аварии - откат к предыдущему шагу снова выполняется одним щелчком мыши в SVN.

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

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

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

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

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

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

Есть ли другой способ опубликовать созданные вами файлы в другом месте для загрузки, вместо того, чтобы полагаться на управление версиями в качестве сервера загрузки?

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

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

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

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