Как обещал, выкладываю свой псто о VCS и Битрикс. На истину в последней инстанции он не тянет, но толика здравого смысла в нем, надеюсь есть.
Для самых нетерпеливых: Битрикс повержен
Для менее нетерпеливых: все было не совсем просто, но в итоге система укрощена, а разработанная схема с успехом используется на значительном количестве боевых проектов компании
И да. Цель наших махинаций - получить комбинацию Битрикс+Система Контроля Версий удобную для активной разработки проекта. Подчеркиваю - для разработки, не для бекапов или чего нить еще хитрого
Но не будем спешить. Начнем с начала, а именно...
Бой первый.
В правом углу ринга боец в синих трусах. 1С-Битрикс. В левом углу - боец в красных трусах. Иииии... Этоооо... SVN!
Первый хук проводит SVN: "svn add htdocs".
Все. Это было фаталити
Публика в недоумении...
SVN сломал себе руку, встретившись сжировыми складками накачанным прессом сайта под управлением Системы, а именно - в папках bitrix и upload. Тыща пицот мильёнов папочек. Две тыщи стопицот миллионов файликов в них. SVN в шоке тихо мирно падает в нокаут. Грусть.
Краткое резюме: класть весь проект на битрикс под контроль SVN - плохая затея. Потому что даже если вы дождетесь конца индексации svn add и даже успешно сделаете commit, то работать с такой системой будет решительно невозможно, потому как простейший svn status придется ждать годами.
Ну пускай не годами, но даже минутное ожидание ответа от элементарной команды очень тормозит разработку.
Итог: 1-0 в пользу Битрикса. SVN уносят в свой угол, волоча за красные трусы.
Бой второй. Матч-реванш
В правом углу ринга все те же синие трусы. Фаворит публики - 1С-Битрикс.
А кто же в левом углу? Красные трусы... Загипсованная рука... SVN! На что надеется этот неудачник? Видимо на складной стульчик в левой руке.
Итак, теперь тренер SVN решил действовать хитрее, а именно:
После таких не хитрых манипуляций боя даже не получается. SVN стирает кровь со складного стульчика и, отпихнув рефери, пролазит под канатами.
Судья присуждает победу SVN. 1-1.
Тут самое время возмутиться: "А как же обновления? Как же изменения прав доступа к системным файлам? Как же, собственно, правки этих самых системных файлов (что уже само по себе великий грех) нерадивыми разработчиками?"
Ну что я могу сказать? Все верно, все упреки абсолютно справедливы и принимаются молча
Но тут надо вспомнить нашу цель, а именно - удобная для активной разработки комбинация VCS и CMS. А при активной разработке, как показывает практика, заботиться о затертых файлах аплоада или ядра не приходится, потому как вся команда в курсе кто чем занят и кто что может сломать 
Итого финальный счет: 1-0,5. Победа в матче присуждена SVN, но в общем зачете ведет Битрикс.
Для буквоежек, лог битвы:
(Тут полный листинг битвы. В командах.)
Краткое резюме: реорганизация файловой структуры проекта позволяет использовать SVN в качестве системы контроля версий на проекте. Такая реорганизация помимо того что сама по себе жизнеспособна,
так еще дает и неплохой бонус при разработке сайта, когда все необходимое лежит под рукой и не приходится лазать по тыще папок в IDE, ища необходимый тебе файл. Бенефит на лицо
Но, как упоминалось выше, есть существенный минус - не весь код находится под контролем.
Ядро, увы, SVN не поддалось.
Общий зачет: 1-0,5 в пользу Битрикса. SVN со сломанной рукой и окровавленным стульчиком, но у Битрикса сломан нос. ^_^
Бой третий. Дер файнал раундЪ
Финал битвы века "Битрикс VS Система Контроля Версий". В роли Битрикса - Битрикс.
В роли VCS - GIT. Черные трусы, заморский говор, все дела.
Итак GIT делает ход конем: "git add ." (добавляем все файлы под контроль) Помним чем это закончилось для SVN? Именно. Две недели заращивали ему правую руку.
Но не тут то было. ГИТ - мужик тертый, и удар проходит. Битрикс согнулся пополам и плюется кровью. Индексация всего сайта вместе с полным набором модулей редакции "Бизнес" заняла примерно две минуты.
Второй удар: "git status". Ответ приходит моментально, Битрикс падает на пол.
У нас новый чемпион! GIT! Поприветствуем! (GIT одергивает черные трусы и, почесывая волосатую грудь, уходит с ринга за поясом чемпиона)
Краткое резюме: GIT отлично зарекомендовал себя как средство для контроля кода Битрикса на наших проектах. Моментальный status, быстрый add, отличный commit, бранчевание. Вобщем все плюшки
И огромное количество исходников битрикса нисколько не смутило его 
Правда, реорганизованную файловую структуру я таки оставил, но уже не как костыль, а как удобное средство при разработке.
GIT обнимает Битрикс и под торжественную музыку они уходят в светлое будущее.
Итог: 1 - 1,5 в пользу Системы Контроля Версий. ^___^
Дисклеймер: в ходе Битвы Века ни одного Битрикса не пострадало.
------------------
Собственно битва то закончена, но чуть выше я обещал показать результирующую структуру папочек.
Расписывать не буду, думаю все вполне понятно по названию файлов.
Все папочки распихиваем по своим местам симлинками, и в результате имеем очень удобную папку php.inc которую можно просто засинхронизировать в любимую IDE (nuSPhere, eclipse, PhpStorm) и она не сдохнет от папки bitrix и вечных ресканов.
Вот как то так
Для самых нетерпеливых: Битрикс повержен

