标签: gerrit

让GitHub和Gerrit玩得很好

我在GitHub托管了一个私人仓库.我也想使用Gerrit,尤其是Hudson Gerrit Trigger插件.AFAICT,没有任何简单的解决方案可以将它们一起使用.

我对以下任何想要的任何帮助表示感谢.


我想要的是

  • 克隆GitHub repo并添加到Gerrit的项目中:
    1. 手动,或
    2. init
  • 使用Gerrit与GitHub合并更改

我试过的

克隆/添加...

手动:我正常克隆回购,然后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.不完全是我想要的.

git github repository gerrit

9
推荐指数
1
解决办法
3694
查看次数

Gerrit和Active Directory

我正在尝试将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)

git ldap active-directory gerrit

9
推荐指数
1
解决办法
1万
查看次数

使用git-flow功能分支和Gerrit的工作流程

是否有推荐的工作流程在Gerrit中使用git-flow功能分支?任何最佳做法?

我们正在启动一个包含多个开发人员的项目和一个由Git管理的中央存储库.使用git-flow,我遇到了将功能分支推送到Gerrit的问题,作为在功能未完成时备份开发人员工作的一种方法:

我们不希望在开发时审查功能分支,因此我们允许所有开发人员直接推送到refs/heads/feature/*,绕过魔术审查分支.我们希望在功能分支合并到开发分支时进行审核,但是当开发人员在合并之后将其工作推送到Gerrit时,只有合并提交才能进行审核.功能分支中所做的更改不会出现在此修补程序集中.我认为这是因为这些更改被直接推送到refs/heads/feature/*所以Gerrit认为他们不再需要审阅了.

开发人员是否应该在完成功能分支之前将功能分支推送到Gerrit?为了能够做到这一点,她需要在refs/heads/feature/*和refs/for/refs/heads/feature/*上推送和创建引用的权限,确保她只推送到审查分支.

任何帮助将非常感谢.

git workflow gerrit git-flow

9
推荐指数
2
解决办法
8780
查看次数

将Gerrit项目迁移到Gerrit的其他实例

我有MainGerritServer很多项目.
另外,我RogueGerritServer也有很多项目.

我正在寻找一种方式来移动ProjectARogueGerritServerMainGerritServer同时保留这两个混帐提交历史以及与格里特回顾历史.

例如,我想将Android项目的Gerrit历史记录导入到我自己的Gerrit服务器上,这样当我在Android的分叉版本上工作时,我可以在本地服务器上查找Gerrit历史记录.最好的方法是什么?

如果它是一个简单的Git安装,我只需克隆ProjectA到我的电脑然后推送到MainGerritServer.基于Gerrit的项目是否以相同的方式工作?

我担心因为Gerrit安装在后台使用数据库,我不确定是否还需要迁移数据库中的信息.我看到很多关于采用数据库转储并将其移动到全新服务器的线程.但是,我试图只移动一个项目,因此采用数据库转储似乎不合适.我看到的最接近的答案是,仍然不是我正在寻找的.

我很感激任何帮助,特别是如果你能告诉我我是否误解了如何处理这个问题.

谢谢

migration git migrate gerrit

9
推荐指数
2
解决办法
7955
查看次数

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

9
推荐指数
3
解决办法
2万
查看次数

Gerrit - Gitlab集成

为了改进开发过程,我们的组织决定在开发工作流程中引入Gerrit.我是负责实施Gerrit服务器的人.互联网上提供的用户指南非常有助于将Gerrit实施到我们现有的工作流程中.我们使用Jenkins和Sonar作为非交互式用户来验证构建.但在处理存储库时,一个问题就出现了.大多数开源都使用gerrit-replication插件将最新代码复制到他们的公共代码库.使用GitLab公开这些公共存储库,以便用户可以克隆代码.在这里,我们不需要公共存储库,因为代码是在内部维护的.

将GitLab和Gerrit指向一个通用的git存储库位置是一个不错的选择吗?

任何帮助赞赏.

git gerrit gitlab

9
推荐指数
1
解决办法
2万
查看次数

通过提交消息添加审阅者

是否可以通过提交消息在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时添加为审阅者.

我知道一个特殊的分支说明符来添加审阅者,但是我希望在创建提交时有更自动化的东西.这些更改是独立的,但如果我可以将它们分组到主题分支上是很好的,因为它们是相关的.

git gerrit

9
推荐指数
2
解决办法
1万
查看次数

Gerrit代码审查推送到空仓库不起作用

我安装并配置了自己的Gerrit服务器.我使用web gui为Gerrit创建了一个存储库.我能够使用"git"命令成功克隆这个空的存储库,所以配置似乎没问题.接下来,我:

  1. 配置我的访问:git config --global user.email ...,git config --global user.name ...,

  2. 添加的远程:git add remote origin myUser@myGitHost:29418/project.git,

  3. 创建并提交文件: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 push gerrit fast-forward

8
推荐指数
1
解决办法
6241
查看次数

基于github项目获取本地gerrit和存储库(包括分支)

我们的目标是使用git和gerrit基于托管在外部仓库(github)上的项目进行内部开发.我们会定期从外部仓库中提取新的变更和分支,并使用gerrit来管理审核流程(以及Jenkins构建所有流程).

我们的初始过程是通过git从外部仓库克隆到本地仓库,然后在gerrit中创建一个空项目,最后将本地克隆推送到gerrit.

然而,在那时,我们看到gerrit repo中没有分支!现在我们通过手动添加分支和refids来解决这个问题,但这看起来很复杂和脆弱.我认为外部分支会默认进入,没有额外的扭曲.他们当然是在github repo制作的克隆中.

理想情况下,能够直接从github克隆到gerrit并让它正常工作是很好的...不清楚为什么额外的本地回购只需要转移东西,或为什么分支不出现在gerrit中将本地克隆推送到它时进行克隆.建议?

git github gerrit

8
推荐指数
1
解决办法
5157
查看次数

将当前分支推送到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如上所述?

更新:

  • Git push只能使用一个refspec.
  • 如果在命令行上给出了明确的refspec,则使用此refspec.
  • 如果命令行中没有给出,则使用使用远程定义的那个.
  • 如果没有给出遥控器,则只考虑push.default.

对于Gerrit,我需要一个refspec,比如'branch:refs/for/branch',branch是当前的分支.

题:

  • 是否有一个明确的refspec等同于push.default = upstream正在做什么?
  • 有没有办法配置git使一个普通的git push自动推送到正确的refs/ref?

目前,像建议我发现最好的办法是在包装一个单独的脚本都在这里.但我仍然不相信只有合适的refspec是不可能的.

git gerrit

8
推荐指数
1
解决办法
3377
查看次数