Возможно ли это? Если да, то как это сделать?
Код находится в С#, и мы используем TortoiseSVN.
Я просто хочу автоматически форматировать код при каждой проверке.
Спасибо большое
Возможно ли это? Если да, то как это сделать?
Код находится в С#, и мы используем TortoiseSVN.
Я просто хочу автоматически форматировать код при каждой проверке.
Спасибо большое
Ты прикасаешься к священной войне. Сплетение с форматированием людей требует вил и факелов.
Моя рекомендация: Не.
Не говоря уже о том, что если вы говорите на С#, а ваши разработчики используют Visual Studio, у VS много инструментов автоматического форматирования. Просто введя эту закрывающуюся фигурную скобку, и VS может/будет автоматически форматировать ваш код.
Лучшее решение может заключаться в том, чтобы заставить всех ваших разработчиков использовать те же параметры автоматического форматирования.
Инструменты → Параметры, Текстовый редактор → С# → Форматирование
Эти параметры являются экспортируемыми, поэтому, если вы можете заставить команду согласиться использовать те же настройки форматирования кода в VS, вы можете избежать проблем с ее выполнением в своей системе управления версиями, что лучше оставить делать лучше всего.
Если вы чертовски настроены на это, крюк pre-commit, как и другие, сказал, это путь. Если вы работаете с сервером SVN в Windows, могу ли я рекомендовать CaptainHook для написания ваших скриптов крюка? Плагируемые скрипты, которые вы можете писать на любом языке .NET.
С крюком pre-commit script, вы можете сделать это, да. Но я уверен, что вы удалите этот script после первого коммита, потому что у вас появятся большие проблемы.
Если вы изменяете данные, которые совершаются, клиент не знает об этом. Поэтому после такой фиксации, где ваш script "исправляет" форматирование файла, содержимое файла в репозитории отличается от файлов в вашей рабочей копии. Но ваша рабочая копия все еще думает, что она обновлена с помощью репозитория (в конце концов, изменения только что были совершены).
Итак, на следующем обновлении вы попадете в ад - сломанная рабочая копия, сердитые пользователи,...
И, конечно, вы можете сломать сборку - автоматическое форматирование иногда имеет такой эффект.
Вы можете, конечно, реализовать hook script, который проверяет для правильного форматирования и возвращает ошибку, если это не так, прекрасно.
И поскольку вы используете TortoiseSVN, вы можете попробовать сделать форматирование в клике для предварительной фиксации на стороне клиента.
Я думаю, вы можете сделать это, используя привязку pre-commit в вашем репозитории.
Изменить. Для людей, которые считают это плохой идеей (я не говорю, что это не так): для организаций нередко применять определенный стиль кода или форматирование кода. Иногда эти правила могут быть довольно педантичными и строго соблюдаться, и хотя они обычно являются человеческими действиями, участвующими в этом (то есть форматированием до правильного стиля, прежде чем вы что-либо передаете в репозиторий), иногда может быть полезно автоматизировать процесс.
Альтернативный подход может заключаться в том, чтобы делать проверку автоматически перед фиксацией, но все же допускать фиксацию, даже если проверка не удалась, но затем отправлять только сообщение электронной почты или другое уведомление, чтобы указать, что кто-то не соблюдал стиль.
как и большинство людей, я согласен с добавлением перехвата, который переписывает их код, является плохим, однако у вас может быть крюк pre-commit, который отклоняет код, который не отформатирован в вашей практике кодирования, и информирует пользователя о такой ошибке.
Я очень рекомендую его.
Использовать pre-commit script или еще лучше, найти способ сделать это автоматически в вашей среде IDE (pre-commit будет переназначать измененный файл клиенту). Eclipse может автоматически форматироваться при сохранении.
Обоснование этого состоит в том, что если разработчики будут форматировать по-разному, вы найдете файлы, которые совершают на них, где коммит является только изменением форматирования, и это вызовет бесконечную путаницу.
Общий шаблон форматирования - очень хорошая идея. Это будет сложно представить, но это того стоит. Все изменения будут реальными изменениями, а не только форматированием изменений. По моему опыту разработчики увидят преимущества и примут его.
Я работал с cvs и java и использовал jalopy для автоматического форматирования. Мы использовали систему ветвления, поэтому она была обязательной, и она работала очень хорошо.
Возможно, но и очень, очень плохая идея.
Нет автоматических форматировщиков кода, и я могу почти гарантировать, что он отключит людей.
Тем не менее, если вы хотите это сделать, изучите использование перехватов с фиксацией.
Сервер SVN работает в системе Windows или Linux? И какой код-форматтер вы хотите использовать?