lfs/tq,test: use Transferable's OID when performing legacy check

Closes: github/git-lfs#1580
This commit is contained in:
Taylor Blau 2016-10-14 14:56:56 -06:00
parent 057040cf6c
commit eb6c4a3eb6
2 changed files with 64 additions and 1 deletions

@ -338,7 +338,7 @@ func (q *TransferQueue) individualApiRoutine(apiWaiter chan interface{}) {
for t := range q.apic {
obj, err := t.LegacyCheck()
if err != nil {
if q.canRetryObject(obj.Oid, err) {
if q.canRetryObject(t.Oid(), err) {
q.retry(t)
} else {
q.errorc <- err

63
test/test-legacy-retries.sh Executable file

@ -0,0 +1,63 @@
#!/usr/bin/env bash
. "test/testlib.sh"
begin_test "legacy upload check causes retries"
(
set -e
reponame="legacy-upload-check-retry"
setup_remote_repo "$reponame"
clone_repo "$reponame" repo-upload
git config --local lfs.batch false
contents="legacy-upload-check-retry"
oid="$(calc_oid "$contents")"
printf "$contents" > a.dat
git lfs track "*.dat"
git add .gitattributes a.dat
git commit -m "initial commit"
git config --local lfs.transfer.maxretries 3
git push origin master
assert_server_object "$reponame" "$oid"
)
end_test
begin_test "legacy download check causes retries"
(
set -e
reponame="legacy-download-check-retry"
setup_remote_repo "$reponame"
clone_repo "$reponame" repo-download
contents="legacy-download-check-retry"
oid="$(calc_oid "$contents")"
printf "$contents" > a.dat
git lfs track "*.dat"
git add .gitattributes a.dat
git commit -m "initial commit"
git push origin master
assert_server_object "$reponame" "$oid"
pushd ..
git \
-c "filter.lfs.smudge=" \
-c "filter.lfs.required=false" \
clone "$GITSERVER/$reponame" "$reponame-assert"
cd "$reponame-assert"
git config credential.helper lfstest
git config --local lfs.batch false
git config --local lfs.transfer.maxretries 2
git lfs pull origin
popd
)
end_test