Я задавался вопросом, там какие-либо пути, которыми определенные языки (C++, Java, Python, Haskell, и т.д.) особенно подходят больше к одному VCS, чем другие? Возможно, из-за синтаксиса или других факторов?
Или должен выбор VCS всегда быть незатронутым такими проблемами?
Содержимое, которое вы помещаете в VCS, может иметь значение для:
хранилища: способ хранения дельты может отличаться для простых текстов, документов Microsoft Word, моделей UML (Rational . rose
файлов), HTML-страницы, ...
См., Например, Диспетчер типов ClearCase в качестве примера VCS, управляющего хранилищем на основе содержимого элемента.
слияние: слияние может быть выполнено по-разному в зависимости от содержимого версионных файлов с помощью:
Что касается вашего вопроса, язык программирования в файлах с версией, насколько мне известно, никогда не является критерием для хранения или слияния: они (файлы) - это просто текст.
Если с ними обращаться по-другому, то это будет только во время процесса слияния, и только если внешний инструмент слияния будет достаточно умен, чтобы выполнить какое-либо «интеллектуальное» слияние на основе содержимого файла.
Но сама VCS обычно не участвует в этом специальном слиянии (для исходных файлов, рассматриваемых как текст).
Для VCS не имеет значения, что вы в нее вставляете (у вас может даже не быть кода), а то, как вы это используете. Большинство IDE могут интегрироваться с некоторыми, но не со всеми системами управления версиями. Выбор VCS, с которым ваша IDE может интегрироваться (изначально или с плагинами), обеспечит значительные преимущества.
С учетом сказанного, если выбор стоит между VCS без поддержки IDE или вообще без VCS, всегда ВСЕГДА используйте VCS.
Все известные мне VCS не зависят от содержимого, вы можете хранить двоичные или текстовые (ASCII / UTF-8) файлы. Одним из возможных факторов для выбора VCS является поддержка ОС для разработки (пример: git имеет плохую поддержку Windows) и интеграция IDE, которая может зависеть от языка.
Что касается того, не должны ли такие опасения влиять на VCS, я искренне верю в это. В то же время он должен быть достаточно гибким, чтобы позволить другим инструментам делать определенные языковые и проектные вещи (большинство VCS делают это с помощью хуков).
То, что имеет тенденцию изменять средний размер исходного файла. Некоторые языки и стили кодирования приводят к созданию файлов с более чем 10000 строками. В этом случае вам абсолютно необходим инструмент ветвления на основе слияния. С меньшими файлами кода гораздо меньше шансов, что кто-то другой внесет несвязанные изменения в тот же файл, и поэтому инструмент / политика, которые работают в основном путем блокировки, только с редкими слияниями, работают хорошо.