mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 06:30:39 +00:00
99fe6d92d3
when bisecting multiple repos in sync. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97150 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("", "--dump-section-data", dest="dumpSectionData",
|
|
help="Dump the contents of sections",
|
|
action="store_true", default=False)
|
|
(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', 'git-svn', '--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()
|