2009-11-26 3 views
4

Мне отчаянно нужен источник управления для управления проектами между несколькими разработчиками.Какая система управления источником?

Давным-давно я использовал Visual Source Safe, и он работал достаточно хорошо.

Какие бесплатные заменители можно рекомендовать? У меня есть следующие основные требования:

  • Мне нужно разместить репозиторий на моем собственном сервере.
  • Я не хочу лишнего беспорядка в своих исходных файлах, например, CVS.
  • Мне нужна надлежащая проверка/проверка, чтобы никто не мог изменить модуль, пока я не проверил его.
  • Не хочу/нужен слияние/разветвление исходного кода.

Мы используем Delphi для веб-разработки, так много HTML-файлы, изображения, файлы SQL и т.д.

Любые рекомендации?

+7

Что вы подразумеваете под «надлежащей проверкой и проверкой», является блокировка. Большая часть мира переместилась 20 лет назад на слияние вместо блокировки модели. И после этого, от централизованного до децентрализованного. Приглашаем вас на свой 1990-й год работы, но вы не найдете много про разработчиков, которым больше нравится работать именно так. Это расстраивает их. –

+2

Блокировка может быть полезна для незащищенных файлов. Если вы изменяете изображение, блокировка может помочь рассказать другим, что они также не могут его изменить, потому что нет возможности слияния. ИМХО - инструмент, который позволяет блокировать, когда он действительно нужен, лучше, чем тот, который запрещает его по «религиозной» причине. – 2010-12-12 13:41:20

ответ

14

Я всегда буду рекомендовать subversion с Visual SVN для серверного программного обеспечения и Tortoise SVN для клиентов. Вы можете исключительно проверять файлы, чтобы никто не мог их редактировать, хотя это не поведение по умолчанию. Единственный «беспорядок», который он добавляет, - это скрытая папка .svn в каждом каталоге, находящемся под контролем версий.

+3

Я так ненавижу эту папку .svn !! Используя Dreamweaver для синхронизации с моими веб-сайтами, навсегда требуется сравнить эти маленькие файлы. –

+1

да, я признаю, что никогда не синхронизировал сайты с Dreamweaver =) не в вашем программном обеспечении есть варианты игнорировать определенные папки, тo? основываясь на том, как они названы, или, скажем, на том, что они скрыты ...? –

+5

Почему OP не просто выполняет экспорт 'svn', чтобы избавиться от каталогов .svn? – Wernsey

16

Git или Mercurial.

  • как распределяются и быстро (каждый репозиторий может действовать как «сервер»)
  • без дополнительных помех только один .git или .hg каталог
  • вы можете pull изменения из доверенных или проверенных источников
+0

Там будет не «проверить», хотя, как автор требует – artemb

+4

Я все для этих систем, но они не имеют ничего общего с тем, что хочет OP. –

+0

Спасибо, проверяя. О, не проверить? –

7

Если вы настаиваете на нулевом беспорядке, а также бесплатно, у вас есть ограниченный выбор. Если вы используете open source, у вас может быть свободная копия perforce. Нет беспорядка. SVN имеет беспорядок, такой как CVS: каталог .something в каждом каталоге. git и hg имеют только один каталог беспорядка на клоун.

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

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

+1

Как git, с .git в каждом каталоге, например, базар с .bzr в каждом каталоге, как mercurial с .hg в каждой директории, например ... –

+0

Похоже, что вы застряли в подходе к проверке/проверке или приняли другую стратегию публикации. –

+1

