JGit clone repository

http://stackoverflow.com/questions/8545311/jgit-clone-repository

https://gist.github.com/SaitoWu/2487157



FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repository = builder.setGitDir(PATH).readEnvironment().findGitDir().build();

Git git = new Git(repository);              
CloneCommand clone = git.cloneRepository();
clone.setBare(false);
clone.setCloneAllBranches(true);
clone.setDirectory(PATH).setURI(url);
UsernamePasswordCredentialsProvider user = new UsernamePasswordCredentialsProvider(login, password);                
clone.setCredentialsProvider(user);
clone.call();


/

 
 
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 ();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值