En effet, il existe très peu de documentation sur l'utilisation de l'API.
Pour le bien des autres lecteurs, je propose ici un test simple pour les opérations les plus courantes :
- Créer le référentiel
- Clonez-le
- Ajouter un fichier
- Engagez-vous
- Pousser
- Piste
origin/master
en master
(ceci est nécessaire si vous clonez un repo nu)
- Tirer (inutilement, dans ce cas, mais peu importe)
En particulier, notez que l'ajout de fichiers nécessite un motif et non un chemin. De plus, le suivi nécessite .setForce(true)
en raison de l'existence de master
sur le clone.
Veuillez noter que cet exemple se veut simple et autonome.
import java.io.File;
import java.io.IOException;
import org.eclipse.jgit.api.*;
import org.eclipse.jgit.api.errors.*;
import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode;
import org.eclipse.jgit.internal.storage.file.FileRepository;
import org.eclipse.jgit.lib.Repository;
import org.junit.Before;
import org.junit.Test;
public class TestJGit {
private String localPath, remotePath;
private Repository localRepo;
private Git git;
@Before
public void init() throws IOException {
localPath = "/home/me/repos/mytest";
remotePath = "git@github.com:me/mytestrepo.git";
localRepo = new FileRepository(localPath + "/.git");
git = new Git(localRepo);
}
@Test
public void testCreate() throws IOException {
Repository newRepo = new FileRepository(localPath + ".git");
newRepo.create();
}
@Test
public void testClone() throws IOException, GitAPIException {
Git.cloneRepository().setURI(remotePath)
.setDirectory(new File(localPath)).call();
}
@Test
public void testAdd() throws IOException, GitAPIException {
File myfile = new File(localPath + "/myfile");
myfile.createNewFile();
git.add().addFilepattern("myfile").call();
}
@Test
public void testCommit() throws IOException, GitAPIException,
JGitInternalException {
git.commit().setMessage("Added myfile").call();
}
@Test
public void testPush() throws IOException, JGitInternalException,
GitAPIException {
git.push().call();
}
@Test
public void testTrackMaster() throws IOException, JGitInternalException,
GitAPIException {
git.branchCreate().setName("master")
.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM)
.setStartPoint("origin/master").setForce(true).call();
}
@Test
public void testPull() throws IOException, GitAPIException {
git.pull().call();
}
}