Я ищу способ указать, что подмножество файлов не должно быть изменено при слиянии в модификациях от конкретного ответвления, использовании Подверсии. Я нашел кого-то спрашивающего тот же вопрос, но для мерзавца.
То, что я имею, является Знатоком файлы pom.xml, которые настраиваются, когда ответвление создается и обновляется для каждого выпуска от ответвления. То, когда я объединяюсь, возвращается для транкинга от ответвления, я не хочу, чтобы изменения в этих файлах были объединены (и они на самом деле всегда будут в конфликте, поскольку номера версий были обновлены на соединительной линии также). Там какой-либо путь состоит в том, чтобы сказать подверсии принимать основу для просто этих файлов для того же эффекта в соответствии с ответом на вопрос о мерзавце?
Кто-то еще задал подобный вопрос, но поместил его в контекст, где вопросом был неправильный для выяснения (сгенерированный код).
<?php
$foo = '<img class="foo bar test" title="test image" src="http://example.com/img/image.jpg" alt="test image" width="100" height="100" />';
$array = array();
preg_match( '/src="([^"]*)"/i', $foo, $array ) ;
print_r( $array[1] ) ;
http://example.com/img/image.jpg
-121--1268189- Вы также пытались удалить его из первой модели? Я полагаю, что Rails автоматически загрузит любые файлы, которые у вас есть в каталоге lib
, без необходимости требовать
их явно.
Можно выполнить сценарий установки свойства svn: mergeinfo
в файле, чтобы пропустить изменения слияния, внесенные в ветви. (См. http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.blockchanges )
При слиянии проектов maven я использую TortoureSVN и отменяю выбор изменений в pom, сделанных плагином выпуска, поэтому он не пытается объединиться в изменениях версии. Конечно, я также хочу, чтобы другие изменения в pom были объединены, так как большинство из этих изменений являются изменениями зависимостей, и я хочу, чтобы багажник получил эти новые обновления зависимостей.
Решение в моем проекте: нет этого файла в Subversion, т.е. включить его в svn: ignore.
Если вы по-прежнему хотите предоставить общий доступ к файлу, вы можете сохранить его копию, например pom-example.xml
, под контролем версий. Для центрального файла, такого как pom.xml
, может быть допустимо, что разработчики должны скопировать файл в настоящее имя файла после новой проверки.
Если вы знаете, что файлы всегда будут конфликтовать, вы можете запустить svn merge с опцией '--accept mine-full', которая должна гарантировать, что все конфликты будут разрешены путем принятия текущей версии в вашей ветке.
Редактировать:
Я не могу придумать ничего хорошего, кроме как иметь сценарий, который знает об этих конкретных файлах и после слияния он вернет содержимое этих файлов. Это зависит от запуска его вручную при каждом слиянии.
Другой альтернативный подход - вообще не иметь этих файлов в системе управления версиями, а автоматически генерировать их как часть вашей сборки и хранить информацию о том, какие номера версий находятся в каждой ветке, в другой форме, например LDAP или Mysql, и генерировать их как часть процесса оформления заказа или сборки. Мы используем этот подход (хотя с той небольшой разницей, что мы объединяем эти изменения, но содержимое файла все равно перезаписывается при каждой сборке, поэтому вам все равно о конфликтах).