repo sync同步Android源碼時減小同步時間和代碼空間

在使用 repo sync 同步 Android 源碼時,能夠添加一些選項來減小同步時間和要下載的代碼空間。具體的命令是 repo sync -c --no-tags --prune -j 4git

查看 repo help status 的幫助信息,對所給的各個選項具體說明以下:服務器

  • -c, --current-branch fetch only current branch from server.
    這個選項指定只獲取執行 repo init 時 -b 選項所指定的分支,不會獲取遠端服務器的分支信息。

    例如服務器上新增了其餘分支,使用 -c 選項同步後,在本地 git 倉庫執行 git branch -r 命令看不到服務器新增的分支名。若是不加 -c 選項,那麼同步的時候,會打印 [new branch] 這樣的信息,使用 git branch -r 命令可查看到服務器新增的分支。多線程

  • --no-tags don't fetch tags.
    該選項指定不獲取服務器上的tag信息。
  • --prune delete refs that no longer exist on the remote.
    若是遠端服務器已經刪除了某個分支,在 repo sync 時加上 --prune 選項,能夠讓本地倉庫刪除對這個分支的跟蹤引用。 fetch

    查看 repo 的 .repo/repo/project.py 源碼,這個選項其實是做爲 git fetch 命令的選項來執行。查看 man git-fetch 對自身 --prune 選項的說明以下,可供參考:線程

    -p, --prune
    After fetching, remove any remote-tracking references that no longer exist on the remote.
  • -j JOBS, --jobs=JOBS projects to fetch simultaneously (default 2).
    指定啓用多少個線程來同步。

    例如上面的 -j 4 指定用4個線程來同步。若是沒有提供該選項,默認是用2個線程。code

總的來講,在 repo sync -c --no-tags --prune -j 4 命令中,使用 -c 和 --no-tags 選項能夠減小須要同步的內容,從而減小要佔用的本地代碼空間,也能夠減小一些同步時間。server

使用 -j 選項來指定啓用多線程進行同步,能夠加快執行速度,也就減小了同步時間。 rem

使用 --prune 選項去掉已刪除分支的跟蹤引用,通常不會用到,這個選項可加可不加。同步

相關文章
相關標籤/搜索