jkaluza / pungi

Forked from pungi 7 years ago
Clone

ff4e6d4 scm-wrapper: Refactor getting files from Git

Authored and Committed by lsedlar 5 years ago
    scm-wrapper: Refactor getting files from Git
    
    Before this patch, there were two code paths: either getting the only
    the wanted content by calling git-archive, or cloning the repository and
    copying the files.
    
    Both these approaches have the downside of not allowing retriving
    content from a specific git commit.
    
    The workaround is to create a new empty repo (in the location to which
    we cloned previously), fetching the specific commit to there and then
    checking it out.
    
    This supports any commit and works identically for any protocol. The
    downside is that all files in that commit will be downloaded. It should
    be no worse than the git-clone path, but can result in bigger transfers
    than git-archive.
    
    Unfortunately this is only supported with git 2.5+. On older version
    fetch will fail with no error message (tested with 1.8.3). This can be
    used to fall back to full clone. This fallback is clearly suboptimal in
    terms of data transfer, but it should work reliably.
    
    Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
    
        
file modified
+50 -24
file modified
+59 -139