Есть ли способ «расширить» командную строку SVN для предварительной обработки исходных файлов - PullRequest
0 голосов
/ 03 ноября 2018

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

Это не решение ни для git, ни для svn.

Игнорировать определенные изменения в файле в git, но не весь файл

Хм ... Я мог бы реализовать это в сценарии оболочки, если бы был способ «расширить» svn, чтобы добавить сценарии оболочки «препроцессора».

По сути, напишите сценарий оболочки, который удаляет строки, ограниченные неким гибким символом, непосредственно перед выполнением 'svn commit'.

С макушки головы:

#pragma mark nocommit
#pragma mark endnocommit

Кто-нибудь делал это?

Я поместил # предупреждение в моей рабочей копии, что по многим причинам мне не нужно, чтобы другие люди видели. Однако, когда приходит время для фиксации, я должен тщательно отредактировать эти заметки, а затем вернуть их обратно после фиксации.

Примеры:

  • У меня работает новая функция, которая требует, чтобы команда начала тестирование, но я пометил код списком «известных ошибок». Я хочу, чтобы эти # предупреждения напомнили тестеру не беспокоиться об этих «известных ошибках»

  • Я воспроизвел ошибку в крайнем случае, но у меня пока нет времени на ее исправление.
    Пример:

    # предупреждение: известная ошибка: выяснить, почему возникает это «ОШИБКА: несоответствие» при перетаскивании клипа?

  • Я включил предупреждение, чтобы что-то оставить на своем радаре, потому что я еще не нашел более элегантного решения

  • Я не хочу, чтобы другие члены команды знали , что я еще не нашел лучшего решения, потому что, когда вы комментируете такой комментарий, люди склонны интерпретировать его как нечто официальное им нужно взвесить (т.е. совет, который я не хочу сейчас слышать из-за моей пассивно-агрессивной личности: P)
* * Пример 1 042:

Я бы хотел пометить мою рабочую копию чем-то, что git / svn / etc. будет признан чем-то, что я никогда не хочу совершать, как это:

#pragma mark nocommit
#warning TODO... figure out why this mismatch happens when you drag/drop a clip?
##pragma mark endnocommit

Это сэкономило бы мне ооооооо много времени по сравнению с другими предлагаемыми «не-решениями».

Хм ... кто-то еще предложил это:

http://rpm.pbone.net/index.php3/stat/4/idpl/30087865/dir/opensuse_13.x/com/perl-App-GitHooks-Plugin-BlockNOCOMMIT-1.0.2-4.1.noarch.rpm.html

1 Ответ

0 голосов
/ 03 ноября 2018

Git поддерживает некоторые хуки, как объяснено здесь 1002 *. Для вашего случая pre-commit крючок кажется подходящим. Этот хук запускается на вашем локальном компьютере, прежде чем вы фиксируете свой локальный клон.

Клиенты Subversion не поддерживают хуки, только сервер Subversion, как объяснено здесь и здесь . Добавление такого рода хуков на центральный сервер обычно не выполняется легко. Поэтому для SVN вы можете обернуть клиента svn оболочкой сценариев оболочки, которая перехватывает svn ci и подобные вещи и выполняет ваши проверки. Но это легко обойти для примеров IDE, которые напрямую используют SVN API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...