Я определенно предпочитаю снаружи. При этом моей основной IDE является Visual Studio, и я не использовал eclipse или intellij (хотя я использовал cvs-mode в emacs ...), поэтому ваш пробег может отличаться ...
Внесение изменений и их фиксация являются отдельными задачами - их легкая доступность в среде IDE означает, что вы не можете четко разграничить выполнение набора изменений и их фиксацию. Довольно часто это тип type type, compile, test, test, commit ... «о, подождите - я тоже забыл заглянуть в панель. Переключение контекста из режима IDE в режим SCM приводит к появлению «о, подождите» перед фиксацией.
Хранение связанных файлов для фиксации вместе - слишком легко фиксировать исходные изменения, затем запоминать связанные скрипты SQL и фиксировать их отдельно, а затем добавлять новые файлы изображений, когда вы их забыли, потому что они новички в хранилище и пр.
Как и выше, гораздо проще совершать вещи на неправильном уровне / в каталоге в хранилище, когда в IDE. (например, я должен был принять на уровне решения, а не на уровне проекта)
Как правило, проще получить полную разность вашего рабочего пространства с хранилищем вне IDE, что часто имеет смысл.
Это также, вероятно, делает вашу IDE более быстрой
Я также согласен с предыдущим постером - все нетривиальные задачи SCM, как правило, проще вне интеграции IDE разработки.
Если честно, пока вы избегаете беспорядочных коммитов, описанных выше, делайте все, что вам удобнее. С точки зрения рабочего процесса - разделение должно быть «чище», перевесит ли эта чистота удобство в глазах смотрящего - мы в значительной степени реагируем на наш личный опыт (я подозреваю, что мой похож на ваш).
Что бы вы ни делали, используйте все, что угодно, кроме SourceSafe ... В настоящий момент мне нужно для устаревшего кода - я нахожу отвратительным, что файлы сделаны только для чтения и что интеграция SCM физически изменяет содержимое файлы ...