i just had a rather annoying session with git - here's the dump and
commentary, in case anyone is interested in usability fineprint.
it was with git-core-1.5.4.3-2.fc8 - so if it's all fixed/improved in
1.5.5, or if this is blatant user error for which i deserve to be
punished then my apologies!
usually i just have a single git repo that tracks everything
interesting, but this time i did something i rarely do: i tried to merge
one local tree of mine into another local tree of mine. So i had no
commands (or even concepts) cached in my short-term memory that would
achieve this goal, i just tried the commands that i thought to be
'obvious', without applying much (or any) IQ to those commands:
$ cd linux-2.6-sched-devel.git
$ git-remote add ~/linux-2.6-x86.git
$ git-remote show x86
* remote x86
URL: /home/mingo/linux-2.6-x86.git
New remote branches (next fetch will store in remotes/x86)
base for-akpm for-linus latest master testing
$ git-merge x86/latest
x86/latest - not something we can merge
#
# ho hum. Not something 'we' can merge. Do i care? :-) There's no
# actionable reference given to the user about how to resolve this
# problem. So i kept on trying:
#
$ git-fetch x86/latest
fatal: 'x86/latest': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
$ git-pull x86/latest
fatal: 'x86/latest': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
#
# hm. two fatal messages, suggesting that there's something really
# wrong while there's nothing wrong.
#
what got me going after experimenting around some more was this exact
command:
$ git-pull x86 latest
(that fetch+merge went problem-free.)
but it was a PITA and all of git's messages about the problem were not
only unhelpful, they confused me into looking for problems where there
were none IMO. I was starting to wonder whether i have to have some git
daemon running on that box for example. But in retrospect IMO it was
rather clear from the outset what i wanted git to do (merge the tip of
my other tree into the tip of this tree, on the local box, no frills), i
just didnt figure out the exact command to do it.
another (minor) usability annoyance: one of the first things i tried was
to verify the remote setup, via:
$ git-remote show
which gave me this answer:
Usage: git remote show <remote>
then i tried git-remote show -a (to list all repositories, etc.) - what
i didnt figure out was to show all repositories is to do a simple
"git-remote". I think "git-remote show" should output all repositories,
or at least indicate it in its help line what to do to get such a list.
(for us poor sobs forgetting commandline details ;)
also, the first natural thing i did was to just type:
$ git-merge ~/linux-2.6-x86.git/
which i naively assumed would sort things out for me and provide some
reasonable default behavior - but instead it just gave an annoyingly
unhelpful error message:
/home/mingo/linux-2.6-x86.git/ - not something we can merge
there should really be a consciously established "route of failure
resolution" - directing people towards relevant sources of information
or commands when the git command-line utilities return some error due to
user incompetence. Otherwise users just guess around and get frustrated.
also, i think this session also probably matches the newbie's experience
about git, and making certain git operations so hard to achieve is
certainly not a reassuring experience for them either. [ Or shall they
all be filtered out as fundamentally incompetent people? ;-) ]
Ingo
--
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
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
| Glauber de Oliveira Costa | [PATCH 0/19] desc_struct integration |
| Paolo Ornati | Re: [patch 00/69] -stable review |
| Ingo Molnar | [patch] CFS scheduler, -v6 |
git: | |
| Denis Bueno | git-instaweb portability issue (maybe?) |
| Jon Smirl | Re: Inconsistencies with git log |
| Johannes Schindelin | Re: [PATCH] Fix premature call to git_config() causing t1020-subdirectory to fail |
| Dan Farina | backup or mirror a repository |
| Marc Espie | Re: That whole "Linux stealing our code" thing |
| Ray Percival | Re: Real men don't attack straw men |
| askthelist | Packets Per Second Limit? |
| Didier Wiroth | how can I "find xyz | xargs tar" ... like gtar |
| Marcel Holtmann | Bluetooth fixes for 2.6.27 |
| Giacomo A. Catenazzi | Re: [BUG] New Kernel Bugs |
| Tilman Schmidt | Re: 2.6.25-rc8: FTP transfer errors |
| Ingo Oeser | Re: [PATCH]: Third (final?) release of Sun Neptune driver |
| high memory | 10 hours ago | Linux kernel |
| semaphore access speed | 13 hours ago | Applications and Utilities |
| the kernel how to power off the machine | 14 hours ago | Linux kernel |
| Easter Eggs in windows XP | 17 hours ago | Windows |
| Shared swap partition | 18 hours ago | Linux general |
| Root password | 18 hours ago | Linux general |
| Where/when DNOTIFY is used? | 20 hours ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 22 hours ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 23 hours ago | Linux kernel |
| USB Driver -- Interrupt Polling -- A Little Help Please | 1 day ago | Linux general |
