package Ġmain Ċ Ċ import Ġorg . eclipse . j git . api . List Branch Command . List Mode Ċ import Ġorg . eclipse . j git . lib . Stored Config Ċ import Ġorg . eclipse . j git . transport . Remote Config Ċ import Ġjava . io . File ĊĊ Ċ fun ĠG ik . repo File ( path : ĠString , Ġmake Dirs : ĠBoolean Ġ= Ġtrue ): ĠFile Ġ= ĊĠĠĠ ĠFile ( repo . rootDir , Ġpath ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( make Dirs ) Ġparent File . mkdir s () ĊĠĠĠ Ġ} Ċ Ċ infix Ġfun ĠG ik . repo Dir ( path : ĠString ): ĠFile Ġ= ĊĠĠĠ ĠFile ( repo . rootDir , Ġpath ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġmkdir s () ĊĠĠĠ Ġ} Ċ Ċ fun Ġbranch ( fullName : ĠString , Ġtracking Branch FullName : ĠString ? Ġ= Ġnull ): ĠBranch Ġ{ ĊĠĠĠ Ġval Ġtracking Branch Ġ= Ġtracking Branch FullName ?. let (:: branch ) ĊĠĠĠ Ġreturn ĠBranch ( fullName , Ġtracking Branch ) Ċ } Ċ Ċ fun ĠG ik . branches ( trim : ĠBoolean Ġ= Ġfalse ): ĠList < String > Ġ= ĊĠĠĠ Ġrepo . j git . branch List (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset List Mode ( List Mode . ALL ) ĊĠĠĠ Ġ}. call (). map Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrim Ġ-> Ġit . name . replace (" refs / heads /", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit . name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ val ĠG ik . remote Branches : ĠList < String > ĊĠĠĠ Ġget () Ġ= Ġrepo . j git . branch List (). apply Ġ{ Ġset List Mode ( List Mode . REMOTE ) Ġ}. call () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name . replace (" refs / rem otes / origin /", Ġ"") Ġ} Ċ Ċ val ĠG ik . tags : ĠList < String > ĊĠĠĠ Ġget () Ġ= Ġrepo . j git . tag List (). call (). map Ġ{ Ġit . name . replace (" refs / tags /", Ġ"") Ġ} Ċ Ċ val ĠG ik . rem otes : ĠList < String > ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġj git Config Ġ= Ġrepo . j git . repository . config ĊĠĠĠĠĠĠĠ Ġreturn ĠRemote Config . getAll Remote Configs ( j git Config ). map Ġ{ Ġit . name Ġ} ĊĠĠĠ Ġ} Ċ Ċ infix Ġfun ĠG ik . resolve ( rev Str : ĠString ): ĠCommit ? Ġ= ĊĠĠĠ Ġrepo Ġresolve Commit Ġrev Str Ċ Ċ fun ĠG ik . configure ( block : ĠStored Config . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġconfig Ġ= Ġrepo . j git . repository . config ĊĠĠĠ Ġconfig . block () ĊĠĠĠ Ġconfig . save () Ċ }