Расширение для PHP, чтобы игнорировать конфликты SVN - PullRequest
0 голосов
/ 11 октября 2011

Я уверен, что я не единственный, кто пытался switch изменить последний код на живом сервере из SVN непосредственно перед отправкой домой, только чтобы обнаружить, что какой-то болван изменил файлы прямо на сервере итеперь у вас есть пять PHP-скриптов, помеченных как конфликтующие , сайт не работает и ваша жена выкрикнула за опоздание на обед, потому что вам пришлось решитьвсе конфликты вручную, потому что откат невозможен.

Я думаю, было бы замечательно, если бы существовало расширение для PHP, которое не умрет с ошибкой синтаксического анализа для unexpected T_SL при обнаружении конфликтующего файла, но вместо этого проанализировал бы его, используя только версию рабочей копии каждого конфликта.

<<<<<<< .mine
changes_my_stupid_coworker_made(); // This would be executed
=======
my_important_changes(); // This would NOT be executed
>>>>>>> .r9

Существует ли такое расширение или что-то, что может быть использовано пользователем для аналогичного эффекта?

Ответы [ 2 ]

3 голосов
/ 11 октября 2011

Это действительно худший способ решения проблемы.

  • Никогда не позволяйте никому редактировать файлы прямо на сервере. Файлы могут быть доступны только для чтения (или виновник может быть запущен)
  • Не обновляйте сервер напрямую из репозитория SVN: обновите рабочую копию, запустите все тесты модулей и интеграции для этой рабочей копии, затем пометите ревизию и экспортируйте рабочую копию на сервер

Если люди просто не могут работать правильно, не позволяйте им больше работать.

0 голосов
/ 11 октября 2011

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

Из головы в голову

svn up --accept theirs-full

Мы убедились, что у всех разработчиков есть способобновить живую среду, будь она очень строгой.Мы не можем обновлять через командную строку на живых серверах, но у нас есть центральный скрипт на сервере, на котором мы можем настраивать проекты на нем, затем мы можем давать команды обновления через скрипт.Затем скрипт сначала выполнит diff, проверяя конфликты и обновляя, если ничего не случилось, и отправляет нескольким людям и руководителю группы, ответственному за проект, электронное письмо с выводом cmd.взлеты и действительно поздние ночи.

...