Назад | Перейти на главную страницу

Файловая система для совместного использования проектов на разных платформах

Мы занимаемся очень кроссплатформенной разработкой, поэтому не удивительно видеть коробки с Linux и двумя или тремя версиями Windows.

Пока у меня есть рабочая копия наших проектов SVN на каждой платформе, которая временами становится беспорядочной. Я думаю об использовании одного раздела для проектов, доступного со всех платформ. Похоже, единственным вариантом будет FAT32 или NTFS (которые Linux, Windows и даже Mac могут читать / писать).

Однако меня немного беспокоит различная семантика файловой системы. Например, чувствительность к регистру, права собственности и разрешения.

Можете ли вы порекомендовать лучшую переносную файловую систему? Считаете ли вы мои возражения необоснованными?

РЕДАКТИРОВАТЬ: Позвольте мне уточнить. Я люблю SVN. Я ищу одну рабочую копию на моем локальном компьютере, доступную для всех операционных систем. Когда я работаю удаленно, я хочу один раз проверить или обновить и использовать одну и ту же рабочую копию из всех ОС.

У вас не может быть того же раздела прямо монтируется более чем в одной системе (по крайней мере, без риска потери данных из-за некогерентности кешей каждой ОС). Вам придется размонтировать диск в одной ОС и смонтировать его в другой, что вряд ли лучше, чем svn commit / update.

Для реального общего доступа вы должны использовать общий доступ по сети, и тогда файловая система не имеет большого значения (диск никогда не затрагивается напрямую более чем ОС хоста).

Для совместного использования между Linux и OS X вы можете использовать NFS, которая сохраняет большую часть семантики базовой файловой системы и, по сравнению с Samba, работает быстро и безболезненно.

Единственная реальная несовместимость в совместном использовании OS X <> Linux заключается в том, что имена файлов, отличных от ASCII, в OS X должен используйте UTF-8 в разложенном виде (например, ö должно быть записано как две кодовые точки: o и ¨). Linux все равно, поэтому решение - всегда создавать и возвращать такие файлы в OS X.

Если вам нужна совместимость с Windows, вам придется запретить использование символических ссылок. Теоретически они возможны в NTFS, но они не выдержат совместного использования сети.

Файловая система, которую вы используете, не имеет значения, если вы используете систему контроля версий. Если разработчик получает файлы, необходимые для работы над проектом, только из системы контроля версий, его клиент автоматически создает необходимые файлы и каталоги, используя файловую систему, используемую на его компьютере. Если у вас есть файлы, которые находятся вне системы контроля версий, взгляните на Самба Это позволит вам использовать файловый сервер Linux для настройки общих сетевых ресурсов, к которым можно будет получить доступ из Linux, Mac или Windows. Если вашими основными серверами являются Windows, вы все равно можете настроить на них общие ресурсы и подключаться с помощью клиентов Linux и Mac. Для получения информации о подключении к общим ресурсам Samba на Mac см. этотссылка на сайт.

Вы можете получить драйверы, позволяющие Windows и Mac для чтения разделов EXT2 или EXT3, так что это может быть альтернативой.

Кроме того, если у вас есть несколько разработчиков, работающих над одной и той же базой кода, вам действительно следует обеспечить контроль версий. Если у вас возникли проблемы с Subversion, вы можете попробовать мерзавец вместо. Он распределен (что означает, что больше нет центрального сервера, на котором размещается единственная точная копия базы кода), и имеет гораздо лучшую поддержку для ветвления и слияния. Он доступен для всех основных платформ разработки.