- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个 java 程序来推送到 git 存储库,我在其中一次推送特定文件而不是推送所有文件。
try {
git.add().addFilePattern("files\\file1.txt").call();
} catch (Exception e) {
e.printStackTrace();
}
但是如果 file1.txt
不存在,则不会进入 catch block 。如果我用 CLI Git 做同样的事情,它会给出异常
fatal: pathspec 'D:\mygit\files\\file1.txt' did not match any files
我想使用 JGit 在 Java 中捕获这个异常。
JGit 版本 4.6.0、Java 1.8、Windows 10
最佳答案
JGit 不会将传递不存在的路径 addFilepatern()
视为错误。因此,原因可能是该方法还接受文件名模式。这样的模式可能匹配也可能不匹配文件。
您必须自己检查文件是否存在。例如,使用 Java 文件 API
boolean fileExists = new File( repository.getWorkTree(), "file.txt" ).isFile();
或者通过 AddCommand::call()
返回的 DirCache
,例如
DirCache dirCache = git.add().addFilePattern( "file.txt" ).call();
boolean fileExists = dircache.findEntry( "file.txt" ) >= 0;
关于java - 如果要添加的文件不存在,addFilePattern 不会抛出 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915125/
jgit版本4.6.0, java 1.8, window 10 我编写了一个java程序来推送到git存储库,因为我想一次推送特定文件而不是推送所有文件。 git.add.addFilePatter
我写了一个自定义的 git-add ant 任务,我希望它只从指定的目录添加文件。任务行如下所示: 下面是我如何使用 jgit 添加我得到这样的目录: public void setDir(Stri
我编写了一个 java 程序来推送到 git 存储库,我在其中一次推送特定文件而不是推送所有文件。 try { git.add().addFilePattern("files\\file1.txt
我是一名优秀的程序员,十分优秀!