Что мне следует делать с каталогом поставщиков в отношении subversion?

StackOverflow https://stackoverflow.com/questions/119006

  •  02-07-2019
  •  | 
  •  

Вопрос

Итак, у меня проблема.Я проверил свои замороженные драгоценные камни и рельсы, хотя вам и не положено этого делать.Я подумал, что это несложно и в любом случае не будет иметь такого уж большого значения.Что ж, позже я обновил rails и при этом удалил все файлы .svn в каталогах vendor / rails.Я слышал, что на самом деле я следует do - это просто сделать что-то, связанное с svn: externals для моего каталога поставщиков.Что именно мне нужно сделать и будет ли capistrano по-прежнему использовать мои замороженные драгоценные камни, если их нет в моем репозитории?Если он не будет использовать мои замороженные драгоценные камни, как я могу правильно восстановить эти файлы .svn, потому что это будет повтори это снова.

Спасибо!

Это было полезно?

Решение

  1. Чтобы восстановить удаленные файлы .svn каталоги, просто запустите svn update.Они вернутся.

  2. Я просто проверяю экспортированные драгоценные камни.Я использую gem unpack <gemname> в vendor/gems каталог и svn add и commit оттуда.

  3. Что-нибудь в vendor/plugins или vendor/rails Я отслеживаю с помощью поршня.Например, вот как я вставляю туда rails:

    % piston import http://dev.rubyonrails.org/svn/rails/tags/rel_2-0-2/ vendor/rails

Чтобы получить поршень, используйте gem install piston.

Примечание. Мне придется найти другое / лучшее решение для замены piston, поскольку Rails продолжает использовать git и может не обновлять репозиторий subversion.

Другие советы

Лично я неравнодушен к использованию Поршень для управления каталогом поставщиков.

Я бы посоветовал отказаться от svn:externals по двум причинам

  1. возможно, вы выполняете развертывание в среде, которая не может получить доступ к этим службам svn

  2. что происходит, когда вы хотите развернуть, а эти внешние svn не работают?

Мой совет - используйте piston или gem unpack и управляйте производственными зависимостями в дереве поставщиков.

Отказ от ответственности:Я не знаком с Ruby / Rails, поэтому я не знаю, что такое замороженные драгоценные камни (хотя я предполагаю, что это скомпилированные двоичные файлы или токенизированный исходный код), но я хорошо знаю Subversion.

каталоги .svn содержат только "бухгалтерию" Subversion.Там нет ничего такого, что было бы невозможно восстановить.

Удаление ваших SVN-файлов вообще не является проблемой.Если каталоги с отсутствующими каталогами .svn находятся где-то внутри дерева каталогов в вашей рабочей копии subversion (каталог, в который вы выполнили проверку), просто удалите эти каталоги, выполните обновление svn, и они будут созданы заново.

Если во всем дереве отсутствуют файлы .svn, удалите все дерево и снова выполните проверку svn.

svn: externals - это что-то вроде "символической ссылки".У вас есть проект A и проект B, который использует проект A.Что вы делаете, это добавляете свойство svn:external, которое ссылается на каталог библиотеки проекта A, поэтому всякий раз, когда вы проверяете проект B, он автоматически помещает в него каталог библиотеки из проекта A.Например, у меня часто есть каталог под названием "thirdparty", в котором хранятся внешние ссылки на библиотеки из других источников, включая evn: внешние ссылки на другие проекты в subversion.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top