首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不工作: GitBlit groovy钩子,它将推送到其他Gitblit服务器回购

不工作: GitBlit groovy钩子,它将推送到其他Gitblit服务器回购
EN

Stack Overflow用户
提问于 2015-05-21 05:29:19
回答 1查看 791关注 0票数 0

需要一个groovy推送钩子脚本,将更改从Gitblit实例推送到另一个Gitblit实例。

我有两个私有的linux servers,比如AB,两者都安装了GitBlit。所有开发人员都会在服务器A上提交和推送他们的更改,我希望BA保持同步。

Assh://admin@serverA:29418/testrepo.git

最初,我使用linux将testrepo从服务器A复制到B

Bssh://admin@serverB:29418/testrepo.git

pushserver.groovy

代码语言:javascript
复制
import com.gitblit.GitBlit
import com.gitblit.Keys
import com.gitblit.models.RepositoryModel
import com.gitblit.models.TeamModel
import com.gitblit.models.UserModel
import com.gitblit.utils.JGitUtils
import com.gitblit.utils.StringUtils
import java.text.SimpleDateFormat
import org.eclipse.jgit.api.CloneCommand
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.lib.Config
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.eclipse.jgit.util.FileUtils
import org.slf4j.Logger

File baseFolder = GitBlit.getFileOrFolder(Keys.git.repositoriesFolder)
File repoFolder = new File(baseFolder, repository.name);
Git git = Git.open(repoFolder, FS.detect())
git.push().setRemote("ssh://admin@serverB:29418/testrepo.git").setPushAll().call();

我使用Gitblit添加了这个脚本

testresopistory.git> edit> receive> post-receive scripts> selected(pushserver)

服务器重新启动:现在当我要在serverA上推送一个文件时,为什么这个脚本不将更改推送到serverB

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-15 04:53:02

多亏了詹姆斯·莫格

Cheers!! :) --它和顶钩一起工作

代码语言:javascript
复制
import com.gitblit.GitBlit
import com.gitblit.Keys
import com.gitblit.models.RepositoryModel
import com.gitblit.models.TeamModel
import com.gitblit.models.UserModel
import com.gitblit.utils.JGitUtils
import com.gitblit.utils.StringUtils
import java.text.SimpleDateFormat
import org.eclipse.jgit.api.CloneCommand
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.lib.Config
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.eclipse.jgit.util.FileUtils
import org.eclipse.jgit.util.FS
import org.slf4j.Logger


logger.info("*************** START CUSTOM PUSH *******************")

File baseFolder = new File("/root/softwares/apache-tomcat-6.0.32/webapps/gitblit/WEB-INF/data/git");
File repoFolder = new File(baseFolder, repository.name);
Git git = Git.open(repoFolder, FS.detect())
git.push().setRemote("ssh://admin@111.11.111.111:29418/testrepo.git").setPushAll().call();


logger.info("*************** DONE CUSTOM PUSH*******************")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30365265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档