Мой текущий проект - это приложение ASP.Net MVC, которое использует несколько сборок третьей части, которые я поместил в svn, чтобы разработчик мог получить последнюю версию в любое время и иметь все сценарии сборки и библиотеки вместе с кодом, который они нужно построить приложение. DLL-файлы помещаются в папку lib, и все проекты Visual Studio могут получить к ним доступ на основе относительного пути. Преимущество состоит в том, что при маркировке нашего кода все зависимые библиотеки также существуют вместе с кодом, который их использует, поэтому, если мне понадобится откат к предыдущему выпуску, который использует более старую версию библиотеки, которую я с тех пор обновил, я все равно получу правильная версия. Я думаю, что это хорошо работает для файлов, связанных с разработчиком, которые необходимы для сборки приложения, чтобы можно было легко использовать автоматические сборки и непрерывную интеграцию. Это также сработало, мы работали в распределенной команде над этими проектами.
Однако я чувствую, что такие файлы, как видео и все, что имеет размер 300 МБ, нецелесообразно добавлять в любую систему контроля версий. В некоторых проектах, над которыми я работал в прошлом, был сервер, используемый для хранения всех медиа-файлов, которые затем копируются в тестовую и производственную среды как часть автоматизированного сценария.