如果发现git push到gerrit的文件不全怎么办

如果发现git push到gerrit的文件不全怎么办,第1张

对于一个较大的Git工程,你可能会想在多个仓库之间共享代码,不管这些代码是在多个不同产品间使用的项目共享库或是一些模板。Git通过子模块来实现这样的需求。子模块允许将其他代码仓库的克隆作为子目录放到一个父仓库(有时候也称为父项目)中。一个子模块也是一个独立的仓库,你可以像其他仓库一样执行commit,branch,rebase等等 *** 作。

JGit提供了实现大部分Git子模块命令的API。我将在这儿给大家介绍这些API。

设置

本文中用到的代码片段将作为学习测试程序。简单的测试程序有助于理解第三方库是如何工作,以及如何使用新的API。你可以将这些测试程序看做是可控制的试验,帮助你更加直观地发现第三方代码是如何执行的。

除此之外,如果你保持编写测试程序,可以帮助你检验第三方代码的新版本。如果你的测试程序涵盖了如何调用这些库,那么第三方代码中不兼容的修改将会尽早展现出来。

回到之前的话题,所有的测试程序共享同一个设置,详细信息请查看源代码。现在有一个空的仓库,叫parent,以及另一个仓库叫library。测试程序中,library将会作为子模块添加到parent仓库中。library仓库初始化提交了一个readmetxt文件。测试程序中有一个setUp方法,用来创建这两个仓库,如下所示:

1

Git git = Gitinit()setDirectory( "/tmp/path/to/repo" )call();

这两个仓库用类型为Git的parent和library变量表示。该类封装了一个仓库并允许访问JGit的所有可用指令。就如较早之前我在这里中提到,每个Commnad类对应于一条原生的Git pocelain指令。调用一个指令需要用到生成器模式。举个例子,执行Gitcommit()的结果实际上相当于一个CommitCommand。你可以提供一些必要的参数去调用它的call()方法,从而执行相应的指令。

添加一个子模块

第一步当然是在一个已有的仓库添加子模块。通过上面提到的setUp步骤,library仓库应当作为子模块添加到parent仓库的modules/library目录下。

@Test

public void testAddSubmodule() throws Exception {

String uri

= librarygetRepository()getDirectory()getCanonicalPath();

SubmoduleAddCommand addCommand = parentsubmoduleAdd();

addCommandsetURI( uri );

addCommandsetPath( "modules/library" );

Repository repository = addCommandcall();

repositoryclose();

F‌ile workDir = parentgetRepository()getWorkTree();

F‌ile readme = new F‌ile( workDir, "modules/library/readmetxt" );

F‌ile gitmodules = new F‌ile( workDir, "gitmodules" );

assertTrue( readmeisF‌ile() );

assertTrue( gitmodulesisF‌ile() );

}

SubmoduleAddCommand对象需要知道两件事,第一是子模块从哪里克隆而来,第二是它应该存放在哪里。URI属性表示仓库库的克隆地址,这个克隆地址将会传递给clone命令。path属性则指定了相对于parent仓库根工作目录的路径,子模块将被存放在这个路径。这个指令执行之后,parent仓库的工作目录将会变成这样:

library仓库存放在modules/library目录下,而且它的工作目录树被检出。call()方法返回一个Repository对象,你可以把它当做一个常规的仓库来使用。这也意味着,你必须在程序中明确显式地关闭返回的仓库,以避免文件句柄泄露。

从上图我们可以看到,SubmoduleAddCommand做了一件事,它在parent仓库的根工作目录下创建了一个git模块文件,并把它添加到索引中。

以上就是关于如果发现git push到gerrit的文件不全怎么办全部的内容,包括:如果发现git push到gerrit的文件不全怎么办、如何添加一个git repo作为自身的一个模块、如何用 JGit 管理 Git 子模块等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9348767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存