On Wed, Nov 15, 2006 at 08:21:36PM -0800, Junio C Hamano wrote:Well, when I was using BitKeeper, I never would. Bitkeeper has what Linus calls the broken "repository == branch" model. So normally I would have one repository where I would track the upstream branch, and only do bk pull into that branch. I would do my hacking in another repository (i.e., branch), and periodically keep track wha was going on in mainline by cd'ing to the mainline repository and doing the bk pull there. The challenge when you put multiple branches into a single repository, is you have to keep track of which branch you happen to be in. In the BK world, this was obvious because it would show up in my shell prompt: <tytso@candygram> {/usr/src/linux-2.6} 2% (OK, obviously I'm in the Linux 2.6 upstream repository) In a system where you need to keep track of what branch you are in via an SCM-specific local state information, it's easy to get confused and do a pull when you are in the "wrong" branch, or while you have local state in your working directory. What I currently do (and I'm sure I'm being really horrible and need to be say 100 "Hail, Linus"'es for penance for not adhering staying in the one true distributed state of grace) is that I keep an entirely separate Linux 2.6 git repository just to make sure I never get confused about what branch I might happen to be in when I do the "git pull" --- and yeah, I could have used "git fetch", but 3+ years of BK usage plus Hg usage is hard to get away from. I'm sure this is where Linus would say that use of BK and Hg, causes permanent brain damage, ala's Dijkstra's ofted quoted comment about use of Basic inducing brain damage.... I think the problem is the people who have had years of BK or Hg experience. Maybe it's more of a documentation problem; perhaps a "git for BK" or "git for Hg" users is what's needed. The problem though is that while use of BK is definitely legacy, there are going to be a lot of people who need to use both BK and Hg. Well, I think this is where git's learning curve challenges are. Yes, for users that are doing the stupidest, most simplistic usage models, git is quite easy to use. And I am willing to grant that for people who are using the deepest, most complicated and most distributed development, who understand multiple branches and the index, and all of the deep git plumbing, there's also no problem. The challenge is in between; to use a car analogy, git has a great automatic transmision, and an extremely powerful "racing clutch". But for someone where the automatic transmission isn't good enough, when as they start to learn how to use the manual transmission, git's extremely touchy "racing clutch" is much more difficult master --- especially in comparison to people who have learned to drive other, more pedestrian "standard transmission" cars. So people who try to use git's racing clutch keep stalling out the car, and some give up in frustration. And maybe the problem is one that should be addressed only by lots of training, but at the moment, that's the reason why I believe a number of projects have chosen Hg instead of git; they need more than the "stupid simple" git usage, but if they don't need the extreme power of git, Hg is simpler for people to learn how to use. The problem, of course, comes when later on, the project finds out they really want git's power, and now they have to deal with the repository conversion as well as retraining their entire development community. But hey, maybe this isn't a problem the git community wants to solve; clearly git is optimized for the Linux kernel development, and maybe it's too much to ask that it also work well for somewhat less extremely distributed development models. But in any case, that's why I chose Hg for e2fsprogs. At the time when I made my choice, git was just too painful to learn how to use its more esoteric features, and Hg was much closer to BK's model. (Since then, Hg has added more functionality, including better multiple branches in a repository support, and it's gotten more complicated, but it's still much simper to teach someone how to use Hg than git.) Regards, - Ted - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| debian developer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Tim Tassonis | reiser4 for 2.6.27-rc1 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Peter Zijlstra | [PATCH 6/6] sched: disabled rt-bandwidth by default |
git: | |
| Alex Riesen | Re: question about git-submodule |
| Greg KH | Re: [ANNOUNCE] pg - A patch porcelain for GIT |
| Nicolas Pitre | Re: git-index-pack really does suck.. |
| Bill Lear | Meaning of "fatal: protocol error: bad line length character"? |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Matt | Setting up a virtual hosting machine w. SSH/SFTP accounts - pitfalls/experiences? |
| Marco Peereboom | Re: Real men don't attack straw men |
| bsd_news | LC_COLLATE and PostgreSQL |
| Eric Sandeen | Re: [RFC] Heads up on sys_fallocate() |
| John Stoffel | Re: [PATCH] LogFS take three |
| Al Boldi | Re: [RFD] Incremental fsck |
| Alex Zarochentsev | Re: silent semantic changes with reiser4 |