С Git (и IIRC также с Mercurial у вас есть каталог '.git' только в ** одном месте ** - топ-каталог вашего проекта, я не знаю о Bazaar , но я думаю, что это также верно для него. –

3

Я отменяю подход к выходу/проверке. Приличная система контроля версий должна иметь возможность объединять изменения. Это дает вам множество вариантов: CVS, SVN и Git.

Что касается «беспорядка» в ваших исходных файлах: я не рассматриваю каталоги репозитория (например,), поскольку это позволяет скопировать структуру репозитория.

Тем не менее, в SVN (не уверенный о Git) вы можете заблокировать/разблокировать файл, в основном имитировать VSS checkout/checkin.

+0

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

+0

К сожалению, разработчики бесплатных систем управления версиями, похоже, не склонны соглашаться с вами. – bmargulies

+2

@Hein - experience (мой и другие) предполагает иное - не огромное количество проблем слияния, кроме как от расходящихся ветвей, и обычно они (с удовольствием принимают не всегда) легко разрешаются. Блокировка не останавливает другого пользователя, который топает на ваших изменениях - * особенно *, если вы работаете над изменениями в той же области - это просто делает его несколько более сложным. – Murph

2

Хм, определить «беспорядок» - на мой взгляд, скрытый каталог в папке не загромождали, откровенно говоря, не было проблемой на всех (для справки, 7 лет первого CVS затем Subversion и до что VSS и что-то распространенное имя меня ускользает).

Subversion превосходный, и установка почти тривиальна с сервером VisualSVN, и использование прямолинейно с черепахой как клиентом. Блокировка файлов - это вариант, а не хороший в общем экземпляре, но его там для двоичных файлов, если он вам нужен. Это, вероятно, самое близкое соответствие вашим критериям, и мне это нравится. Много.

Для личного пользования Я играю с Mercurial - но недостаточно сделано, чтобы сказать больше, чем это работает (и, конечно, как и большинство DVCS, это не соответствует вашим критериям «блокировки»). DVCS разные и имеет некоторые проблемы.

Если у вас есть деньги, Vault (http://www.sourcegear.com) стоит посмотреть - особенно если вы использовали и любили VSS, так как он начинался как «лучший» VSS, хотя он несколько развивался. Стоит посетить sourcegear, чтобы прочитать мысли Эрика Синка о контроле версий.

Что касается остальных, в то время как я сочувствую желанию не объединять вещи, списание меток и ветвление в значительной степени совпадают с тем, что «мне не нужен контроль версий» - это становится не так.

+0

Мое основное требование - избегать разработчиков, работающих над старыми версиями. Ветвление и т. Д. Отлично, но необходимо, если вы разрабатываете для отдельных клиентов. Для меня основной особенностью контроля источника является то, что все работают над одной версией и могут вернуться к предыдущим версиям. –

+2

Яркие моменты - от звука вещей, мешающих вам важнее, чем ветвление (эта версия вышла вживую, а эта и эта). Ветвление относится к делу «вернуться» - в частности, чтобы вы могли исправлять проблемы с выпущенным «сайтом» или иным образом вносить изменения, когда сайт «in development» не находится в подходящем состоянии. – Murph

+0

Хорошо, спасибо за это. Мне не нужно ничего сложного. Только одна ветвь, только 1 живая версия. –

2

SourceGear Vault является бесплатным для 1 пользователя, и он дает вам операции checkin/checkout plus merge. Он также работает совершенно беспорядочно. Я использую его в течение некоторого времени, и он творит чудеса. Переход от SourceSafe особенно прост, и интеграция с IDE, например Visual Studio или Eclipse, очень хороша.

+0

Бесплатно для одного пользователя, отлично, но если вы один пользователь, вы не можете путать версии с путаницей :) I ' я также проверю это и разблокирую деньги, чтобы получить их на других моих компьютерах. –

+0

Я понимаю вашу точку зрения. :-) – CesarGon

+0

Хм, так что я не квалифицируюсь как только один пользователь? – SamB

3

Возможно, вам будет необходимо изучить Team Coherence (http://www.teamcoherence.com). Он не создает специальные папки и имеет Delphi. Например, он по умолчанию группирует файлы .pas и .dfm. Помощь отличная. Теперь она также бесплатна для одной лицензии. Я использовал его в течение многих лет после использования CVS и FreeVCS.

+0

Спасибо, дорого, но, вероятно, стоит того. –

+0

Чтобы добавить к этому, TC написано на Delphi :-) –

+0

Я бы действительно отказался от TC! Он медленный в больших хранилищах, плохая поддержка, не простая в использовании и т. Д. Мы перешли на пластиковый SCM (бесплатно до 15!), Который работает намного лучше, проще, быстрее и т. Д.! –

1

Никто не рекомендует базар, так что я здесь, я использую его в своей повседневной работе с проектами Delphi. У этого есть diff viewer, который порождает, и это, по крайней мере для меня, имеет значение с другими svn-подобными репозиториями.

+0

За исключением того, что это DVCS и не основано на блокировке.Который оригинальный плакат хочет. у него есть .bzr папка на репо или на папку? Это тоже то, что OP не понравилось. Короче говоря, ни один из DVCS с открытым исходным кодом не отвечает его требованиям. –

3

Вы должны немного прочитать и немного научиться, прежде чем отправлять себя и своих коллег, чтобы жить в темноте контроля версий.

Visual Source Safe и блокировка модели управления версиями являются мертвыми. Большинство людей двинулись дальше. Те, у кого нет, обычно боятся (или ненавидят) идею ветвления и слияния. Как только они видят, что ветвление и слияние могут быть проще и эффективнее, они могут двигаться вперед и вверх в новый мир вариантов контроля версий.

