Совет для Git Repo, который должен иметь возможность накапливать файлы в файле каталога слияния, защищая определенный файл во время разработки теста - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть git-репо для моей команды, чтобы отслеживать мою архитектуру тестирования и тестовые случаи для модели.

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

Чтобы объединить изменения в этом файле, тесты будут экспортированы и затем добавлены в каталог слияния с репозиторием.

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

В этом процессе у меня есть несколько проблем:

  1. Кажется ли описываемый мной процесс описаннымнесколько разумно?

  2. Возможно ли, чтобы создатели тестовых примеров добавляли / фиксировали / помещали изменения в папку слияния без перезаписив «специальном файле».(в то же время они не должны никого удалять в этом каталоге, я думаю, что git add. testCases \ toBeMerged справится с этим, хотя я не совсем уверен)?

  3. I 'мы обнаружили, что если один из авторов тестов сделал push, то следующий должен выполнить его, прежде чем он сможет добавить свои изменения.Было бы плохо, если бы во время процесса извлечения локальный специальный файл был перезаписан. Как я могу его защитить?

  4. Будут моменты, когда тестирующий захочет «начать заново», как можетЯ разрешаю им извлекать и перезаписывать все локальные файлы в этом сценарии, включая специальный файл?

1 Ответ

0 голосов
/ 17 февраля 2019

Было бы плохо, если во время процесса извлечения локальный специальный файл был перезаписан, как я могу его защитить?

Тогда ... не делайте версию этого.Он не будет частью процесса извлечения / слияния и не будет затронут или удален.

Вместо этого: генерируйте его автоматически при оформлении заказа с помощью smudge части скрипта драйвер фильтра содержимого , используя .gitattributes объявление .

smudge (изображение из " CustomizingGit - атрибуты Git", из" Pro Git book")

Сгенерированный фактический файл остается игнорируемым (.gitignore): ваше действительное рабочее дерево делаетне становится «грязным».

Сценарий smudge:

  • определяет правильную среду (например, ветвь с branch=$(git rev-parse --symbolic --abbrev-ref HEAD))
  • выбирает правильнуюфайлы значений (например, контрольные примеры «для объединения») и создает правильный файл на основе шаблона во время git checkout.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...