Thread (5 messages) flat view 5 messages, 3 authors, 2016-06-15

Cloning a remote tag without using git-fetch-pack directly?

From: Josh Triplett <josh@joshtriplett.org>
Date: 2016-06-15 22:51:04
Subsystem: kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers: Nathan Chancellor, Nicolas Schier, Linus Torvalds

Using fetch-pack, I can clone a single tag from a repository:

/tmp/testrepo$ git init
Initialized empty Git repository in /tmp/testrepo/.git/
/tmp/testrepo$ git fetch-pack /home/josh/src/linux-2.6/.git refs/tags/v2.6.12
remote: Counting objects: 31617, done.
remote: Compressing objects: 100% (21083/21083), done.
Receiving objects: 100% (31617/31617), 52.56 MiB | 5.27 MiB/s, done.
remote: Total 31617 (delta 12862), reused 19495 (delta 10331)
Resolving deltas: 100% (12862/12862), done.
keep    c80bd1def293bc11591159c96970d8becfe3b2d9
26791a8bcf0e6d33f43aef7682bdb555236d56de refs/tags/v2.6.12
/tmp/testrepo$ git show 26791a8bcf0e6d33f43aef7682bdb555236d56de | head -20
tag v2.6.12

This is the final 2.6.12 release
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBCsykyF3YsRnbiHLsRAvPNAJ482tCZwuxp/bJRz7Q98MHlN83TpACdHr37
o6X/3T+vm8K3bf3driRr34c=
=sBHn
-----END PGP SIGNATURE-----

commit 9ee1c939d1cb936b1f98e8d81aeffab57bae46ab
Author: Linus Torvalds [off-list ref]
Date:   Fri Jun 17 12:48:29 2005 -0700

    Linux 2.6.12
diff --git a/Makefile b/Makefile
index 9e005e1..0d1e74d 100644
--- a/Makefile


However, I can't seem to find any way to convince git clone to do the
same thing for me.  git clone will clone a branch, but not a tag.

/tmp/testrepo$ git clone /home/josh/src/linux-2.6/.git -b refs/tags/v2.6.12
Cloning into linux-2.6...
done.
warning: Remote branch refs/tags/v2.6.12 not found in upstream origin, using HEAD instead


On a different note, git fetch-pack seems to silently fail if asked to
fetch a remote tag which points at a tree object rather than a commit
object:

/tmp/testrepo$ git init
Initialized empty Git repository in /tmp/testrepo/.git/
/tmp/testrepo$ git fetch-pack /home/josh/src/linux-2.6/.git refs/tags/v2.6.12-tree
(1) /tmp/testrepo$ echo $?
1


I realize that I want to do something strange here, but it seems like a
kind of strange that git already supports in at least some ways, just
not in others.  Am I missing something?

Thanks,
Josh Triplett
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help