2012-08-27 17 views

cevap

7

Bir CheckoutCommand sonra MergeCommand (pakette org.eclipse.jgit.api) kullanabilir, birleştirmek için. mükemmel olmayabilir bu yüzden kod deneyin vermedi

Git git = ... // you get it through a CloneCommand, InitCommand 
       // or through the file system 

CheckoutCommand coCmd = git.checkout(); 
// Commands are part of the api module, which include git-like calls 
coCmd.setName("master"); 
coCmd.setCreateBranch(false); // probably not needed, just to make sure 
coCmd.call(); // switch to "master" branch 

MergeCommand mgCmd = git.merge(); 
mgCmd.include("foo"); // "foo" is considered as a Ref to a branch 
MergeResult res = mgCmd.call(); // actually do the merge 

if (res.getMergeStatus().equals(MergeResult.MergeStatus.CONFLICTING)){ 
    System.out.println(res.getConflicts().toString()); 
    // inform the user he has to handle the conflicts 
} 

, ama sadece bir başlangıç ​​sağlamak için var: gerçekten Jgit örnekler olmadığı için, bir örnek sunmak için. Ve ithalatı dahil etmedim. javadoc

4

Bunları, örneğin dahil JGit repository çeşitli test classes for Merge bulacaksınız SimpleMergeTest

Merger ourMerger = MergeStrategy.OURS.newMerger(db); 
boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a"), db.resolve("c") }); 
assertTrue(merge); 
+0

Github'a verdiğiniz aynı bağlantı, birleştirmenin eksik bir özellik olduğunu belirtir. Ne var ne yok? – Tower

+0

@rFactor Tamamen yerel bir java uygulaması yerine, yalnızca git eklenti komutunun etrafında bir sarıcı sağlanmışsa bu durum söz konusu olabilir, ancak artık böyle görünmüyor. – VonC

+0

bunu doğrulayabilir misiniz? Ben dev bir makinede değilim, bu noktada fazla bir şey anlayamıyorum ya da bir noktada kontrol edip bulgularımı buraya gönderiyorum. – Tower

2

JGit dayalı denemeden bir çok 2010 yılından bu yana git çözmek birleştirme stratejisi tam gaz Java uygulaması ihtiyacınız varsa örnekler karşılık gelen JGit test durumlarda bakıp Eğit nasıl bir göz JGit ile gelmiştir ima Gelişmekte MergeCommand kullanarak, org.eclipse.egit.core.op.MergeOperation sınıfına bakın.