Что такое хорошая, нераспределенная, альтернативная подрывной деятельности, которая обладает отличной поддержкой ветвления и слияния?

Я устал от ручного отслеживания моих веток и слияния в моем репозитории! Это слишком склонно к ошибкам. В мире, где все, кажется, получают идею сокращения дублирования и автоматизации всего, разветвление/слияние подрывной деятельности похоже на то, что оно осталось с 80-х годов. Какая хорошая альтернатива подрывной деятельности, которая имеет отличную ветвящуюся и объединяющую поддержку, не добавляя сложность распределенной парадигмы SCM? В идеале это было бы бесплатным, но если мне нужно выложить наличные, я бы склонился, если бы это было достаточно.

Ответ 1

Вы обновили до Subversion 1.5? Он включает автоматическое отслеживание слияний. Это может решить вашу проблему. Похоже, вы уже знакомы с самим инструментом, и это бесплатно. Таким образом, если вы обновите свое текущее решение до 1,5, у вас почти не будет кривой обучения и нулевой стоимости - плюс вам не придется испытывать боль в переносе вашего существующего кода на новую систему управления исходным кодом.

Ответ 2

Вы изучали распределенное управление версиями, например Git? Каждый "checkout" - это, по сути, ветвь... это совершенно другой способ мышления об управлении источником.

Git является бесплатным, созданным Линусом Торвальдсом, и используется для Linux (среди многих других проектов, конечно).

Ответ 3

Perforce - отличный инструмент, но за пределами 2 пользователей это будет стоить вам, поскольку оно нацелено на профессионалов. Мы используем его с довольно тяжелой схемой ветвления (по одной ветки на каждую особенность во время основной разработки), и она работает хорошо. Вроде как разветвление "паутины", используемое Microsoft (которое использовало модифицированную более старую версию Perforce), но я не могу найти эту новость в Интернете сейчас.

Ответ 4

Я также устал от этих ограничений в старых версиях Subversion. Но никто в моей компании не использует ветвление и слияние. Каждый из них, при попытке новой функции, получил еще одну проверку, взломал-взломал и избавился от нее, если был плох, - совершить, когда хорошо. Просто иногда они совершали что-то плохое;)

Итак, я начал использовать git + svn. Смысл: у меня есть svn checkout, и в этом каталоге я начал git. Теперь у меня есть fast слияние и ветвление, и я не прерываю никаких других. Если мне нужно попробовать новую функцию X, просто откройте /checkout/hack -hack. Если мне нужно сейчас взять какое-то важное обновление из нашего SVN-репо: git stash, git мастер проверки, svn update, git commit -a, git функция проверки -X, git rebase, git применяется stash (все это потому, что git -svn не работает в Windows).

Похоже, много операций, но они быстры. Я имею в виду очень быстро. И дайте мне необходимую гибкость (см. моя статья о git + visual studio).

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

Ответ 5

Любое из распределенных решений. Git, mercurial и т.д. Мое предпочтение было бы git.

Ответ 6

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

Subversion 1.5 выглядит многообещающим для поддержки поддержки слияния, но он отмечен как основательный и не похож на то, что он будет иметь минимальную поддержку слияния, которую я готов принять (например, Perforce-like) в ближайшее время.

Итак, я склоняюсь к распределенной VCS, в частности Bazaar:

Ответ 7

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

Ответ 8

git

Я влюбился в это.

Ответ 9

Вы когда-нибудь спрашивали себя, почему у вас так много операций ветвления/слияния? Есть ли способ упростить процесс разработки?

Subversion, IMHO, является хорошим применением принципа KISS (Keep it simple, dupid). Перевод: По моему опыту вы получите гораздо больший прирост производительности от оптимизации процесса разработки, чем от получения более сложного инструмента.

Ответ 10

Я использовал Clearcase много. До тех пор, пока вы часто делаете свои слияния, это может быть довольно легко, и также возможно выполнение заданий слияния в фоновом режиме. Вы должны вмешаться, если есть конфликт слияния.

Однако это дорого, и может быть сложно найти квалифицированных администраторов Clearcase.

Ответ 11

Perforce предоставляется бесплатно для 2 пользователей.

Я не уверен, что 100% того, что вы ожидаете, может/должно быть автоматизировано, но perforce очень высокое качество. Вы можете легко создавать и поддерживать ветки, и вы можете легко слиться. Очень легко выбрать вишню конкретные изменения, внесенные вами в одну ветвь, и объединить их в другую ветки с высокой степенью автоматизации.

Ответ 13

Пластиковый SCM - все о разветвлении и слиянии... упрощено. Проверьте его графический интерфейс и сравните с другими альтернативами.

Ответ 14

git - http://git.or.cz/ (я очень люблю git, отличное ветвление и распределенное развитие) - http://github.com/ - отличный рабочий пример.

Ответ 15

Git, Mercurial, Bazaar, Darcs

Ответ 16

Я, вероятно, буду пылать за это, но если вы не собираетесь бесплатно скачать MS Team Foundation Server, стоит посмотреть. В отличие от других продуктов MS, которые останутся безымянными, контроль источника является прочным и полностью функциональным. Объедините это с интеграцией IDE, автоматическим механизмом сборки/тестирования и функциональностью управления работой, и это довольно удивительно. Разумеется, он ориентирован на компании и по цене.

Примечание: Я бы не стал это беспокоиться, если вы не разрабатываете в первую очередь Visual Studio.

Ответ 17

Это оформлено с точки зрения альтернатив CVS, а не SVN, но неважно - в нем перечислены несколько альтернатив, включая другие нераспределенные. http://better-scm.berlios.de/alternatives/

Ответ 18

В то время как альтернативы подрывной деятельности могут быть приятными, подрывная деятельность с помадой может быть прекрасной. Здесь обзор передних концов для подрывной работы, который выполняется на компьютерах Mac: http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html

Ответ 20

Просто добавление в DarenW - для окон есть действительно хороший продукт сервера Subversion, который является бесплатным и делает жизнь мечтой - VisualSVN Server. Это упаковывает последнюю сборку Subversion в один установщик MSI и добавляет в очень полезную консоль управления.

Ответ 21

Как вы думаете, что сложнее в отношении DVCS, например GIT? В некоторых случаях это проще: нет клиента/сервера, нет репо в одном месте с рабочим каталогом в другом месте, управление пользователями не встроено (используйте ssh, если вам это нужно). Как сказал Джим Пульс, вы можете использовать DVCS как нераспространенные, если хотите. Я использую GIT для проектов с одним человеком, даже для тех, кто длится всего несколько недель. Там нет ничего подобного Tortoise, но gitk, qgit и git -gui лучше для тех функций, которые я видел с SVN. Раньше я предпочитал guis, но теперь я очень люблю командную строку GIT, но проверяю easygit для некоторых улучшений.