2009-06-01 2 views
4

В настоящее время я использую Perforce локально на своем компьютере дома и на моем компьютере на работе, и я очень доволен этим. Но я хочу поделиться SCM Love с моими коллегами, и мы собираемся (может быть) добавить третьего разработчика. С включением третьего лица мы не можем продолжать использовать бесплатную версию Perforce. Я не против оплаты, но 900 долларов за место слишком круто для компании, в которой я работаю.Решение о программном обеспечении для управления исходным кодом

Теперь, я знаю, что существует сильное следование для SVN здесь, на StackOverflow, и я это уважаю. Но когда я изучал это раньше, мне не нравились определенные аспекты. Например, в Perforce, если я пытаюсь проверить файл, который необходимо синхронизировать или объединить, он попросит меня сделать это перед проверкой, и я получу визуальный инструмент для управления слиянием. IIRC, в SVN, когда вы регистрируетесь в файлах, он автоматически сливается для вас, что может не иметь таких же последствий, которые вы ожидаете. Я свободно признаю, что, возможно, помню это неправильно.

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

И, конечно же, это абсолютно необходимо плагин для Visual Studio 2008.

Учитывая эти требования, вы по-прежнему рекомендуем SVN или вы могли бы порекомендовать другой продукт?

ответ

8

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

Subversion будет сливаться для вас, если он будет уверен в изменениях, но оставит соответствующие конфликты самостоятельно для объединения вручную. Я не видел, чтобы многие плохие слияния выполнялись автоматически.

И да, я бы порекомендовал Subversion, если вам нужна поддержка VS (для чего я бы рекомендовал VisualSVN, лично - не бесплатно, а очень дешево). Мне нравится Git, но у меня нет хорошей интеграции VS, о которой я знаю.

+0

Эй, Джон, чтобы уточнить, в SVN, если вы не синхронизированы, вы будете обновлять локально, вызывая слияние в вашей системе. Затем (говоря, что вам не нужно повторно редактировать файлы, чтобы настроить выход слияния), вы должны передать файлы в репозиторий? –

+0

Точно. SVN сообщит вам, какие файлы он объединяет, и вам решать, чтобы изменения были в порядке (как это было бы в любом VCS). –

+0

Я использую ankhsvn дома, и это бесплатно. http://ankhsvn.open.collab.net/ –

0

SourceGear Vault прекрасно сочетается с VS 2008 и делает все, о чем вы просите.

$ 249 за место (предоставляются скидки по объему), и он подскажет вам, нужно ли слияния файлов. Кроме того, у него отличный инструмент Diff/Merge.

Это бесплатно для одного пользователя, поэтому дайте ему шанс и посмотрите, соответствует ли он вашим требованиям.

+0

Хмм, $ 249 - неплохая цена. Конечно, намного лучше, чем 900 долларов, которые мои любимые обвинения в Перфорсе. –

+0

Отличный инструмент для разложения слияния, упомянутый здесь, также представляет собой бесплатную загрузку с SourceGear, которую вы можете использовать с другими системами SCM :) –

1

Кроме того, я, похоже, помню, что SVN основан на папках, а не на базе файлов?

svn хранит репозиторий .svn для каждой папки, но вы можете добавить отдельные файлы в папку. Он также имеет хорошие правила для автоматического поиска/игнорирования файлов на основе расширения.

Ankhsvn делает визуальную интеграцию студии, лично я предпочитаю интеграцию с исследователем, но это зависит только от того, как вы работаете.

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

+0

+1 - Мы используем те же инструменты. прекрасно работает! –

1

см предварительной нити для обсуждения мерзавца + визуальной студии: Using Git with Visual Studio

+2

Я переключился с svn на git в прошлом году и был действительно доволен этим. – klochner

0

Я согласен с Джоном Скит. (не все ?!) - ;-)

SVN все еще отличный выбор для вас. Вы можете использовать визуальный инструмент, такой как TortoiseSVN, для обработки вашего взаимодействия с SVN и в том числе веб-клиента хранилища, такого как ViewVC, является хорошим вариантом, если вы хотите получить доступ/просмотреть репозитории из своих браузеров.

