Вот сценарий, с которым я сейчас сталкиваюсь:
- Программист A (с использованием версии Dreamweaver для Mac) редактирует файл client.php и фиксирует этот файл в производственной ветви репозитория Project Foo
- Программист B (используя версию Dreamweaver для Windows) редактирует файл client.php, чтобы исправить ошибку в этом файле. Затем он делает
cp clientInfo.php ../prod-branch/clientInfo.php
, чтобы перенести это исправление ошибки из своей рабочей копии в производственную ветвь.
- Программист B затем делает
svn diff ../prod-branch/clientInfo.php
, чтобы увидеть, что svn говорит, что его изменения были только для того, чтобы обнаружить, что svn говорит, что он изменил каждую строку в файле!
Так вот, я верю, что это происходит:
Когда файл редактируется Mac, Dreamweaver на Mac заменяет все символы новой строки Windows на символы новой строки Mac, чтобы его можно было прочитать в Dreamweaver. Короче говоря, Dreamweaver изменил каждую строку в файле. Теперь, когда фиксация завершена, svn видит, что каждая строка файла изменилась, и отмечает этот факт. Когда Windows-программист вносит изменения и символы новой строки снова меняются, svn думает, что снова каждая строка изменилась.
Мой вопрос таков: как мы можем предотвратить это? Я знаю, что нет никакого способа исправить ущерб, который уже был причинен, но я хочу предотвратить это в будущем.