# disable branch modification

3 messages from 2009-07-18 to 2009-08-04. Participants: Ishaaq Chandy, Andreas Ericsson, Alex Riesen.
Thread: https://gitlist.dev/t/20155

## Ishaaq Chandy, 2009-07-18 18:16

Subject: disable branch modification
Message-ID: <24550469.post@talk.nabble.com>
URL: https://gitlist.dev/e/24550469.post%40talk.nabble.com

```

Hi all,
I've got a remote git repository that I want multiple users to be able to
push to. This is all set up fine and working beautifully. The only thing is,
I want to be able to lock down the branches on this remote repo, once set up
users should not be able to:

1. Create new branches on it
2. Delete existing branches from it
3. push non-fast-forward commits to it.

I think I'll need to write a pre-receive hook for this, but before I embark
on this, any helpful pointers would be appreciated.

Thanks,
Ishaaq
-- 
View this message in context: http://www.nabble.com/disable-branch-modification-tp24550469p24550469.html
Sent from the git mailing list archive at Nabble.com.

```

## Andreas Ericsson, 2009-08-04 13:36

Subject: Re: disable branch modification
Message-ID: <4A78396B.70004@op5.se>
URL: https://gitlist.dev/e/4A78396B.70004%40op5.se
In-Reply-To: <24550469.post@talk.nabble.com>

```
Ishaaq Chandy wrote:
> Hi all,
> I've got a remote git repository that I want multiple users to be able to
> push to. This is all set up fine and working beautifully. The only thing is,
> I want to be able to lock down the branches on this remote repo, once set up
> users should not be able to:
> 
> 1. Create new branches on it
> 2. Delete existing branches from it
> 3. push non-fast-forward commits to it.
> 
> I think I'll need to write a pre-receive hook for this, but before I embark
> on this, any helpful pointers would be appreciated.
> 

I did this once so that users could only push to branches in a namespace
beginning with their username, so the user "hgb" could only write to
"hgb/master" and never to "master" directly (for example). This provides
maximum freedom to the users while making sure they never muck about with
any "official" branches.

The script to accomplish this is, alas, lost.

Denying non-fast-forwards even if --force is in effect is a config option
these days, I think.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

```

## Alex Riesen, 2009-08-04 16:50

Subject: Re: disable branch modification
Message-ID: <81b0412b0908040950j1aa8ca04t68061a79c96f6522@mail.gmail.com>
URL: https://gitlist.dev/e/81b0412b0908040950j1aa8ca04t68061a79c96f6522%40mail.gmail.com
In-Reply-To: <24550469.post@talk.nabble.com>

```
On Sat, Jul 18, 2009 at 20:16, Ishaaq Chandy<ishaaq@gmail.com> wrote:
> 1. Create new branches on it
> 2. Delete existing branches from it

You cannot have these.

> 3. push non-fast-forward commits to it.
>
> I think I'll need to write a pre-receive hook for this, but before I embark
> on this, any helpful pointers would be appreciated.

Look in the mailing list archives for pre-receive, update and SSH,
there were some good examples of update and pre-receive posted.
Also, there is contrib/hooks/update-paranoid in Git repo. It
implements an ACL per SSH user.

```
