Как я могу объединить новую структуру папок с SVN? - PullRequest
2 голосов
/ 04 декабря 2008

У нас есть проект, в котором поставщик создает для нас собственный код, а мы создаем бэкэнд-контент. Каждый раз, когда нам отправляют новую версию, мы вручную объединяем всю структуру папок с нашим хранилищем. Это легко для добавленных и измененных файлов (просто скопируйте / вставьте), но мне нужно создать пакетный скрипт для удаления всех удаленных файлов / папок (я использую инструмент diff, чтобы получить список удаленных файлов, затем сделать пакетный файл из этого).

Наше репозиторий SVN выглядит так:

OurProject \
--OurBackendCode \
--VendorCode \

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

Есть ли более простой способ объединить эти удаленные файлы в мое хранилище?

РЕДАКТИРОВАТЬ: Тим справедливо указывает, что если бы мы только разрешили поставщикам доступ к нашему репозиторию SVN, они могли бы внести свои изменения в филиале. К сожалению, это не мой звонок; Я просто разработчик. Кроме того, я сомневаюсь, что мы им доверяем (я ничего не знаю о безопасности SVN).

2-е РЕДАКТИРОВАНИЕ: В итоге мы просто удалили существующую ветку поставщика и просто добавили новый код поставщика. Но у меня возникла идея предоставить поставщику доступ к нашему SVN, и он обещает:)

Ответы [ 5 ]

2 голосов
/ 04 декабря 2008

Было бы намного проще, если бы вы могли предоставить им SVN доступ к нужным им папкам и позволить им управлять им. : -)

Дох, Тим нажал на Пост раньше, чем я!

Единственный способ упорядочить то, что вы делаете, - это сценарий всего процесса запуска diff, получения удаленных / удаленных файлов и передачи их в svn -delete. Тогда по крайней мере у вас будет 1 команда для запуска с исходной и целевой папками.

В идеале вы хотите просто предоставить удаленным разработчикам доступ к SVN, как сказал Тим, и дать им ветку, если вы не можете заблокировать папки, но тогда вы все равно будете выполнять слияния (с веткой). 1007 *

2 голосов
/ 04 декабря 2008

Для меня это звучит так: Ветви поставщика , где каждый последующий импорт кода поставщика получает новую версию.

Таким образом, нет никаких удалений для управления, и вы можете использовать Subversion для сравнения версии 1.0 с 2.0 и т. Д.

2 голосов
/ 04 декабря 2008

Почему вы не разрешаете им доступ к вашему репозиторию SVN - возможно, к филиалу, а затем вы сливаетесь с вашим?

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

1 голос
/ 19 апреля 2011

Создайте репозиторий verdor (отдельно от вашего репозитория разработки) и попросите поставщика сбросить ревизии с момента доставки предыдущей версии. На вашем сайте вы можете просто загрузить его обратно в репо продавца. Легко и просто.

0 голосов
/ 04 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...