mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	branch). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172740 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/python
 | 
						|
 | 
						|
import os, sys, subprocess
 | 
						|
 | 
						|
def main():
 | 
						|
    from optparse import OptionParser, OptionGroup
 | 
						|
    parser = OptionParser("usage: %prog [options] <repo> <revision>")
 | 
						|
    parser.add_option("", "--branch", dest="branch",
 | 
						|
                      help="Ref for the branch to search [%default]",
 | 
						|
                      action="store", default="git-svn")    
 | 
						|
    (opts, args) = parser.parse_args()
 | 
						|
 | 
						|
    if len(args) != 2:
 | 
						|
        parser.error("invalid number of arguments")
 | 
						|
 | 
						|
    repo,rev = args
 | 
						|
 | 
						|
    try:
 | 
						|
        rev = int(rev)
 | 
						|
    except:
 | 
						|
        parser.error("invalid revision argument (not an integer)")
 | 
						|
 | 
						|
    os.chdir(repo)
 | 
						|
    p = subprocess.Popen(['git', 'rev-list', opts.branch, '--pretty'],
 | 
						|
                         stdout=subprocess.PIPE)
 | 
						|
 | 
						|
    bestRev = bestCommit = None
 | 
						|
    lastCommit = None
 | 
						|
    for ln in p.stdout:
 | 
						|
        if ln.startswith('commit '):
 | 
						|
            lastCommit = ln.split(' ',2)[1]
 | 
						|
        elif ln.startswith('    git-svn-id: '):
 | 
						|
            _,repo,_ = ln.strip().split(' ')
 | 
						|
            _,lrev = repo.rsplit('@',1)
 | 
						|
            lrev = int(lrev)
 | 
						|
            if lrev<=rev:
 | 
						|
                if bestRev is None or lrev>bestRev:
 | 
						|
                    assert lastCommit
 | 
						|
                    bestCommit = lastCommit
 | 
						|
                    bestRev = lrev
 | 
						|
                    if lrev == rev:
 | 
						|
                        break
 | 
						|
    
 | 
						|
    if bestCommit is not None:
 | 
						|
        print bestCommit
 | 
						|
        sys.exit(0)
 | 
						|
    sys.exit(1)
 | 
						|
 | 
						|
if __name__=='__main__':
 | 
						|
    main()
 |