我在GitHub上托管了一个私人仓库.我也想使用Gerrit,尤其是Hudson Gerrit Trigger插件.AFAICT,没有任何简单的解决方案可以将它们一起使用.
我对以下任何想要的任何帮助表示感谢.
手动:我正常克隆回购,然后H2像这样添加:
INSERT INTO projects
(use_contributor_agreements,submit_type,name)
VALUES
('N','M','new/Repo');
Run Code Online (Sandbox Code Playgroud)
期间init:
*** Git Repositories
***
Location of Git repositories [git]: git@github.com:YourName/Repo.git
Run Code Online (Sandbox Code Playgroud)
我不认为这是正确的.
手动:
我收到此错误: repository not found: Cannot open repository Repo
期间init:
创建目录at ~/gerrit2/git@github.com:YourName/Repo.git和子目录Repo.git,该目录本身包含一个空的Gitrepo.不完全是我想要的.
我正在尝试将Gerrit设置为使用我们的企业Active Directory进行身份验证.我知道有很多人设法让这个工作,但它对我不起作用.
如果我运行ldapsearch如下命令,我得到正确的结果,所以我知道我的搜索字符串是正确的:
ldapsearch -h myserver -b "CN=Users,DC=mycompany,DC=com" -D "CN=adam,CN=Users,DC=mycompany,DC=com" -w mypassword "(sAMAccountName=adam)"
Run Code Online (Sandbox Code Playgroud)
但是在我的Gerrit配置中使用这些相同的设置不起作用:
[auth]
type = LDAP
[ldap]
server = ldap://myserver
accountBase = CN=Users,DC=mycompany,DC=com
groupBase = OU=Gerrit,DC=mycompany,DC=com
user = CN=adam,CN=Users,DC=mycompany,DC=com
password = mypassword
referral = follow
accountPattern = (sAMAccountName=${username})
groupPattern = (cn=${groupname})
accountFullName = displayName
accountMemberField = memberOf
accountEmailAddress = mail
Run Code Online (Sandbox Code Playgroud)
当我尝试使用我的帐户登录时,我得到以下异常etc/error_log:
[2012-05-04 10:03:04,595] ERROR com.google.gerrit.server.auth.ldap.LdapRealm : Cannot query LDAP to autenticate user
javax.naming.NamingException: [LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment: In order …Run Code Online (Sandbox Code Playgroud) 是否有推荐的工作流程在Gerrit中使用git-flow功能分支?任何最佳做法?
我们正在启动一个包含多个开发人员的项目和一个由Git管理的中央存储库.使用git-flow,我遇到了将功能分支推送到Gerrit的问题,作为在功能未完成时备份开发人员工作的一种方法:
我们不希望在开发时审查功能分支,因此我们允许所有开发人员直接推送到refs/heads/feature/*,绕过魔术审查分支.我们希望在功能分支合并到开发分支时进行审核,但是当开发人员在合并之后将其工作推送到Gerrit时,只有合并提交才能进行审核.功能分支中所做的更改不会出现在此修补程序集中.我认为这是因为这些更改被直接推送到refs/heads/feature/*所以Gerrit认为他们不再需要审阅了.
开发人员是否应该在完成功能分支之前将功能分支推送到Gerrit?为了能够做到这一点,她需要在refs/heads/feature/*和refs/for/refs/heads/feature/*上推送和创建引用的权限,确保她只推送到审查分支.
任何帮助将非常感谢.
我有MainGerritServer很多项目.
另外,我RogueGerritServer也有很多项目.
我正在寻找一种方式来移动ProjectA从RogueGerritServer到MainGerritServer同时保留这两个混帐提交历史以及与格里特回顾历史.
例如,我想将Android项目的Gerrit历史记录导入到我自己的Gerrit服务器上,这样当我在Android的分叉版本上工作时,我可以在本地服务器上查找Gerrit历史记录.最好的方法是什么?
如果它是一个简单的Git安装,我只需克隆ProjectA到我的电脑然后推送到MainGerritServer.基于Gerrit的项目是否以相同的方式工作?
我担心因为Gerrit安装在后台使用数据库,我不确定是否还需要迁移数据库中的信息.我看到很多关于采用数据库转储并将其移动到全新服务器的线程.但是,我试图只移动一个项目,因此采用数据库转储似乎不合适.我看到的最接近的答案是,这仍然不是我正在寻找的.
我很感激任何帮助,特别是如果你能告诉我我是否误解了如何处理这个问题.
谢谢
我已经将Gerrit配置为允许Push Merge Commit在我的分支上,但是当我尝试推送合并提交时仍然会出现以下错误:
! [remote rejected] ANDROID-foo -> ANDROID-foo (you are not allowed to upload merges)
Run Code Online (Sandbox Code Playgroud)
我正在运行Gerrit 2.8-1-gaa9367b.
为了改进开发过程,我们的组织决定在开发工作流程中引入Gerrit.我是负责实施Gerrit服务器的人.互联网上提供的用户指南非常有助于将Gerrit实施到我们现有的工作流程中.我们使用Jenkins和Sonar作为非交互式用户来验证构建.但在处理存储库时,一个问题就出现了.大多数开源都使用gerrit-replication插件将最新代码复制到他们的公共代码库.使用GitLab公开这些公共存储库,以便用户可以克隆代码.在这里,我们不需要公共存储库,因为代码是在内部维护的.
将GitLab和Gerrit指向一个通用的git存储库位置是一个不错的选择吗?
任何帮助赞赏.
是否可以通过提交消息在Gerrit中添加审阅者?考虑以下提交消息:
component: make foo more bar
Foo was not bar enough, this change adds more bar to make foo fit better
in baz.
Change-Id: I4724e283214e0bfbb85a8e3d8db4971618e2609a
Cc: alice@example.com
Cc: bob@example.net
Run Code Online (Sandbox Code Playgroud)
在这里,alice@example.com并且bob@example.net必须在推动gerrit时添加为审阅者.
我知道一个特殊的分支说明符来添加审阅者,但是我希望在创建提交时有更自动化的东西.这些更改是独立的,但如果我可以将它们分组到主题分支上是很好的,因为它们是相关的.
我安装并配置了自己的Gerrit服务器.我使用web gui为Gerrit创建了一个存储库.我能够使用"git"命令成功克隆这个空的存储库,所以配置似乎没问题.接下来,我:
配置我的访问:git config --global user.email ...,git config --global user.name ...,
添加的远程:git add remote origin myUser@myGitHost:29418/project.git,
创建并提交文件:git add file,git commit -m "first commit".
到现在为止还挺好.
但是,当我尝试将其推送到我的仓库时,我得到输出:
myUser@myGitHost:~/project$ git push origin master
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 525 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://myUser@myGitHost:29418/project.git
! [remote …Run Code Online (Sandbox Code Playgroud) 我们的目标是使用git和gerrit基于托管在外部仓库(github)上的项目进行内部开发.我们会定期从外部仓库中提取新的变更和分支,并使用gerrit来管理审核流程(以及Jenkins构建所有流程).
我们的初始过程是通过git从外部仓库克隆到本地仓库,然后在gerrit中创建一个空项目,最后将本地克隆推送到gerrit.
然而,在那时,我们看到gerrit repo中没有分支!现在我们通过手动添加分支和refids来解决这个问题,但这看起来很复杂和脆弱.我认为外部分支会默认进入,没有额外的扭曲.他们当然是在github repo制作的克隆中.
理想情况下,能够直接从github克隆到gerrit并让它正常工作是很好的...不清楚为什么额外的本地回购只需要转移东西,或为什么分支不出现在gerrit中将本地克隆推送到它时进行克隆.建议?
我喜欢简单地使用git push(仅)将当前分支推送到配置的上游.为此,我设置git config push.default upstream哪个做正确的事情.
现在我尝试为Gerrit设置一个合适的遥控器,它会自动推送到refs/for/*.
这个想法是这样做的:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
Run Code Online (Sandbox Code Playgroud)
我想键入git push gerrit并期望git只将当前分支推送到正确的ref.
不幸的是现在git试图将所有本地分支推送到Gerrit.- 有没有办法告诉git只推送当前分支,push.default如上所述?
更新:
对于Gerrit,我需要一个refspec,比如'branch:refs/for/branch',branch是当前的分支.
题:
git push自动推送到正确的refs/ref?目前,像建议我发现最好的办法是在包装一个单独的脚本都在这里.但我仍然不相信只有合适的refspec是不可能的.