[PATCH v2 03/23] t5510: check that "git fetch --prune --tags" does not prune branches
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Oct 30, 2013, 05:32 UTC
- Message-ID
- <1383111192-23780-4-git-send-email-mhagger@alum.mit.edu>
- In-Reply-To
- <1383111192-23780-1-git-send-email-mhagger@alum.mit.edu>
"git fetch --prune --tags" is currently interpreted as follows:
* "--tags" is equivalent to specifying a refspec "refs/tags/*:refs/tags/*", and supersedes any default refspecs configured via remote.$REMOTE.fetch.
* "--prune" only operates on the refspecs being fetched.
Therefore, "git fetch --prune --tags" prunes tags in refs/tags/* but does not fetch or prune other references. The fact that this command does not prune references outside of refs/tags/* was previously untested. So add a test that verifies the status quo.
However, the status quo is surprising, so it will be changed later in this patch series.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> --- t/t5510-fetch.sh | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh index 08d8dbb..8328be1 100755 --- a/t/t5510-fetch.sh +++ b/t/t5510-fetch.sh @@ -118,9 +118,13 @@ test_expect_success 'fetch --prune --tags does not delete the remote-tracking br git clone . prune-tags && cd prune-tags && git tag sometag master && + # Create what looks like a remote-tracking branch from an earlier + # fetch that has since been deleted from the remote: + git update-ref refs/remotes/origin/fake-remote master && git fetch --prune --tags origin && git rev-parse origin/master && + git rev-parse origin/fake-remote && test_must_fail git rev-parse sometag '
-- 1.8.4.1