Нужно ли мне снова нажать кнопку pre-commit ?
Это может справиться со многими вещами, но главной причиной этого является предотвращение изменения файлов людьми. Вы можете управлять поведением фиксации через управляющий файл:
[ FILE The repository is now locked and you are no longer allowed to change files]
Match = .*
access = read-only
users = @ALL
[ File Except for me. I can do whatever I want]
match = .*
access = read-write
users = si
Контрольный файл может находиться внутри хранилища, поэтому вам не нужен доступ к серверу. Просто извлеките контрольный файл, отредактируйте его и подтвердите. (И, конечно, сценарий предварительной фиксации контролирует доступ к тому, кто может изменять контрольный файл!)
Что вы, вероятно, хотите сделать, это использовать ветки для релизов. Мы используем Jenkins и делаем все через номер сборки Jenkins. Разработчики скажут: «Я хочу разветвить сборку # 50, и она разветвляется, или« Давайте пометим сборку # 51, и она будет помечена.
Мы разветвляемся, когда вы, вероятно, хотите заблокировать свой репозиторий. Тем не менее, мы разрешаем разработчикам продолжать работу по соединительной линии, а затем ограничивать число тех, кто может работать в ответвлении:
[group cm]
users = si
[group Release]
users = bob, alice
[group developers]
users = robert fred cindy @Release
[file You do not have access to make changes to this repository]
match = .*
access = read-only
users = @all
[file Let all developers work on the trunk]
file = /trunk/**
access = read-write
users = @developers
[file only release group can work on the 4.5 branch]
file = /branches/4.5/**
access = read-write
users = @release
[file You cannot edit a tag. You can only create a tag]
file = /tags/*/
access = add-only
Users = all
[file CM group can do anything]
file = .*
access = read-write
users = @CM
Разрешения читаются в обратном порядке, и последнее разрешение, которое применяется к вам, это то, которое вы получаете. Разработчики могут получить доступ к транку. Выпускники могут работать в ветке 4.5, но не в других ветках. Специальный доступ add-only
позволяет вам создавать теги, но не изменять теги. /tags/*/
означает, что вы можете создавать теги только непосредственно в каталоге тегов, и это должен быть каталог, скопированный из другого места.