2010-02-03 1 views
1

Вот сценарий, я в настоящее время работаю в:SVN дифф маркировка всех строк коды, как новые, когда обновления программиста ПКА файл недавно совершенные Mac программатор

  1. программист (Использование Mac версия Dreamweaver) редактирует файл client.php и передает этот файл в производственный отдел репозитория Project Foo
  2. Программист B (с использованием версии Windows Dreamweaver) редактирует файл client.php, чтобы исправить ошибку в этом файле. Затем он делает cp clientInfo.php ../prod-branch/clientInfo.php, чтобы взять исправление ошибок из своей рабочей копии в производственную ветвь.
  3. Программист B затем делает svn diff ../prod-branch/clientInfo.php, чтобы увидеть, что svn говорит, что его изменения были только для того, чтобы обнаружить, что svn говорит, что он изменил каждую строку в файле!

Теперь, это то, что я считаю, что происходит:

Когда файл запускается под редакцией Mac, Dreamweaver на Mac заменяет все символы новой строки для Windows с Mac символами новой строки, так что это читаемый в Dreamweaver. Короче говоря, Dreamweaver изменил каждую строку в файле. Теперь, как только фиксация завершена, svn видит, что каждая строка изменилась и отмечает этот факт. Когда программист оконет изменения, а символы новой строки снова меняются, svn думает, что снова меняется каждая строка.

Мой вопрос заключается в следующем: как мы можем предотвратить это? Я знаю, что отменить урон уже не удалось, но я хочу предотвратить это в будущем.

ответ

2

Dreamweaver имеет возможность установить, какой тип прерывания линии он использует. Изменить (на Mac: Dreamweaver) -> Настройки, Формат кода, Тип разрыва строки.

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

+0

Работает как очарование!Премия достается вам, г-н Селик. Спасибо всем за вашу помощь в этом. StackOverflow, FTW. –

2

svn:eol-style - это свойство, которое может быть установлено централизованно в репозитории и должно решить вашу проблему.

Отъезд chapter on New Line Sequences в книге Subversion.

Решение этой проблемы является СВН: EOL-стиль собственности. Если для этого свойства установлено допустимое значение, Subversion использует его, чтобы определить, какую специальную обработку выполнить в файле, чтобы стиль окончания строки файла не перевернулся с каждой фиксацией, поступающей из другой операционной системы. Допустимые значения:

+0

Хорошо, вот проблема, с которой я сталкиваюсь: наши рабочие копии не на нашем рабочем столе. Мы используем Dreamweaver, чтобы вытащить, отредактировать, а затем загрузить наши изменения в наши рабочие копии. Наши IDE являются виновниками здесь. Какие-либо предложения? –

+0

Это действительно необходимо? Почему бы не создать рабочую копию локально? –

+0

... если это для загрузки на тестовый сервер, почему бы не иметь рабочую копию локально и до сих пор загружать все IDE в любое время. –

4

Для всех текстовых файлов необходимо использовать свойство «svn: eol-style». Обычно установка его на «native» будет достаточным

+0

Прежде всего, WOW вы, ребята, быстры. Хорошо, я дам «родной» выстрел и дам вам, ребята, знать, сделал ли это это. Благодарю. –