其他分享
首页 > 其他分享> > 使用JGit Eclipse提交具体日期

使用JGit Eclipse提交具体日期

作者:互联网

我已经研究过从Java控制Git的可能性.
我发现的是:

>使用Runtime.getRuntime().exec(“git command”) – 使用git执行Java命令
>使用JavaGit API(http://javagit.sourceforge.net/)
要么
– 使用Eclipse JGit API(http://www.jgit.org/)

我尝试使用Runtime和ProcessBuilder为git编写自己的Java包装器,但是我遇到了进程线程的问题,等待线程完成一些时间.

然后,我研究了其他API解决方案.首先我尝试了JavaGit API,但我根本无法工作.

其次,我测试了JGit API,看起来很棒.但我很快就发现我无法像使用Java包装器那样设置提交日期:

ProcessBuilder pb = new ProcessBuilder("git", "commit", "--date=" + "\"" + customDateString + "\"", "-m \"" + comment + "\"");

我下载了JGit源代码,看看我是否可以实现它,但它读得太多了,我在Github上找不到任何问题跟踪器,以便JGit提出建议.

有人可以帮我这样做吗?
或者告诉我在哪里可以写信给开发人员提出建议?

解决方法:

很容易,如你所说,首先下载jgit

C:\> cd C:\Users\VonC\prog\git\
C:\Users\VonC\prog\git> git clone https://github.com/eclipse/jgit
C:\Users\VonC\prog\git> cd jgit

然后搜索涉及“authordate”的测试(‘tst’):

C:\Users\VonC\prog\git\jgit>grep -nRHIi authordate *|grep tst

org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitCommandTest.java:446:              final Date authorDate = new Date(1349621117000L);

这意味着您可以查看org.eclipse.jgit.test.tst.org.eclipse/jgit/api.CommitCommandTest,函数commitAmendWithoutAuthorShouldSetOriginalAuthorAndAuthorTime():

您将看到如何指定作者和作者日期:

final Date authorDate = new Date(1349621117000L);
PersonIdent firstAuthor = new PersonIdent(authorName, authorEmail,
   authorDate, TimeZone.getTimeZone("UTC"));
git.commit().setMessage("initial commit").setAuthor(firstAuthor).call();

注意,as I mention here,测试类是JGit文档/插图的良好来源.

标签:java,git,eclipse,jgit
来源: https://codeday.me/bug/20190529/1176261.html