Файловая система для совместного использования проектов на разных платформах
Мы занимаемся кроссплатформенной разработкой, поэтому нет ничего странного в том, чтобы увидеть коробки с Linux и 2 или 3 версиями Windows.
До сих пор у меня есть рабочая копия SVN наших проектов на каждой платформе, которая иногда становится клуджей. Я думаю об использовании одного раздела для проектов, доступного со всех платформ. Похоже, что единственным вариантом будет FAT32 или NTFS (которые Linux, Windows и даже Mac могут читать / писать).
Я немного обеспокоен различной семантикой файловой системы. Например, чувствительность к регистру, собственность и разрешения.
Можете ли вы порекомендовать лучшую портативную файловую систему? Как вы думаете, мои возражения неоправданны?
РЕДАКТИРОВАТЬ: Позвольте мне уточнить. Я люблю SVN. То, что я ищу, - это наличие единой рабочей копии на моем локальном компьютере, которую будут использовать все операционные системы. Особенно, когда я работаю удаленно, я хочу проверить или обновить один раз и использовать одну и ту же рабочую копию из всех операционных систем.
3 ответа
Вы не можете иметь один и тот же раздел, непосредственно смонтированный в более чем одной системе (по крайней мере, без риска потери данных из-за непоследовательности кэшей каждой ОС). Вам придется размонтировать диск в одной ОС и смонтировать его в другой, что едва ли лучше, чем svn commit / update.
Для реального совместного доступа вы должны использовать общий доступ через сеть, и тогда файловая система не имеет большого значения (диск никогда не затрагивается напрямую, чем хост-ОС).
Для совместного использования между Linux и OS X вы можете использовать NFS, которая сохраняет большую часть семантики базовой файловой системы и, по сравнению с Samba, работает быстро и безболезненно.
Единственная реальная несовместимость в совместном использовании OS X <> Linux заключается в том, что имена файлов, отличных от ASCII, в OS X должны использовать UTF-8 в разложенном виде (например, ö должно быть записано как две кодовые точки: o и ¨). Linux не волнует, поэтому решение - всегда создавать и проверять такие файлы в OS X.
Если вы хотите совместимости с Windows, вам придется запретить использование символических ссылок. Они теоретически возможны в NTFS, но они не выживут при совместном использовании сети.
Вы можете получить драйверы, которые позволяют Windows и Mac читать разделы EXT2 или EXT3, так что это может быть альтернативой.
Кроме того, если у вас есть несколько разработчиков, работающих над одной и той же кодовой базой, вы действительно должны обеспечить контроль версий. Если вы испытываете боль от Subversion, вы можете вместо этого проверить git. Он распределен (что означает, что больше нет центрального сервера, на котором размещена единственная верная копия базы кода) и имеет гораздо лучшую поддержку для ветвления и слияния. Он доступен для всех основных платформ разработки.
Используемая вами файловая система не должна иметь значения, если вы используете систему контроля версий. Если разработчик получает файлы, необходимые для работы над проектом, только из системы управления версиями, его клиент автоматически создает необходимые файлы и каталоги, используя файловую систему, используемую на их компьютере. Если у вас есть файлы, которые находятся вне системы контроля версий, взгляните на Samba. Это позволит вам использовать файловый сервер Linux для настройки сетевых ресурсов, к которым можно получить доступ из Linux, Mac или Windows. Если ваши главные серверы - Windows, вы все равно можете настроить на них общие ресурсы и подключаться с помощью клиентов Linux и Mac. Информацию о подключении к общим ресурсам Samba на Mac смотрите по этой ссылке.