Есть ли способ иметь что-то вроде svn externals для файлов, хранящихся в системе контроля версий (желательно Subversion, но мне было бы интересно, возможно ли это или проще для других систем SCM).
Вот что я имею в виду. Скажем, у меня есть целая куча сценариев SQL, и они должны быть объединены в один большой сценарий для упаковки каждого выпуска. Было бы хорошо, если бы я мог создать файл для всех сценариев, а затем просто как-нибудь связать с другими файлами, и этот файл будет автоматически обновляться (после обновления SVN), когда какой-либо из упомянутых файлов изменится в Subversion. Полагаю, что связанный файл должен быть доступен только для чтения.
Думать об этом немного больше, имея слишком много файлов, вероятно, будет проще. Один для определения шаблона, а другой для самого файла.
Это может выглядеть примерно так.
Файл шаблона (возможно, расширение .sql.svntemplate или что-то в этом роде):
<external file="relative/repository/url/Script1.sql"/>
<external file="relative/repository/url/Script2.sql"/>
<external file="relative/repository/url/Script3.sql"/>
<external file="relative/repository/url/Script4.sql"/>
Конечно, это не обязательно должен быть XML.
Затем, когда вы добавляете и фиксируете файл .sql.svntemplate, Subversion автоматически создает файл только для чтения с тем же именем, за исключением расширения .svntemplate.
* 1016 Е.Г. *
DBScripts.sql.svntemplate
сгенерирует файл только для чтения с именем:
DBScripts.sql
который будет содержать содержимое всех сценариев.