Skip to content

Instantly share code, notes, and snippets.

@SaitoWu
Created April 25, 2012 06:27
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save SaitoWu/2487157 to your computer and use it in GitHub Desktop.
Save SaitoWu/2487157 to your computer and use it in GitHub Desktop.
jgit example
class Main{
public static void main(String args[]){
String name = "Saito";
String password = "a1c2bf1890eb";
String url = "http://localhost:9292/Saito/simba.git";
// credentials
CredentialsProvider cp = new UsernamePasswordCredentialsProvider(name, password);
// clone
File dir = new File("/tmp/abc");
CloneCommand cc = new CloneCommand()
.setCredentialsProvider(cp)
.setDirectory(dir)
.setURI(url);
Git git = cc.call();
// add
AddCommand ac = git.add();
ac.addFilepattern(".");
try {
ac.call();
} catch (NoFilepatternException e) {
e.printStackTrace();
}
// commit
CommitCommand commit = git.commit();
commit.setCommitter("TMall", "open@tmall.com")
.setMessage("push war");
try {
commit.call();
} catch (NoHeadException e) {
e.printStackTrace();
} catch (NoMessageException e) {
e.printStackTrace();
} catch (UnmergedPathException e) {
e.printStackTrace();
} catch (ConcurrentRefUpdateException e) {
e.printStackTrace();
} catch (WrongRepositoryStateException e) {
e.printStackTrace();
}
// push
PushCommand pc = git.push();
pc.setCredentialsProvider(cp)
.setForce(true)
.setPushAll();
try {
Iterator<PushResult> it = pc.call().iterator();
if(it.hasNext()){
System.out.println(it.next().toString());
}
} catch (InvalidRemoteException e) {
e.printStackTrace();
}
// cleanup
dir.deleteOnExit();
}
}
@crhan
Copy link

crhan commented Apr 25, 2012

你准备哪样呢...难道开个 java 的 daemon 然后 mount 到 rails 上面么

@SaitoWu
Copy link
Author

SaitoWu commented Apr 25, 2012

没. 你直接grack就好了. 我这里是因为有一个Java的需求而已. 是为真的Java程序写的.

@Peak-Song
Copy link

十分感谢,您帮了大忙。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment