Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git alias for HEAD:refs/for/master

Tags:

I am configuring Gerrit and I would like to avoid writing:

git push gerrit HEAD:refs/for/master 

I would like to write:

git push review 

I am sure it's possible modifying .git/config but I can't make it work.

like image 624
Macarse Avatar asked Sep 14 '11 22:09

Macarse


People also ask

What are git aliases?

Git aliases are a powerful workflow tool that create shortcuts to frequently used Git commands. Using Git aliases will make you a faster and more efficient developer. Aliases can be used to wrap a sequence of Git commands into new faux Git command.

Where do I put git alias?

Your git aliases are often stored per your user's configuration at ~/. gitconfig . You can also manually set aliases using, for example, the command git config alias. s 'status -s' .

What are master refs?

git commit git push origin HEAD:refs/for/master. is the same as: git commit git push origin HEAD:refs/for/refs/heads/master. Gerrit uses the refs/for/ prefix to map the concept of "Pushing for Review" to the git protocol. For the git client, it looks like every push goes to the same branch, such as refs/for/master .


2 Answers

I set up two different push types, review and noreview:

for reviews:

git config remote.review.pushurl ssh://<GERRIT_HOST>:29418/<PROJECT_PATH>.git git config remote.review.push refs/heads/*:refs/for/* git push review # this will push your current branch up for review 

to bypass review:

git config remote.noreview.pushurl ssh://<GERRIT_HOST>:29418/<PROJECT_PATH>.git git config remote.noreview.push refs/heads/* git push noreview # this will push your current branch up, bypassing review 

Note that there are some Gerrit Project changes that need to be made by the Project Owner/Gerrit Admin in order to bypass a review as well. I think the "Push" permission will need to be added to the project for refs/* (unless you're getting specific about what branch you'll allow bypassing the review in). However, for reviews, the permissions needed to post in will already be set up. In other words, if your

git push gerrit HEAD:refs/for/master 

is working, than the "review" part above should work as well without changing anything else.

like image 70
Alex Brown Avatar answered Sep 29 '22 10:09

Alex Brown


Why don't create bash alias?

alias review="git push gerrit HEAD:refs/for/master" 

Now you can just type:

review 

If you want to work on more than one gerrit branch, check my bash helpers for that: https://github.com/tomwys/gerrit-bash-commands

like image 37
Tomasz Wysocki Avatar answered Sep 29 '22 11:09

Tomasz Wysocki