PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  r2Wc@@sddlmZddlZddlZddlZddlmZddlm Z ddl m Z ddl m ZddlmZmZddlmZmZe jZe jZejeZd efd YZejedS( i(tabsolute_importN(tsamefile(t BadCommand(tparse(trequest(t display_pathtrmtree(tvcstVersionControltGitcB@seZdZdZdZdZddZd Zd Z d Z d Z d Z dZ dZdZdZdZdZdZdZdZdZdZdZdZdZedZRS(tgits.gittclonesgit+https git+httpssgit+sshsgit+gitsgit+filec O@s|rt|\}}}}}|jdr|t|jd } | tj|jddjd} t||| ||f}|jdd} || t|| || ||f}qnt t |j |||dS(Ntfilet/s\t+i( turlsplittendswithtlentlstripturllib_requestt url2pathnametreplacet urlunsplittfindtsuperR t__init__( tselfturltargstkwargstschemetnetloctpathtquerytfragmenttinitial_slashestnewpatht after_plus((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyRs #cC@sytjdd}|j|zH|jds>|d}n|jdddd|gdtd |Wd t|Xd S( s@Export the Git repository at the url to the destination locations-exportspip-R scheckout-indexs-as-fs--prefixt show_stdouttcwdN(ttempfiletmkdtemptunpackRt run_commandtFalseR(Rtlocationttemp_dir((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytexport4s  cC@s_|j|}d|}||kr0||gS||krG||gStjd||SdS(sCheck the revision options before checkout to compensate that tags and branches may need origin/ as a prefix. Returns the SHA1 of the branch or tag if found. s origin/%ss5Could not find a tag or branch '%s', assuming commit.N(tget_short_refstloggertwarning(Rtrevtdestt rev_optionst revisionst origin_rev((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytcheck_rev_optionsAs      cC@s|j|j|dS(s  Compare the current sha to the ref. ref may be a branch or tag name, but current rev will always point to a sha. This means that a branch or tag will never compare as True. So this ultimately only matches against exact shas. i(t get_revisiont startswith(RR4R5((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyt check_versionUscC@sJ|jdd|gd||jddg|d||j|dS(Ntconfigsremote.origin.urlR'tcheckouts-q(R+tupdate_submodules(RR4RR5((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytswitch^scC@sl|jddgd||r;|j|d||}n|jdddg|d||j|dS(Ntfetchs-qR'itresets--hard(R+R8R>(RR4R5((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytupdateds  cC@s|j\}}|r.|g}d|}ndg}d}|j||||rtjd||t||jdd||g|r|j|||}|j||s|jddg|d|qn|j|ndS( Ns (to %s)s origin/mastertsCloning %s%s to %sR s-qR=R'( t get_url_revtcheck_destinationR1tinfoRR+R8R;R>(RR4RR3R5t rev_display((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytobtainps"    cC@sQ|jdddgdtd|}|jd}|jdd}|jS( s+Return URL of the first remote encountered.R<s --get-regexpsremote\..*\.urlR&R'it i(R+R,t splitlinestsplittstrip(RR-tremotest first_remoteR((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytget_urls cC@s+|jddgdtd|}|jS(Ns rev-parsetHEADR&R'(R+R,RL(RR-t current_rev((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyR9scc@sn|jdgdtd|}xI|jjD]5}|jdd\}}|j|jfVq1WdS(s4Yields tuples of (commit, ref) for branches and tagssshow-refR&R'RIiN(R+R,RLRJRK(RR-toutputtlinetcommittref((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyt get_full_refss cC@s |jdS(Ns refs/remotes/(R:(RRU((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyt is_ref_remotescC@s |jdS(Ns refs/heads/(R:(RRU((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyt is_ref_branchscC@s |jdS(Ns refs/tags/(R:(RRU((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyt is_ref_tagscC@s/t|j||j||j|f S(s0A ref is a commit sha if it is not anything else(tanyRWRXRY(RRU((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyt is_ref_commits  cC@s |j|S(N(R0(RR-((s//usr/lib/python2.7/site-packages/pip/vcs/git.pytget_refsscC@si}x|j|D]\}}d}|j|rJ|td}nD|j|rl|td}n"|j|r|td}n|dk r|||s !cC@sutt|j|rtSy0|jdgd|dtdd}| SWn"tk rptjd|tSXdS(Ns rev-parseR'R&t on_returncodetignoresKcould not determine if %s is under git control because git is not available( RR tcontrols_locationtTrueR+R,RR1tdebug(tclsR-tr((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyRws    (R sgit+https git+httpssgit+sshsgit+gitsgit+fileN(t__name__t __module__tnameRdt repo_nametschemesR]RR/R8R;R?RBRHROR9RVRWRXRYR[R\R0RjRsRDR>t classmethodRw(((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyR s2               (t __future__RtloggingR(tos.pathR`t pip.compatRtpip.exceptionsRtpip._vendor.six.moves.urllibRt urllib_parseRRt pip.utilsRRtpip.vcsRRRRt getLoggerR|R1R tregister(((s//usr/lib/python2.7/site-packages/pip/vcs/git.pyts