Контроль источника для веб-проектов

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

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

Мы работаем в смешанной среде mac/pc, поэтому Visual Source Safe или что-то чисто основанное на ПК, не будет. Любая помощь?

Ответ 1

Все системы управления версиями, которые я использовал (CVS, subversion, git), будут обрабатывать двоичные файлы, а также текст. Если вы работаете с дизайнерами с ограниченным контролем версий, прямо сейчас подрывная деятельность имеет лучший выбор графических интерфейсов. На ПК нет замены TortoiseSVN, и для Mac я слышал хорошие вещи о Версии.

Ответ 2

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

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

Ответ 3

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

Использование надстроек оболочки (Tortoise on Windows) делает это довольно легко. У меня нет опыта работы с клиентами Mac, но я бы предположил, что есть выбор.

Ответ 4

Другие отметили, что Subversion и ее родственники не имеют проблем с бинарными файлами (хотя и не так эффективно, как текст). Требование резервного копирования базы данных является более интересным, хотя, и тот, с которым я сталкивался не один раз.

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

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

Ответ 5

Я все еще использую Subversion, а в Windows я использую TortoiseSVN, который включает TortoiseIDiff специально для просмотра различий между файлами изображений.

Ответ 6

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

В настоящее время многие высококлассные проекты используют git, включая Ruby on Rails.

Ответ 7

Subversion имеет предварительно скомпилированные двоичные файлы для Mac OS X. Он также доступен через MacPorts и Fink. Есть пара отличных интерфейсов (кроме командной строки). svnX - это клиент с открытым исходным кодом, который существует некоторое время, и как упоминалось Versions - очень красивый закрытый клиент-клиент, который в настоящее время находится в бета-версии. Вы должны ознакомиться с командной строкой, так как вы столкнетесь с проблемами, которые эти клиенты GUI не могут решить.

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

Ответ 8

У Mac есть что-то под названием "Версия", которое является подрывным UI, таким как "Tortoise SVN". Я нашел его удобным для пользователя и эффективным.

Я также работаю в среде Mac/PC (dang artsy kids), и подрывная деятельность - это путь. Я сохраняю все тексты, изображения, запросы и код.

Мои сотрудники, не являющиеся специалистами по техническому обеспечению, легко поняли, как только я объясню концепцию.

Ответ 9

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

Я лично использую Версии для Mac. Он имеет действительно отличный интерфейс для взаимодействия с репозиторией subversion.

Что я делаю, это проверить каталог /Trunk проекта в корне сайта. Таким образом, я могу проверить и запустить рабочую копию в качестве моей фактической установки. После того, как я готов к работе, я могу экспортировать файлы из пакетов repo sans.svn и загрузить их на сервер производства или промежуточного уровня. Надеюсь, это даст вам представление о том, какой рабочий процесс вы можете использовать с помощью подрывной деятельности.

Ответ 10

Я думаю, что svn - отличный выбор, некоторые пользователи могут даже использовать git для локального ветвления. Я запускаю eclipse на моем mac, поэтому я использую комбо git, svn command line и subversive (плагин eclipse для svn). Вот список клиентов mac svn (большинство из них - кросс-платформа)

http://scplugin.tigris.org/, как TortoiseSVN, но не как многофункциональный)
http://subcommander.tigris.org/
http://rapidsvn.tigris.org/
http://www.versionsapp.com/
http://www.syncrosvnclient.com/ (не бесплатно $59)
http://www.lachoseinteractive.net/en/community/subversion/svnx/features/

Ответ 11

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

Обратите внимание, что СУБД может изменить порядок строк в базе данных, чтобы сделать некоторые операции более эффективными. Это может привести к тому, что две свалки выглядят по-другому, фактически не имея разных данных. Убедитесь, что все, что создает дамп ваших данных, сортирует его по первичному ключу каждой таблицы и что набор таблиц находится в определенном порядке, так что изменения, которые вы видите при сбросе двух дампов, являются важными изменениями.