Вы версии "производные" файлы? - PullRequest
2 голосов
/ 02 сентября 2008

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

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

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

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

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


@ Джон Лимджап поднял хороший вопрос:

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

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

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

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

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

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

Ответы [ 5 ]

4 голосов
/ 02 сентября 2008

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

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

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

2 голосов
/ 02 сентября 2008

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

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

1 голос
/ 02 сентября 2008

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

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

1 голос
/ 02 сентября 2008

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

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

0 голосов
/ 02 сентября 2008

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

...