This is an old revision of the document!
User repositories
Contributors now have the possibility to create user repositories. This allows all developers with git permissions to create their own repository with the following wildcard:
users/$user/[a-z0-9-]+
This is useful when you have no permission to commit upstream directly or you want to work on some code privately without bothering other. Compared to upstream repositories, user repositories have more permissions (for the creator):
- You can create any branch name and delete them
- Possible to rewind push / loose commits (see the
git-push -f
command) - You can decide which other users have write access to your repository as well, see below
- No notification emails are send to the xfce4-commits mailing list
So also for developers with up-stream access rights, it is always advised to work on large patches in a user repository first.
Push to a private repository
Most often you will continue from the upstream repository and then push your changes on top of that to your user repo branch. If so follow the steps below:
# clone the upstream repository git clone git://git.xfce.org/xfce/xfwm4 # add a new remote repository with the name 'private' git remote add private ssh://git@git.xfce.org/users/$user/xfwm4 # create a new branch # note we give the local branch name a different name so you can see to which remote it points git checkout -b private-bug-1234 --track private/bug-1234 # improve the code and make commits # push you changes # the first time you do this, the server will create the repository if needed git push
Repository maintenance
There are a couple of commands for gitolite to maintain your private repository.
Adding a description
Set the description
file contents at the remote repository
ssh git@git.xfce.org desc users/$user/$name "Your single-line repository description for cgit"
Give other users write access
By default you are the only user with write access to the repository. To allow other to push changes as well (they can only push forward commits, and have no rights to create and delete), use this command:
ssh git@git.xfce.org perms users/$user/$name + WRITERS $otheruser
The same command as above but with the minus-sign can be used to revoke the permission.
For more options, like listing permissions, see the usage help of the perms
command:
ssh git@git.xfce.org perms -h