我在从Netbeans 7.4(在Linux上)向Gerrit提交审核提交时遇到了问题。我的git配置:
[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
当我尝试启动“Git - > Remote - > Push to Upstream”时,我收到“没有为本地主机指定的跟踪远程分支”错误。当我使用“Git - > Remote - > Push ...”时,我的提交总是直接添加到主分支。 Netbeans日志:
==[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.
是否有任何方法可以强制使用Neteans git插件来支持git配置?或者我应该配置其他东西吗?
BTW它也接缝git hooks没有被解雇;我安装了Gerrit的commit-msg,但是在NB提交后没有修改消息;它从命令行运行得很好。
BTW2完全相同的git配置与eclipse(事件Juno)完美配合。从主人那里获取提取物,而所有推动都来自refs / for / master进行审查。
答案 0 :(得分:0)
为了让这个从IDE工作(使用稍微宽松的定义"来自IDE"这里),我不得不自己动手。希望NetBeans团队或社区中的一些有时间的英雄将根据repo类型和已安装的钩子从IDE中的提交对话框中获得此功能。只要您的终端在NetBeans中运行(在我的情况下是Windows上的Cygwin),您就可以非常轻松地获取所需的挂钩消息Change Id,并且还可以使Gerrit发布工作。
我首先将钩子的commit-msg复制到我路径中的目录(我的用户的bin),并在脚本的最后一行添加了$@
,以便脚本“可以从命令行调用s函数。然后我添加了一个用于调用它的别名,以及用于从我的本地仓库执行Gerrit发布的另一个别名。我还在NetBeans提交对话框中创建了一个简单的提交消息模板"加载模板"弹出对话框,如下所示:
Change-Id: I
将这个预先填充在提交消息中是很好的,因为它提醒我(我们刚开始使用Gerrit)需要完成代码审查,并且我需要填写其余的更改ID。这是我的.bashrc别名:
alias getChangeId="commit-msg _gen_ChangeId 2>/dev/null"
获取消息的其余更改ID部分并添加其上方的任何其他行以进行更改和提交之后,我已准备好调用别名,以便从命令行发布到Gerrit的根目录。我的分支。这是:
alias gerritPublish='_gerritPublish'
_gerritPublish ()
{
localBranch=`git rev-parse --abbrev-ref HEAD`
git push -u --progress "origin" HEAD:refs/publish/dev/$localBranch
}
Amend Last Commit仍然可以在IDE的提交对话框中正常工作,并填写正确的消息并更改ID,这样很高兴。我喜欢使用IDE的提交对话框,而不仅仅是命令行,因为它具有很好的内置并排功能。尽管如此,所有这些并不像我想的那么干净,但它现在运行良好,而且我不需要启动任何其他工具或离开NetBeans,所以我希望它帮助