這個腳本功能就是把 repo下載的代碼,反恢復爲mirror形式的git倉庫。恢復之後的git倉庫目錄結構就和代碼服務器上的目錄結構一致了。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
'''
'''
def mainn():
pass
if __name__ == "__main__" :
# need flush print
sys.stdout = sys.stderr
projects = sys.argv[1]
outroot = sys.argv[2]
for root, dirs, fs in os.walk(projects):
if root.endswith(".git"):
srcgit = root
objects = os.path.join(root, "objects")
baregit = os.path.dirname(os.readlink(objects)).split("/project-objects/")[-1]
baregit = os.path.join(outroot, baregit)
if not os.path.exists(baregit):
os.system("git init --bare %s" % baregit)
cmd = "git -C %s push %s refs/*:refs/*" % (srcgit, baregit)
print cmd
os.system(cmd)