Для менее нетерпеливых: все было не совсем просто, но в итоге система укрощена, а разработанная схема с успехом используется на значительном количестве боевых проектов компании

И да. Цель наших махинаций - получить комбинацию Битрикс+Система Контроля Версий удобную для активной разработки проекта. Подчеркиваю - для разработки, не для бекапов или чего нить еще хитрого

Но не будем спешить. Начнем с начала, а именно...
Бой первый.
В правом углу ринга боец в синих трусах. 1С-Битрикс. В левом углу - боец в красных трусах. Иииии... Этоооо... SVN!
Первый хук проводит SVN: "svn add htdocs".
Все. Это было фаталити

SVN сломал себе руку, встретившись с
Краткое резюме: класть весь проект на битрикс под контроль SVN - плохая затея. Потому что даже если вы дождетесь конца индексации svn add и даже успешно сделаете commit, то работать с такой системой будет решительно невозможно, потому как простейший svn status придется ждать годами.
Ну пускай не годами, но даже минутное ожидание ответа от элементарной команды очень тормозит разработку.
Итог: 1-0 в пользу Битрикса. SVN уносят в свой угол, волоча за красные трусы.
Бой второй. Матч-реванш
В правом углу ринга все те же синие трусы. Фаворит публики - 1С-Битрикс.
А кто же в левом углу? Красные трусы... Загипсованная рука... SVN! На что надеется этот неудачник? Видимо на складной стульчик в левой руке.
Итак, теперь тренер SVN решил действовать хитрее, а именно:
- Решено не загонять ядро под SVN целиком, потому как слишком грустно это все и SVN помирает.
- Используем волшебный параметр битрикс BX_PERSONAL_ROOT, позволяющий выносить кастомные файлы и папки проекта во внешнюю (относительно папки bitrix) папку. Вообще говоря, она задумана для организации многосайтовости. Но у SVN в руке складной стул и он не побоится его применить! Так что ему, в общем то, плевать на задумки.
- Реформируем структуру проекта. Все необходимые папки выносим выше уровня htdocs и просто прокидываем их симлинками в папку bitrix. (Про доработанную файловую структуру я напишу чуть ниже. Очень удобно получилось
)
- Помещаем папку bitrix/ и upload/ в svn ignore. (Чит, чит.)
После таких не хитрых манипуляций боя даже не получается. SVN стирает кровь со складного стульчика и, отпихнув рефери, пролазит под канатами.
Судья присуждает победу SVN. 1-1.
Тут самое время возмутиться: "А как же обновления? Как же изменения прав доступа к системным файлам? Как же, собственно, правки этих самых системных файлов (что уже само по себе великий грех) нерадивыми разработчиками?"
Ну что я могу сказать? Все верно, все упреки абсолютно справедливы и принимаются молча


Итого финальный счет: 1-0,5. Победа в матче присуждена SVN, но в общем зачете ведет Битрикс.
Для буквоежек, лог битвы:
(Тут полный листинг битвы. В командах.)
Краткое резюме: реорганизация файловой структуры проекта позволяет использовать SVN в качестве системы контроля версий на проекте. Такая реорганизация помимо того что сама по себе жизнеспособна,
так еще дает и неплохой бонус при разработке сайта, когда все необходимое лежит под рукой и не приходится лазать по тыще папок в IDE, ища необходимый тебе файл. Бенефит на лицо

