Как я могу предотвратить толкание нескольких голов? - PullRequest
4 голосов
/ 16 августа 2011

У меня есть коллеги, которые нажимают несколько голов с помощью переключателя --force, потому что они не слились должным образом.

Есть ли способы предотвратить это?

Ответы [ 5 ]

6 голосов
/ 16 августа 2011

Вы можете сделать это с помощью pretxnchangegroup хука на стороне сервера.

Вот несколько примеров: http://www.softwareprojects.com/resources/programming/t-mercurial-hook-forbid-2-heads-1910.html

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

2 голосов
/ 15 января 2014

Это лучший от лучших опытных разработчиков: http://hg.python.org/hooks/file/default/checkheads.py

Посетите http://hg.python.org/hooks/file/default/ для получения списка других полезных хуков.

2 голосов
/ 17 августа 2011

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

На работе мы ограничиваем его одной головкой / веткой.По сути, замените activid_2head.sh следующим:

#!/bin/bash

# Ensure only one head per branch in hg repository
for BRANCH in `hg branches -qa`
do
    COUNT=`hg heads -q $BRANCH | wc -l`
    if [ "$COUNT" -ne "1" ] ; then
       echo "Error: Trying to push more than one head to branch $BRANCH."
       exit 1
    fi
done
exit 0
1 голос
/ 16 августа 2011

Вы можете отозвать их права на передачу в репозиторий, к которому они --force, и заставить их отправлять на другой сервер или отправить изменения через исправление.

0 голосов
/ 16 августа 2011

Прежде всего, я бы сказал разработчикам, что --force push не разрешен.

Я бы также использовал решение для перехвата на стороне сервера, как описано выше, и в перехвате добавляю электронное письмо всемзаявив, что ВОЗ пыталась протолкнуть несколько голов в центральный репозиторий [и затем отформатировать свой жесткий диск;)]

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