I'm a new user of git and am using JGit to interact with a remote git repository. In JGit, I used CloneCommand to initially to clone a repo, and it worked without a issue. However, when I try to use PullCommand, which is the equivalent of SVN update AFAIK, the local repo contents are not updated.
This is the code that I used:
private String localPath; private Repository localRepo; private Git git; localPath = "/home/test/git_repo_test"; remotePath = "https://github.com/test/repo_1.git"; try { localRepo = new FileRepository(localPath + "/.git"); } catch (IOException e) { e.printStackTrace(); } git = new Git(localRepo); PullCommand pullCmd = git.pull(); try { pullCmd.call(); } catch (GitAPIException e) { e.printStackTrace(); } This doesn't update the local repository for new files which I have pushed to the remote repository using the command line. However, if I delete the local repository and take a clone again, all the changes are reflected.
Please let me know what is the correct approach of using PullCommand in JGit.
EDIT:
The structure of the remote repository:
root ____ file_1 |______ directory_1 |__________ file_2 |__________ file_3 directory_1 and the two files are pushed from the commandline after the initial cloning and I tried this code so that it will get reflected in the local repository, which is not happening.
The code used to clone the repository:
File file = new File(localPath); CloneCommand cloneCmd = git.cloneRepository(); try { cloneCmd.setURI(remotePath) .setDirectory(file) .call(); } catch (GitAPIException e) { e.printStackTrace(); } Here, git, localPath and remotePath are the same variable as above.