Dear Conley Owens.
I compared "repo --trace sync" between case1 and case2 like below.
case1)
$ repo init ssh://bla~bla~ --reference=/mirror
$ repo --trace sync forte
Fetching project forte
: export GIT_DIR=/home/seonguk.baek/test01/.repo/project-objects/forte.git
: git init 1>| 2>|
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --null --list 1>| 2>|
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --unset-all core.bare 1>| 2>|
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --replace-all remote.origin.url ssh://mydomain/forte 1>| 2>|
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --replace-all remote.origin.review mydomain/ 1>| 2>|
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --replace-all remote.origin.projectname forte 1>| 2>|
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* 1>| 2>|
: load refs /home/seonguk.baek/test01/.repo/projects/forte.git
: load refs /mirror/forte.git
: export GIT_DIR=/home/seonguk.baek/test01/.repo/projects/forte.git
: git fetch origin --tags +refs/heads/*:refs/remotes/origin/*
: scan refs /home/seonguk.baek/test01/.repo/projects/forte.git
: git pack-refs --all --prune 1>| 2>|
: scan refs /home/seonguk.baek/test01/.repo/projects/forte.git
: git symbolic-ref -m manifest set to test_branch refs/remotes/m/test_branch refs/remotes/origin/test_branch 1>| 2>|
: git --version 1>|
: git gc --auto 1>| 2>|
: load refs /home/seonguk.baek/test01/.repo/repo/.git
: git config --file /home/seonguk.baek/test01/.repo/projects/forte.git/config --null --list 1>| 2>|
: git rev-parse --verify refs/remotes/origin/test_branch^0 1>| 2>|
: cd /home/seonguk.baek/test01/forte
: git read-tree --reset -u -v HEAD
: load refs /home/seonguk.baek/test01/.repo/projects/forte.git
case2)
repo init ssh://bla~bla~ -m old.xml --reference=/mirror
Fetching project forte
: export GIT_DIR=/home/seonguk.baek/test02/.repo/project-objects/forte.git
: git init 1>| 2>|
: git config --file /home/seonguk.baek/test02/.repo/projects/forte.git/config --null --list 1>| 2>|
: git config --file /home/seonguk.baek/test02/.repo/projects/forte.git/config --unset-all core.bare 1>| 2>|
: git config --file /home/seonguk.baek/test02/.repo/projects/forte.git/config --replace-all remote.origin.url ssh://mydomain/forte 1>| 2>|
: git config --file /home/seonguk.baek/test02/.repo/projects/forte.git/config --replace-all remote.origin.review mydomain 1>| 2>|
: git config --file /home/seonguk.baek/test02/.repo/projects/forte.git/config --replace-all remote.origin.projectname forte 1>| 2>|
: git config --file /home/seonguk.baek/test02/.repo/projects/forte.git/config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* 1>| 2>|
: export GIT_DIR=/home/seonguk.baek/test02/.repo/projects/forte.git
: git rev-parse --verify abdd909431187934a17978cf384b10e8f9f733ab^0 1>| 2>|
: load refs /home/seonguk.baek/test02/.repo/projects/forte.git
: scan refs /home/seonguk.baek/test02/.repo/projects/forte.git
: git update-ref -m manifest set to abdd909431187934a17978cf384b10e8f9f733ab --no-deref refs/remotes/m/DQ_test abdd909431187934a17978cf384b10e8f9f733ab^0 1>| 2>|
: git --version 1>|
: git gc --auto 1>| 2>|
: load refs /home/seonguk.baek/test02/.repo/repo/.git
: cd /home/seonguk.baek/test02/forte
: git read-tree --reset -u -v HEAD
: load refs /home/seonguk.baek/test02/.repo/projects/forte.git
In Case 2 executes "git rev-parse bla~" instead of "git fetch bla~".
I think, so .git/packed_refs was broken the link and can run repo upload because of error (bad revision '^refs/bla~~).
Do you have any idea?