2017-08-28 122 views
2

我已經編寫了一個java程序來推送到git存儲庫,我一次推送特定文件而不是推送所有文件。如果file1.txt不存在,則不輸入catch塊。 如果我做同樣的事情用CLI Git的,它提供了異常,因爲如果要添加的文件不存在,addFilePattern不會拋出FileNotFoundException

fatal: pathspec 'D:\mygit\files\\file1.txt' did not match any files 

我要趕使用JGit在Java中此異常。

JGit版本4.6.0,Java的1.8中,Windows 10

回答

1

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; 
相關問題