Git pushing from Netbeans to Gerrit

I have a problem while pushing commits for review to Gerrit from Netbeans 7.4 (on linux). My git config:

[core]
        repositoryformatversion = 0
        filemode = true
        logallrefupdates = true
        bare = false
[remote "origin"]
        url = ssh://xxx@git.yyyy.com:9418/xxx/gitTestWeb3
        fetch = +refs/heads/master:refs/remotes/origin/master
        push = HEAD:refs/for/master
[user]
        name = Mxxx Cxxx
        email = xxxx@yyyy.com
[branch "master"]
        remote = origin
        merge = refs/for/master
[push]
        default = upstream

When I try to start “Git -> Remote -> Push to Upstream” I receive “No tracked remote branch specified for local master” error. When I use “Git -> Remote -> Push…” my commit is always added to the master branch directly. Netbeans log:

  • Edit project.config in a Gerrit project
  • Git push to peer branch
  • Why does Gerrit compares a newly added file with a renamed file?
  • why is git-cherrypick saying nothing to commit
  • Rejection when removing remote branch on git
  • Gerrit - Replicating to github?
  • ==[IDE]== 2014-02-24 16:37:53 Pushing - gitTestWeb3
    git branch
    git remote -v
    setting up remote: origin
    git push ssh://xxx@git.yyyy.com:9418/xxx/gitTestWeb3 refs/heads/master:refs/heads/master
    Remote Repository Updates
    Branch Update : master
    Old Id        : 38806fc76a933f4538a5f0b9fc500bd69309faba
    New Id        : 38806fc76a933f4538a5f0b9fc500bd69309faba
    Result        : UP_TO_DATE
    
    Local Repository Updates
    Branch Update : origin/master
    Old Id        : 9d048427bb50d7de642083a903a18a11568eadec
    New Id        : 38806fc76a933f4538a5f0b9fc500bd69309faba
    Result        : FAST_FORWARD
    
    ==[IDE]== 2014-02-24 16:37:54 Pushing - gitTestWeb3 finished.
    

    Is it any way to enforce Neteans git plugin to honor git configuration? Or should I configure something else?

    BTW it also seams that git hooks are not fired; I have a Gerrit’s commit-msg installed, but a message is not modified after NB commit; from the command line it works perfectly.

    BTW2 exactly the same git configuration works perfectly with eclipse (event Juno). Fetches are done from master while all pushes come to refs/for/master to be reviewed.

  • Git line number before and after
  • How to list all tags that contain a commit?
  • Some files have been deleted when conflicts occurs after merging in Visual Studio
  • Prevent accidental checkin of password file using git
  • Git - filter before/on clone
  • GWT Source Code Repo - GIT and SVN - which is the one to track for changes?
  • One Solution collect form web for “Git pushing from Netbeans to Gerrit”

    In an effort to get this working from the IDE (using a somewhat loose definition of “from the IDE” here), I’ve had to roll my own a bit. Hopefully the NetBeans team or some hero of the community who has time on their hands will get this working from the commit dialog within the IDE simply based on the repo type and the installed hooks. As long as you have the terminal working in NetBeans (Cygwin on Windows in my case) you can pretty easily get the hook message Change Id you need, and also get the Gerrit publishing working too.

    I first copied the commit-msg form the hook to a directory in my path (my user’s bin), and added $@ on the last line of the script so that the script’s functions could be called from the command line. Then I added an alias for calling it, along with another alias for performing the Gerrit publish from my local repo. I also created a simple commit message template in the NetBeans commit dialog’s “Load Template” popup dialog that looks like this:

    Change-Id: I
    

    Having this get pre-populated in the commit message is nice as it reminds me (we just started using Gerrit) that code review needs to be done and I’ll need to fill in the rest of the change ID. Here’s my .bashrc alias for doing that:

    alias getChangeId="commit-msg _gen_ChangeId 2>/dev/null"
    

    After getting the rest of the change ID portion of the message and adding whatever other lines above it for the change and commiting, I’m ready to call the alias for publishing to Gerrit from the command line at the root of my branch. Here’s that:

    alias gerritPublish='_gerritPublish'
    _gerritPublish ()
    {
        localBranch=`git rev-parse --abbrev-ref HEAD`
        git push -u --progress "origin" HEAD:refs/publish/dev/$localBranch
    }
    

    The Amend Last Commit still works fine from the IDE’s commit dialog, and fills in the correct message and change ID, so that’s nice to have. I like to use the IDE’s commit dialog instead of solely the command line because of it’s great built in side by side diffing. Still, all of this is not as clean as I’d like, but it’s working well for now, and I don’t have to fire up any other tools or leave NetBeans, so I hope it helps.

    Git Baby is a git and github fan, let's start git clone.