所以只好採用 .. repo sync 一個相近的 source, 覆蓋後 commit
所以覆蓋後,要檢查是不是有沒被 versio control 的 folder:
用 python 寫:
import os i=0 for root, dirlist, filelist in os.walk("./"): toremove=[] for ss in ['.repo','out']: if ss in dirlist: toremove.append(ss) for ss in dirlist: gpath = os.path.join(root,ss,'.git') if os.path.isdir(gpath): toremove.append(ss) for ss in toremove: dirlist.remove(ss) if (len(dirlist)==0) and (len(toremove)==0): print i, root i=i+1因為 os.walk 會依照top down 的方式,到 dirlist 中搜尋。
所以就用修改 dirlist 的方式來作:
- 先排除 .repo, out 目錄
- 排除含有 .git 的次目錄
但是這個結果會把所有沒有 git control 的 folder, subfolder 都印出來,(因為他沒辦法判斷要從哪裡算起,是一個 project)
這部份要自己作。
這個動態刪除 dirlist 的作法在更換 python 版本的時候出了問題。
原來是在判斷包含 .git 後直接作 dirlist.remove(ss)
但是卻發現這樣會影像到下一個 ss (in dirlist) 的判斷。
所以只好先放在 toremove[] 中,最後再一次修改全部
放在: https://github.com/checko/python_repo
沒有留言:
張貼留言