Ищу рекомендации по SVN При создании Rails-приложений в Ubuntu [закрыто]

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

Вопрос

Сначала немного предыстории.

Я работаю на платформе MS всю свою карьеру разработчика.Еще 2 недели назад я никогда не загружал никаких других ОС, кроме 98 / XP / Vista.Я начал использовать VSS давным-давно и внес изменения в SVN около 2 лет назад.С SVN я использую TortiseSVN и использую стандартную настройку ветки / тега / магистрали.

Мои проекты также самодостаточны, что означает, что я могу перейти к новому окну разработчика, открыть один репозиторий, открыть VS, нажать F5, и он запустится (большую часть времени).Все зависимости хранятся в lib папка, исходный код которой находится в src папка и т.д...

Стремясь научиться чему-то новому, я решил создать приложение Ruby on Rails и создал машину для разработки на базе Ubuntu.У меня запущен SVN-сервер, и я работаю с другим человеком над этим проектом.Так получилось, что он использует Mac для своей машины разработки.

А теперь перейдем к проблемам.

Кажется, я борюсь с тем, как управлять различными версиями ruby, rails и всеми плагинами, с которыми я работаю.Я также, кажется, испытываю трудности с использованием SVN в Ubuntu.

Итак, Ubuntu поставляется с предустановленным Ruby.Я хочу сказать, что это версия 1.8.5.В любом случае, у меня была куча драгоценных камней для установки плагина, который я использую (движок сообщества).Будучи новичком в * nix, я не использовал sudo при их установке и столкнулся со всевозможными проблемами.В итоге я полностью выбросил Ruby из головы и начал все сначала.Казалось, это сработало.

Однако проблема в том, что после того, как я зафиксирую свой код, а другой пользователь получит последнюю версию, он должен пройти весь процесс установки gems.

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

Итак, перейдем к SVN.

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

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

Каковы некоторые рекомендации по использованию SVN в проекте RoR в Ubuntu?

Я буквально ищу пошаговый процесс в этом деле.

Редактировать Я забыл упомянуть, что я использую NetBeans для своей IDE, хотя я не смотрел, какая у нее поддержка SVN, если таковая имеется.Я посмотрел на RubyMine и с удовольствием использовал бы его, но сейчас он кажется слишком нестабильным.

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

Решение

Что касается плагинов, я бы лично рекомендовал просто поместить их в папку vendor и добавить в SVN, как если бы вы написали код самостоятельно.Piston также был отличным решением, но отказался от него, когда все распространенные плагины начали переходить на github (с тех пор piston стал ненадежным).

Что касается драгоценных камней, надеюсь, вы используете rails 2 или выше.Вы должны перечислить драгоценные камни, которые вам нужны, в своем config/environment.rb используя config.gem. Вот несколько сведений об этой функции

Это означает, что если вы добавите новый gem, то при следующем обновлении вашего коллеги его приложение rails не загружается пока у него не будут необходимые драгоценные камни.Затем он может установить их за один шаг, используя sudo rake gems:install

Вы можете сделать еще один шаг вперед и поместить свои драгоценные камни в каталог поставщиков.Это широко известно как "все для поставщика". Самый простой способ сделать это - составить список всех драгоценных камней, которые вы используете в environment.rb как указано выше, а затем запустите rake gems:unpack.Однако с этим подходом связаны 2 проблемы, поэтому я предпочитаю не использовать его сам.

  1. Если у вас есть 10 приложений, и каждое из них предоставляет свои драгоценные камни, вы в конечном итоге сохраняете 10 копий обычных драгоценных камней в subversion, что значительно замедляет обновление всех ваших сайтов.
    Возможно, для вас это не проблема, или с этим стоит смириться, это просто личные предпочтения.

  2. Некоторые драгоценные камни (такие как mongrel или hpricot) имеют собственные расширения, написанные на C.Это означает, что когда вы их устанавливаете, .c исходный код загружается, и gcc запускается для компиляции его специально для вашей системы.
    Если вы установили собственное расширение C в ubuntu, затем поместили его в папку поставщика, а позже попытались запустить его в OS X (или даже, возможно, в другой версии ubuntu), это, скорее всего, приведет к сбою вашего процесса ruby и остановке вашего приложения.
    Если все ваши драгоценные камни - чисто рубиновые, то это не проблема, просто об этом нужно знать.

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

Многие люди используют Piston или Desert для управления плагинами и установки гемов в папку локального поставщика Rail (хранится в SVN).

http://www.rubyinside.com/advent2006/12-piston.html http: // pivotallabs.com/users/brian/blog/articles/459-build-your-own-rails-plugin-platform-with-desert

Я также рекомендую использовать geminstaller, который поможет вам установить все одинаковые самоцветы и их одинаковые версии

http://geminstaller.rubyforge.org/

Я использую SVN из командной строки, но если вам удобнее использовать TortiseSVN, вы можете попробовать интегрированные среды разработки, в которых SVN прекрасно интегрирована, например RadRails и NetBeans. В среде IDE очень похожи графические менеджеры SVN, подобные Tortise, если вы хотите работать над строкой cmd, просто найдите простое 10-минутное руководство по SVN, и вам следует хорошо поработать.

Я никогда не слышал о быстрых SVN, и обычный инструмент SVN всегда работал, просто найдите меня, и вряд ли когда-либо вызываете проблему с блокировкой папок.

Орион упомянул необходимость восстанавливать драгоценные камни, которые продавались при совместном использовании их между разными ОС - вы можете использовать задачу gems: build rake, чтобы автоматически восстанавливать их.

Сначала выясните svn из командной строки. svn-book находится в сети. Это не слишком сложно сделать svn status или svn commit -m " blah " ;. Большинство проблем возникает, если вы используете функции ОС для удаления или переименования файлов. Для этого используйте команды svn.

Далее, если Rapidsvn не работает для вас, попробуйте svn-workbench. Ненавижу это говорить, но ни один из инструментов графического интерфейса Linux Linux, которые я видел, не так хорош, как tortoisesvn.

Плагины и SVN являются проблемой. Существует инструмент под названием поршень , который призван прояснить это, хотя я им не пользуюсь. Я проверяю плагины в моем каталоге vendor / plugins. Если выйдет новая версия, которая мне действительно нужна, я использую мой верный скрипт-сценарий update_plugin для обновления плагина:

#!/bin/bash

#  reinstall the plugin in an svn friendly way
plugin="some_plugin"
plugin_url="http://some_server/some_plugin/trunk"

for f in site1 site2 site3
do
  echo $f
  cd ~/rails/$f

  svn delete vendor/plugins/$plugin
  rm -rf vendor/plugins/$plugin
  svn -m "remove $plugin" commit
  script/plugin install $plugin_url
  svn add vendor/plugins/$plugin
  svn -m "add $plugin" commit

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