Существует также куча расширяемости, встроенная в SVN. Вы можете добавлять все виды пользовательских действий к любым событиям pre-commit или post-commit (и многим другим).

Визуальный SVN, упомянутый Jon или Ankh SVN, является жизнеспособным решением для интеграции Visual Studio.

1

Я сейчас использую Perforce локально на компьютере дома и на моем компьютере на работе, и я очень доволен, что

Похоже DVCS мне (Distributed Control Version). Git или Mercurial могли бы окончательно помочь, так как они отлично масштабировались бы с количеством разработчиков. Просто определите центральный репозиторий. Git фактически может work with VisualStudio

в Perforce, если я пытаюсь проверить в файле, который должен быть синхронизирован или сливались, она попросит меня сделать это перед проверкой в ​​

Это так при работе в том же файле в той же ветке. С инструментами DVCS вы должны создать свой локальный ветвь и управлять всякий раз, когда хотите объединить другие работы в вашей текущей ветке (rebase) или просто объединить свою работу с общей ветвью (слияние).

Поэтому я бы рекомендовал инструмент DVCS, а не инструмент централизованного репозитория в этом случае.

1

Мы являемся специализированным магазином и используем MS sourcesafe в течение длительного времени, прежде чем отказаться от него из-за множества проблем, когда вы выходите за определенный размер.

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

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

Мы используем Ankhsvn по сравнению с 2008 годом, а иногда и черепаху svn. Мы тестировали визуальный svn, но обнаружили, что Ankhsvn достаточно хорош (хотя я не уверен, что он поддерживает переименование файлов и историю слияния!)

2

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

Как я понимаю, основные причины для использования Perforce являются:

  • Зрелые слияния трекинга. SVN еще не совсем там.
  • Превосходная команда поддержки (Кажется, я всегда получаю ответы в течение часа или около того)
  • Скорость.

Сказав это, я считаю, что SVN будет простым способом, если вы хотите немного уменьшить свои ожидания в вышеуказанных областях, по крайней мере, на данный момент. Из-за этого я, вероятно, поплачу, но так будет. Вам просто нужно решить, что вы готовы платить с точки зрения времени и денег - если вы являетесь тяжелым пользователем разветвления и слияния, это может быть связано с тем, что возможности филиала/слияния Perforce окупятся.

Еще одна вещь, которую следует учитывать при разработке OSS, заключается в том, что Perforce фактически предлагает бесплатное лицензирование для разработки с открытым исходным кодом.

+0

Скорость? Мне потребовался один час загрузки, чтобы создавать проекты из туловища с 24.308 файлами в 4787 папках (890 МБ), подключенных через линию с 75 Мбит/с (согласно http://www.speedtest.net/) с плагином Perforce Eclipse. По сравнению с сырой загрузкой appx. 890 МБ/7,5 Мбит/с ≈ 120 с ... Конечно, это также зависит от скорости загрузки сервера, но в 30 раз дольше? –

+0

Попытайтесь сначала заполнить рабочую область из командной строки; Я не уверен в производительности P4Eclipse. Вы также можете попробовать, если может помочь опция '--parallel' команды' p4 sync'. В качестве дополнительной заметки Perforce теперь также имеет встроенные функции DVCS. – rjnilsson

+0

Если вы заполняете рабочую область из P4V, плагин Perforce Eclipse не отображает информацию о ревизии справа от файлов. Разве это отличается от инструмента линии cmd? У меня есть копия указанного сундука в ветке dev. Я ничего не изменил в этой ветке. Я объединил/интегрировал, чтобы получить последние версии из багажника. Тем временем я принял душ, поэтому не знаю, сколько времени прошло. Однако был список изменений, содержащий 160 записей. Потребовалось 40 секунд, чтобы отправить этот список изменений. И все это произошло только на сервере. Извините, но вы меня не убедите. –

0

Re-Perfoce vs SVN: Mercurial выглядит неплохо, если вы хотите иметь возможности отслеживания слияния от Perforce и все остальное от Subversion.

Смежные вопросы