z/itSSKrSSKrSSKrSrSrSrSrSrSr Sr S r S r S r SS jrS rSrSrg)Ncz[RRS[RR U53$N/)libconfig path_cacheospathbasenameprojects /obs/lib/git.py get_repo_pathr s.jj## $Abgg&6&6w&?%@ AAcU[RR;a[RRU$[RRSU3$r)rr git_url_othergit_url_defaultr s r get_repo_urlr sE#*****zz''00jj(( )7) 44rcU[RR;a[RRU$[RR$N)rrgit_latest_tag_pattern_othergit_latest_tag_pattern_defaultr s rget_latest_tag_patternrs9#**999zz66w?? :: 4 44rc2[RRn[U5n[ U5n[ R RU5(a?U(a&[US35 [R"SS/US9 g[USUS35 g[USU35 [ R"[RRSS 9 [R"SS X2/5 [R"/S QUS9 [R"/S QUS9 g) Nz : 'git fetch'gitfetchcwdz: using cached z (not cloning, not fetching)z : cloning T)exist_okclone)rrz user.namezOsmocom OBS scripts)rrz user.emailzinfo@osmocom.org) rargs git_fetchrrr r existsprintrun_cmdmakedirsrr)r r repo_pathurls rr r s HH  Eg&I w C ww~~i   WI]+ , KK(i 8  WI_SE1MN O WIZu %&KK %%5KK01KKEKKCrcd[U5n[US35 [R"/SQUS9 g)Nz: 'git clean -ffxd')rcleanz-ffxdr)rr$rr%)r r's rr*r*0s+g&I WI( )*KK)y9rc[U5n[RR(d@[R"/SQUS9R R 5n[USU35 g[USUS35 [R"SSSU/US9 [US US35 [R"SS S U/US9 [US 35 [R"/S QUS9 g)N)rlogz--pretty=onelinez--abbrev-commitz-1rz): skipping git checkout, current commit: z: 'git checkout -f 'rcheckoutz-fz: 'git reset --hard resetz--hardz: 'git submodule update --init')r submoduleupdatez--init)rrr! git_checkoutr%outputrstripr$)r branchr'refs rr.r.6sg&I 88 kk!&/117   B3%HI WI( 23KK D&1yA WI)& 34KK62 B WI4 56KK8iHrc[U5n[R"/SQUS9 [R"SSS[U5/US9 g)zcheckout a given gerrit ID )rreviewz-srrr8z-dN)rrr%str)r gerrit_idr's rcheckout_from_reviewr;Es6g&IKK'Y7KK$I7YGrcU[RR;a[RRU$[RR$r)rrgit_branch_othergit_branch_defaultr s rget_default_branchr?Ls9#**---jj))'22 :: ( ((rc8[U5n[USU35 g)Nzorigin/)r?r.)r r5s rcheckout_default_branchrARs  (F Wx()rcz[U5n[R"/SQUS9nURR 5$)N)rz rev-parseHEADr)rrr%r3r4)r r'rets rget_headrEWs0g&I ++2 BC ::   rcJU(d [U5n[U5n[USU35 [R"SSUSU3/5nUR R S5SnU(d3U(a[USU35 g[R"USUS 35 U$) Nz#: getting head from git remote for r ls-remotezheads/ rz: branch not found: zfailed to find head commit for z in output)r?rr$rr%r3splitexit_error_cmd)r r5branch_missing_okrepo_url ls_remoterDs rget_head_remoterN]s #G,G$H WI8 AB UKVF8;LMNI     &q )C   WI1&: ; 9'&iz'3 4 Jrc^[U5n[R"U5n[U5n[R "/SQUS9nUR RS5H.nURS5nURU5(dM,Us $ [R"USUSU35 g)N)rtagz-l--sort=-v:refnamer  zcouldn't find latest tag for z, regex used on output: ) rrecompilerrr%r3rIstripmatchrJ)r pattern_strpatternr' git_tag_retlines rget_latest_tagr\ss(1Kjj%Gg&I++G"+-K""((.zz$ ==  K/ {&CG9M11< %?@rc [U5n[R"U5n[US35 [R "SSSS[ U5/5nURRS5HOnSU;aM SU;aMUR5RS5S nURU5(dMMUs $ g) Nz$: getting latest tag from git remoterrGz--tagsrQrRz^{}z refs/tags/) rrTrUr$rr%rr3rIr4rW)r rXrYrMr[s rget_latest_tag_remoter_s(1Kjj%G WI9 :; UK;N)'245I  &&t, D=  t # {{}""<03 ==  K- rc.[U[U55 gr)r.r\r s rcheckout_latest_tagras WnW-.r)T)r rT lib.configrrrrr r*r.r;r?rArErNr\r_rarrrdsZ B5 5 .: IH) *  ,@"0/r