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

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

То, что я имею, является Знатоком файлы pom.xml, которые настраиваются, когда ответвление создается и обновляется для каждого выпуска от ответвления. То, когда я объединяюсь, возвращается для транкинга от ответвления, я не хочу, чтобы изменения в этих файлах были объединены (и они на самом деле всегда будут в конфликте, поскольку номера версий были обновлены на соединительной линии также). Там какой-либо путь состоит в том, чтобы сказать подверсии принимать основу для просто этих файлов для того же эффекта в соответствии с ответом на вопрос о мерзавце?

Кто-то еще задал подобный вопрос, но поместил его в контекст, где вопросом был неправильный для выяснения (сгенерированный код).

5
задан Community 23 May 2017 в 11:55
поделиться

3 ответа

Код

<?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 , без необходимости требовать их явно.

-121--1428305-

Можно выполнить сценарий установки свойства svn: mergeinfo в файле, чтобы пропустить изменения слияния, внесенные в ветви. (См. http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.blockchanges )

При слиянии проектов maven я использую TortoureSVN и отменяю выбор изменений в pom, сделанных плагином выпуска, поэтому он не пытается объединиться в изменениях версии. Конечно, я также хочу, чтобы другие изменения в pom были объединены, так как большинство из этих изменений являются изменениями зависимостей, и я хочу, чтобы багажник получил эти новые обновления зависимостей.

2
ответ дан 14 December 2019 в 19:13
поделиться

Решение в моем проекте: нет этого файла в Subversion, т.е. включить его в svn: ignore.

Если вы по-прежнему хотите предоставить общий доступ к файлу, вы можете сохранить его копию, например pom-example.xml , под контролем версий. Для центрального файла, такого как pom.xml , может быть допустимо, что разработчики должны скопировать файл в настоящее имя файла после новой проверки.

2
ответ дан 14 December 2019 в 19:13
поделиться

Если вы знаете, что файлы всегда будут конфликтовать, вы можете запустить svn merge с опцией '--accept mine-full', которая должна гарантировать, что все конфликты будут разрешены путем принятия текущей версии в вашей ветке.

Редактировать:

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

Другой альтернативный подход - вообще не иметь этих файлов в системе управления версиями, а автоматически генерировать их как часть вашей сборки и хранить информацию о том, какие номера версий находятся в каждой ветке, в другой форме, например LDAP или Mysql, и генерировать их как часть процесса оформления заказа или сборки. Мы используем этот подход (хотя с той небольшой разницей, что мы объединяем эти изменения, но содержимое файла все равно перезаписывается при каждой сборке, поэтому вам все равно о конфликтах).

1
ответ дан 14 December 2019 в 19:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: