So given a particular tree-ish and a pathname, I'd like get the contents of that particular file as of a particular revision. i.e., the equivalent of: cvs -r v1.37 -p e2fsck/pass1.c or bk cat -r 2345 e2fsck/pass1.c The closest I've been able to come is to use git archive --format=zip v1.37 e2fsck/pass1.c | gunzip But that seems kinda silly. git-checkout will only write the output to the working tree. git-cat-file and git-show only work on a object identifier (they are low-level plumbing commands). So if it is a matter of we don't have an easy way to do this (as opposed to me being stupid or the git documentation just failing to mention it in the right places), what's the best way to add it? One easy way would be to add --format=raw to git-archive, but that might seem counter-intuitive to an average git user; they just want to see the output of a file at a particular point in time, which doesn't have much to do with archiving. Should we add a new command like "git-cat"? Should we add a -p option to the "git-checkout <treeish> <path>" form of git-checkout? I'm currently leaning towards the last; it would be pretty simple to enhance git-checkout so that a -p option would run "git archive --format=zip ...", even though that would be a pretty nasty hack, and it wouldn't be much harder to add --format=raw support to git-archive, but I still think that's not a intuitive place to find that particular functionality. - Ted - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html