From: Johannes Schindelin Date: Wed, 16 Jul 2008 23:05:21 GMT Subject: Re: Considering teaching plumbing to users harmful Message-ID: In-Reply-To: <7vmykhpn6z.fsf@gitster.siamese.dyndns.org> Hi, On Wed, 16 Jul 2008, Junio C Hamano wrote: > Johannes Schindelin writes: > > > Am I the only one who deems teaching plumbing to users ("I like it raw! > > So I teach it the same way!") harmful? > > I think that justification is harmful. > > More productive way to think about it is to identify cases where we > _need_ to go down to combination of the plumbing commands in our daily > workflow, with today's command set. That would give us a good > indication that some Porcelain may need to be enhanced. > > An example. I find myself running "git read-tree -m -u $another_state" > while redoing a series inside a "rebase -i" session to move commit > boundaries. There may need an insn that says "use that tree" instead of > "edit" and running "read-tree -m -u" by hand. This does not bother me > too much, but there probably are other examples. > > Another example. I often run "git ls-files -u" while looking at which > paths are conflicting. ls-files is classified as plumbing, but it does > not bother me as much as having to see the staged long object names in > this output. Other people, however, might find it yucky, and we might > want "git merge --unmerged" or something that lists the paths (and only > paths, no stage information) that still have conflicts. I agree that if you know Git internals -- and you and me do -- it comes in _right_ handy to know the 100+ commands with many options by heart. However, my point was about telling users, especially new ones. For example, I would _never_ suggest the following workflow to a n00b because it would be confusing: $ tar xvf $ git init $ git remote add -f origin $ git read-tree $ git status $ git add -p $ git commit -s $ git rebase -i origin/master $ git format-patch -n origin/master Even if this is something I did at least a handfull times myself. Ciao, Dscho