VCS comparison table
Linus Torvalds
torvalds at osdl.org
Tue Oct 17 01:23:43 BST 2006
On Tue, 17 Oct 2006, Johannes Schindelin wrote:
> >
> > Unless you have branch(es) with totally different contents, like git.git
> > 'todo' branch.
>
> But I _do_ work with it! I just don't need to "checkout" it! Example:
>
> git -p cat-file -p todo:TODO
Ok, if there ever was an example of a strange git command-line, that was
it.
> (How about making git-cat be a short cuut to "git -p cat-file -p"?)
Well, you can just add
[alias]
cat=-p cat-file -p
to your ~/.gitconfig file, and you're there.
[ For all the non-git people here: the first "-p" is shorthand for
"--paginate", and means that git will automatically start a pager for
the output. The second "-p" is shorthand for "pretty" (there's no
long-format command line switch for it, though), and means that git
cat-file will show the result in a human-readable way, regardless of
whether it's just a text-file, or a git directory ]
So then you can do just
git cat todo:TODO
and you're done.
[ So for the non-git people, what that will actually _do_ is to show the
TODO file in the "todo" branch - regardless of whether it is checked out
or not, and start a pager for you. ]
I actually do this sometimes, but I've never done it for branches (and I
do it seldom enough that I haven't added the alias). I do it for things
like
git cat v2.6.16:Makefile
to see what a file looked like in a certain tagged release.
People sometimes find the git command line confusing, but I have to say,
the thing is _damn_ expressive. I've never seen anybody else do things
like the above that git does really naturally, with not that much
confusion really.
Even that "alias" file is quite readable, although I'd suggest writing out
the switches in full, ie
[alias]
cat=--paginate cat-file -p
instead. That kind of helps explains what the alias does and avoids the
question of why there are two "-p" switches.
Linus
More information about the bazaar
mailing list