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| Theodore Tso | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
| Amit K. Arora | [RFC] Heads up on sys_fallocate() |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 011/196] sysfs: Fix a copy-n-paste typo in comment |
git: | |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
