SVN контроль общей папки виртуальной машины
У меня есть проверка SVN на Mac с использованием subclipse. Я хочу иметь возможность поделиться этой папкой с общей папкой vmware в Windows 7 и выполнять обновления / коммиты с помощью tortoiseSVN (на виртуальной машине) и / или субклипса (на Mac).
Это возможно? или оба будут в конфликте?
На общем диске есть скрытые папки ".svn", созданные в Subclipse. Что еще нужно черепахе, чтобы распознать кассу?
3 ответа
Совместное использование рабочей копии никогда не является хорошей идеей. Вы можете сделать это, если ОС, с которой вы делитесь, все одинаковы (например, все Windows или все станции Mac). Но вы не должны делиться этим никогда, если ОС не совпадает!
Одна очевидная причина не делить рабочую копию между ОС: есть svn:eol-style
свойство, которое имеет native
как одно из возможных значений. Если вы разделяете такой wc между операционными системами, это может привести к конфликту.
Но это только самая очевидная и видимая причина. Метаданные рабочей копии (данные хранятся в скрытом .svn
папка) также содержит некоторые специфические для ОС вещи, и именно здесь вы действительно испортите свою рабочую копию до такой степени, что не будете ремонтировать.
Не просто поделиться хранилищем. Репозитории управления исходным кодом (включая репозитории SVN) трудно обеспечить требования, когда вы помещаете сеть между репозиторием и клиентом. Для защиты от сбоев из-за сети в середине SVN (и другие системы контроля исходного кода) имеют встроенные протоколы, которые работают предсказуемо, даже если сеть выходит из строя.
Сопоставляя диск и используя файловые протоколы, вы обойдете все средства защиты, встроенные для решения проблем с сетью, вместо этого вам следует использовать сетевой протокол поверх хранилища. SVN по умолчанию поставляется с четырьмя на выбор из svn:// svn+ssh:// http:// https://.
Тогда у вас будет один репозиторий и два человека, подключающиеся к нему, и код будет передан и синхронизирован между всеми.
Есть клиенты MAC svn, поэтому, если вы очень хорошо знакомы с TortiseSVN, вам, возможно, придется изучить нового клиента, но это худшее, что может случиться. При вашем текущем (менее желательном) подходе худшее, что может случиться, - это то, что вы повредите свой локальный репозиторий и потеряете работу для компьютеров с Windows и Mac.
Судя по другим ответам и комментариям, кажется плохой идеей, чтобы два клиента Subversion работали в одной папке. Тем не менее, я думаю, что вы по-прежнему можете использовать общую рабочую папку, чтобы переключиться на другую ОС и проверить текущее состояние рабочего каталога на другой ОС. Просто убедитесь, что вы всегда делаете коммит с одного клиента SVN в одной ОС.
Вот информация о том, как поделиться рабочей папкой.