On Wed, 08 Nov 2006 18:57:49 -0500, Havoc Pennington wrote: > > On Wed, 08 Nov 2006 14:22:01 -0500, Havoc Pennington wrote: > > > > Havoc, I don't follow your argument at all. If Eclipse is the > > important UI, then how could the git command-line be relevant at all? > > I'm just talking about my personal preference. > > I use both command line and Eclipse pretty often. OK. So an eclipse plugin for git is missing, but you do also care about the command-line interface. > Let's put it this way: honestly I don't care how cool the git > implementation is, if I have to _know_ what the implementation is. If I > wanted to know, I would write my own version control system like > everyone else ;-) I can appreciate you not being interested in learning the details of the implementation. But for making a decision, _somebody_ should have an informed opinion based on the details. Because they really do matter for all the reasons Keith explained in his blog entry. If I were asked for my opinion, I would say "I've studied the details of the svn, git, bzr, and hg implementations and git wins hands down". And you should just accept that as truth, because otherwise I'll have to start telling you _why_ which will involve details you don't want to hear. > [1] I'm not going to be productive and try to design something > better/ideal, since it would take weeks, but if you "man git" there's a > "Plumbing" section and a "Porcelain" section. As a start, I'd like to > live in a world where "Plumbing" was somewhere I never saw it. Sure. And that's a worthwhile part of the metaphor that still needs to sink in with git in a few places. > Right now the terminology and goo from that layer leaks out everywhere, > whether it's in the docs, in the output of git-<Tab>, in status > messages, or in UIs that show me huge hex numbers and say things like > "blob" when they mean "file." svn presumably also has "plumbing" but I > don't know about it and am happy not to. I agree that there are some bad leaks in the documentation still. Yes, "man git" is awful, the git-<Tab> thing is annoying, and a handful of the git commands spew messages that are not helpful[*]. Those things should all get fixed, and all of them could with a tiny amount of effort. And git has been improving a lot in these areas. For example, "git help" is quite sane and lists only 28 commands all of which are easy to use and are generally well documented. (I just checked and in the 28 man pages "blob" only appears in a single paragraph). If 28 commands still sounds like a lot, note that "svn help" reports 30 commands. Meanwhile, a rewrite of "man git" has recently been discussed to bury the plumbing. So for the things you've mentioned, I don't see any problems to them getting fixed, and I do see good progress toward making that happen. One thing that would help is a new user to git carefully noting annoyances, since experienced users grow accustomed to things and don't always realize what should be changed. -Carl [*] Though, with a quick test below (create repo, add file, commit, change file, commit), of git, hg, svn, and bzr it turns out that svn is the noisiest, and hg is the only tool that is totally silent. Some of that is because svn is expecting to do network transfer where it does make sense to provide progress indication, (pretty much all of the tools provide good indication when transferring data). The git output does show one "huge hex number". The initial commit is an oddball in that is spits this number out for no good reason, (no subsequent commit does). Otherwise, the hex numbers only show up in the logs, (and hg and bzr have basically the same kinds of huge identifiers for commits---though bzr tries hard to hide them in the most recent version). Probably the best thing to take away from what follows is that the UI for all of these tools really is quite similar. One thing that does stand out in the commands below is that svn keeps the repository data separate, (with all of the problems that that causes). $ mkdir gittest; cd gittest $ git init-db defaulting to local storage area $ echo hello > hello $ git add hello $ git commit -m "add hello" Committing initial tree b4d01e9b0c4a9356736dfddf8830ba9a54f5271c $ echo goodbye > hello $ git commit -a -m "change to goodbye" $ mkdir hgtest; cd hgtest $ cd hgtest $ hg init $ echo hello > hello $ hg add hello $ hg commit -m "add hello" $ echo goodbye > hello $ hg commit -m "change to goodbye" $ svnadmin create svnrepo $ svn co file:///tmp/svnrepo svntest Checked out revision 0. $ cd svntest/ $ echo hello > hello $ svn add hello A hello $ svn commit -m "add hello" Adding hello Transmitting file data . Committed revision 1. $ echo goodbye > hello $ svn commit -m "change to goodbye" Sending hello Transmitting file data . Committed revision 2. $ mkdir bzrtest; cd bzrtest $ bzr init $ echo hello > hello $ bzr add hello added hello $ bzr commit -m "add hello" added hello Committed revision 1. $ echo goodbye > hello $ bzr commit -m "change to goodbye" modified hello Committed revision 2.
Attachment:
pgpZWooS9KiUN.pgp
Description: PGP signature
-- Fedora-maintainers mailing list Fedora-maintainers@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-maintainers
-- Fedora-maintainers-readonly mailing list Fedora-maintainers-readonly@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-maintainers-readonly