Why? We _do_ have the temporary branch. It's called FETCH_HEAD.
Again, why didn't you use FETCH_HEAD?
If the user doesn't give us a head to write to, we clearly MUST NOT write
to any long-term branch. That would be a _horrible_ mistake.
So all your complaints seem totally misplaced. The UI is both usable and
practical, and your complaint that git pull doesn't store the fetched
branches is just NOT TRUE.
And your "solution" is obviously totally unusable. git ABSOLUTELY MUST NOT
overwrite any existing branches unless explicitly told to do so by the
user.
So I really don't see your point.
A lot of the complaints seem to not be about the interfaces, but about
people not _understanding_ and knowing what the interfaces do. If you were
confused about something (like not realizing that FETCH_HEAD is there and
very much usable), how about sending in a patch to make FETCH_HEAD use
clearer in whatever docs you looked at and didn't find it mentioned in.
Now, there is no question that some of the interfaces can get a bit
"interesting" to use. For example, if you really don't want to re-fetch
for some reason, FETCH_HEAD actually does contain enough information that
you should be able to just re-do a failed merge, for example, including
the message generation. But at that point it really _does_ get a bit
complicated, and you end up doing something like
git merge "$(git fmt-merge-msg < .git/FETCH_HEAD)" HEAD FETCH_HEAD
which should _work_, but I'm not going to claim that it's all that easy to
understand.
(That said, read that one-liner a few times, and suddenly it doesn't seem
_that_ complicated any more, now does it? You can probably even guess what
it's really going to do, even if you don't know git all that well. It's
not unreadable line noise, is it?)
Of course, if I had a merge that failed (the most common reason being that
I had some uncommitted patch in a file that wanted to be updated by the
merge), I'd never actually do the above one-liner. I'd just re-do the
pull. But if networking was _really_ slow, and I _really_ cared, maybe I'd
do the above.
(And no, I didn't actually test the above one-liner. Maybe it doesn't work
for some reason. Somebody should check, just for fun).
Linus
-
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