Задайте себе несколько из этих вопросов:

  1. Я хотел бы, чтобы отделить акт создания новой функции от акта причинения его на других разработчиков, а на конечный продукт (мой живой сайт)? Если это так, мне нужны ветви. Одна ветка = нет эффективного управления версиями.

  2. Я спросил у других разработчиков, которые будут работать со мной, какие методы они находят эффективными в проектах с несколькими разработчиками, и согласны ли они со мной, что блокировки - это путь, или я в одностороннем порядке применяю свой путь работать с ними? (У вас может быть foo.pas на сегодня, но попробуйте проверить его до 3 часов вечера, потому что мне нужно внести изменения в панель методов внутри foo.pas, позже сегодня.)

  3. Если я заявляю, что хочу, чтобы разработчики «избегали используя старые версии «есть ли у меня причины для этого, кроме того, что я ненавижу или боюсь слияния? Можем ли мы не думать о каких-либо способах предотвращения «использования старых версий»? Кроме того, можем ли мы не думать о каких-либо причинах, когда использование старых версий может быть именно тем, что вы должны делать? Если вы использовали неблокирующий инструмент, например Subversion, почему бы не сказать «пожалуйста, обновите, прежде чем совершать». Тогда вам никогда не придется объединяться, но если кто-то захочет работать с неизменяющейся версией источников при разработке функции, а затем желает слить себя, и вам никогда не придется сливаться, вы можете настаивать на том, чтобы ваша работа делать с блокировкой (используя подрывную деятельность), но позволять другим свободу использовать рабочий процесс, который решает их проблемы, а не ваши.

  4. Предположим, что (как вы сказали в комментариях выше) кто-то удаляет то, что вы в процессе создания. Было бы неплохо увидеть полный список его изменений и сказать: «Я бы хотел, чтобы эти изменения исчезли, не удаляя другие изменения, сделанные другими людьми». Это известно как работа с «changeets» и является ключевой особенностью DVCS, таких как Mercurial (hg) и Git. Фактически, способность не допускать других людей к изменению ВАШЕГО локального репозитория волей-неволей, а скорее внесение изменений, которые вы затем можете просмотреть, а также принять или не принять, всегда будет лучше создавать согласованность вашей (основной) копии репозиторий, чем любая локализованная, централизованная модель блокировки.

W

+0

TeamCoherence использует модель блокировки checkin/out, но по-прежнему поддерживает разветвление и различие. Я всегда проверяю код на проверке кода перед проверкой нового кода. –

+0

Интересно, что 1 разработчик бесплатно на TeamCoherence, но его 329 долларов за разработчика, для следующих 5 разработчиков после этого. Это интересный гибридный дизайн, который прежде всего блокируется, и все еще поддерживает ветвление и слияние. Возможно, самое близкое к тому, что запрашивал оригинальный плакат, за исключением денег. –

+0

Спасибо за ответ Уоррен, но я обращаюсь к вам напрямую. Тебе не хватает моей точки. –

1

Я не использовал его в течение многих лет, но я считаю, Jedi VCS отвечает всем вашим критериям, с дополнительным бонусом, что это написано в Delphi и имеет некоторые встроенные СМАРТС, когда дело доходит до обработки dfm.

+0

Часть джедаев делает тревожные звонки, но я отдам! –

+0

Это не дроиды, которые вы ищете ... – LachlanG

1

Мы используем Fossil для управления исходными кодами наших программ Delphi. Он очень прост в использовании (если вам нравится подход командной строки KISS), и есть внутренний веб-интерфейс. Не требуется установка, так как это только один исполняемый файл для запуска. Это совершенно кросс-платформенный: вы можете иметь свой собственный репозиторий на своей машине Windows, а затем клонировать/синхронизировать его с любым другим сервером, работающим в Windows или Linux.

Вы можете увидеть наш репозиторий программ с открытым исходным кодом Delphi, размещенных Fossil on our web site. Для внутренней работы я выяснил, что Fossil использует небольшую полосу пропускания (намного меньше, чем CVS или SVN) и способен синхронизировать огромные проекты в блиц, даже через ADSL или 3G-соединение.

Вот некоторые уникальные особенности, включенные в Fossil (без компонента третьей стороны к установке):

  • отслеживания ошибок и редактируемых
  • Web Interface
  • Autosync
  • Автономные
  • Простая сеть - ископаемое использует простой старый HTTP
  • CGI Enabled - сервер не требует использования ископаемого.
  • Robust & Надежный
+0

Выглядит многообещающе, но имеет ли он блокировку? Я не хочу, чтобы мой коллега перезаписывал мои ER Diagram/PSD File/Word Doc/Excel Sheet и т. Д. –

+0

@Hein: каждый локальный репозиторий является локальным. И вы можете указать, чтобы не делать автоматическое обновление на сервере. Таким образом, вы можете избежать перезаписи любого файла без явного подтверждения. –

1

Я бы порекомендовал Plastic SCM: http://www.plasticscm.com/

  • лучшее слияние и разветвление поддержки (?)!
  • , но вы также можете использовать одну ветвь + эксклюзивную кассу (он же замок)
  • очень приятный и удобный графический интерфейс
  • бесплатно до 15 пользователей
  • очень хорошая поддержка (в течение дня, в основном, в течение часа!)
  • очень современный, автоматическое слияние и разветвление, распределенных и т.д.
  • Delphi плагин доступен: http://code.google.com/p/plastic4delphi/
+0

Андре, похоже, у нас есть победитель. Мы проверим его! –

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