Но, как упоминалось выше, есть существенный минус - не весь код находится под контролем.
Ядро, увы, SVN не поддалось.
Общий зачет: 1-0,5 в пользу Битрикса. SVN со сломанной рукой и окровавленным стульчиком, но у Битрикса сломан нос. ^_^
Бой третий. Дер файнал раундЪ
Финал битвы века "Битрикс VS Система Контроля Версий". В роли Битрикса - Битрикс.
В роли VCS - GIT. Черные трусы, заморский говор, все дела.
Итак GIT делает ход конем: "git add ." (добавляем все файлы под контроль) Помним чем это закончилось для SVN? Именно. Две недели заращивали ему правую руку.
Но не тут то было. ГИТ - мужик тертый, и удар проходит. Битрикс согнулся пополам и плюется кровью. Индексация всего сайта вместе с полным набором модулей редакции "Бизнес" заняла примерно две минуты.
Второй удар: "git status". Ответ приходит моментально, Битрикс падает на пол.
У нас новый чемпион! GIT! Поприветствуем! (GIT одергивает черные трусы и, почесывая волосатую грудь, уходит с ринга за поясом чемпиона)
Краткое резюме: GIT отлично зарекомендовал себя как средство для контроля кода Битрикса на наших проектах. Моментальный status, быстрый add, отличный commit, бранчевание. Вобщем все плюшки


Правда, реорганизованную файловую структуру я таки оставил, но уже не как костыль, а как удобное средство при разработке.

GIT обнимает Битрикс и под торжественную музыку они уходят в светлое будущее.
Итог: 1 - 1,5 в пользу Системы Контроля Версий. ^___^
Дисклеймер: в ходе Битвы Века ни одного Битрикса не пострадало.
------------------
Собственно битва то закончена, но чуть выше я обещал показать результирующую структуру папочек.
Расписывать не буду, думаю все вполне понятно по названию файлов.
. |-- htdocs | |-- bitrix | |-- bitrix_personal | `-- upload `-- php.inc |-- admin | |-- ajax_responders | |-- css | `-- js |-- classes |-- components | `-- iv |-- config |-- modules | `-- iv |-- php_interface | |-- admin_header.php | |-- custom_properties | |-- dbconn.php | |-- event_handlers | |-- init.config.php | |-- init.configure.php | |-- init.debug.php | |-- init.event_handlers.php | `-- init.php |-- templates `-- unittests |
Все папочки распихиваем по своим местам симлинками, и в результате имеем очень удобную папку php.inc которую можно просто засинхронизировать в любимую IDE (nuSPhere, eclipse, PhpStorm) и она не сдохнет от папки bitrix и вечных ресканов.
Вот как то так

Несладко приходится вашим разработчикам наверно.
Не можете сказать, на сколько возрастают трудозатраты при таком способе?
Тут просто дело практики. Задачи то в основном типовые абсолютно: создать инфоблок, создать вебформу, поправить поле в инфоблоке и т.п. Ессно все они делались сто раз и необходимый код уже давно есть и используется копипастой с простой заменой названий/типов полей.
Но в начале - да. Тормозили бывало. Пока раскуришь как через апи сменить какое то поле, или родить инфоблок со списочными полями и т.п. Но теперь таких проблем, а бенефиты миграций - есть
Сейчас на одном большом проекте у нас параллельно работают три разработчика, что вполне себе достижение, ИМХО
Таким образом ничего никуда перемещать не нужно - и можно спокойно работать, не затрагивая ядро
Файл такого содержания (для редакции Стандарт):
syntax:glob
bitrix/cache/
bitrix/components/bitrix/
bitrix/image_uploader/
bitrix/images/main/
bitrix/images/install
bitrix/images/search
bitrix/images/fileman
bitrix/js/main/
bitrix/js/fileman/
bitrix/managed_cache/
bitrix/modules/main/
bitrix/modules/bitrix.siteinfoportal/
bitrix/modules/fileman/
bitrix/modules/iblock/
bitrix/modules/blog/
bitrix/modules/forum/
bitrix/modules/photogallery/
bitrix/modules/form/
bitrix/modules/security/
bitrix/modules/search/
bitrix/modules/vote/
bitrix/modules/mobileapp/
bitrix/modules/perfmon/
bitrix/modules/subscribe/
bitrix/modules/socialservices/
bitrix/modules/clouds/
bitrix/modules/seo/
bitrix/modules/translate/
bitrix/modules/bitrixcloud/
bitrix/modules/compression/
bitrix/tmp/
bitrix/panel/main/
bitrix/wizards/bitrix/
upload/blog/
upload/iblock/
upload/resize_cache/
upload/tmp/
Я у себя так прописал:
syntax: regexp
# не отcлеживаем папку bitrix исключая некоторые папки
^bitrix\/(?!(templates|components|php_interface))
# за папкой components/bitrix следить не надо
^bitrix\/components\/bitrix\/
syntax: glob
php_interface/after_connect_d7.php
php_interface/after_connect.php
php_interface/dbconn.php
Может громоздко, но придумать нормально работающей регулярки не вышло. Сейчас советуют все наработки складывать в папку local, но зачастую попадают сайты, где все сложено в папке bitrix.