Hi everybody,
I think I have discovered a problem with clone/fetch --shallow-since:
When a ref that is fetches has a head that is already older than
the 'since' time, then the entire branch is fetched, instead of
just the current commit.
Repro:
rm -rf tmp out deep
git init tmp
for i in `seq 10 31`; do
d="2017-05-${i}T12:00"
GIT_AUTOR_DATE="$d" GIT_COMMITTER_DATE="$d" git -C tmp commit -m nix$i
--allow-empty
done
git -C tmp checkout -b test HEAD^^^
for i in `seq 10 14`; do
d="2017-06-${i}T12:00"
GIT_AUTHOR_DATE="$d" GIT_COMMITTER_DATE="$d" git -C tmp commit -m nax$i
--allow-empty
done
for i in `seq 1 4`; do
git -C tmp commit -m new$i --allow-empty
done
echo "** This is fine:"
git clone --shallow-since '1 month ago' file://`pwd`/tmp out --branch test
git -C out log --oneline
echo "** This should show one commit but shows all:"
git clone --shallow-since '1 month ago' file://`pwd`/tmp deep --branch master
git -C deep log --oneline
Do I expect the wrong thing?
- Andreas
--
"Totally trivial. Famous last words."
From: Linus Torvalds <torvalds@*.org>
Date: Fri, 22 Jan 2010 07:29:21 -0800