git - Abort merge using JGit -
this pretty straightforward: how simulate command git merge --abort
in jgit? need "preview" conflicts prior real merge
there no direct equivalent git merge --abort
in jgit. code snippet may serve starting point:
// clear merge state repository.writemergecommitmsg( null ); repository.writemergeheads( null ); // reset index , work directory head git.wrap( repository ).reset().setmode( resettype.hard ).call();
it empties merge state files , resets index , work directory contents of current head commit.
in order test if 2 commits can merged, use in-core merger. avoid checking out conflicting commit work directory reset them later on.
revcommit parentcommit = mergecommit.getparent( 0 ); revwalk.parseheaders( parentcommit ); resolvemerger merger = ( resolvemerger )mergestrategy.resolve.newmerger( repository, true ); merger.setworkingtreeiterator( new filetreeiterator( repository ) ); merger.setbase( parentcommit.gettree() ); if( !merger.merge( headcommit, mergecommit ) ) { if( merger.failed() { throw new illegalstateexception( "should not happen in-core mergers" ); } // inspect merger.getmergeresults() further details }
Comments
Post a Comment