Josef Weidendorfer <[EMAIL PROTECTED]> writes:

> I think that both, default and non-default persistant
> mappings, are only a handy convenience issue for less
> typing. If GIT core is not doing this, some (most?) porcelains
> will invent their own way for storing these mappings.

Suppose I have something like this in $GIT_DIR/remotes/ko:

    Pull: master:ko-master rc:ko-rc pu:ko-pu
    Push: master:master pu:pu rc:rc
    Default-Pull: master rc

That is, "Pull/Push" describe only the default mappings, and
"Default-Pull/Default-Push" names the refs pulled or pushed when
only the shorthand (ko) is specified.  I think that is what your
proposal boils down to.  Lack of "Default-Push" just means use
the heads listed on "Push" line for the default.

Am I reading you right so far?

With that definition, what these would do would be intuitive and

    $ git push ko  ;# my master, rc, and pu goes there, under
                    # the same name.
    $ git fetch ko ;# their master comes to my ko-master, rc to my ko-rc
                    # pu is not touched.

But now, what should this do?

    $ git fetch ko master

(1) does it use "Pull" mappings and use their "master" to fast
    forward my "ko-master"?


(2) does it obey "the command line overrides the configuration
    file" principle and fetch their "master" but not touch my
    local refs (remember, refspec "master" without colon is
    equivalent to "master:" in fetch, which means "get the
    objects to complete it, but do not store the ref locally")?

If (1), then I would need to say "master:something" on the
command line almost all the time, because the point of remotes/
configuration file is that I do not have to remember which
remote head corresponds to my local head, and by definition I
would not (and should not have to) know if "master" has the
default mappings specified there and to which head, so even that
"something" happens to be exactly what is in the remotes/ file,
I would end up typing that explicitly.  Which means that it
defeats the point of having the configuration file to begin

If (2), then I would again need to say master:ko-master if I
wanted to mean "usually I pull from some heads (I do not
remember which ones offhand, but my .git/remotes/ file would
know), but this time I want to only pull from master and update

What this suggests to me is that making set of default refs to
be pulled from and set of ref mappings orthgonal sounds like a
good and clean way in theory, but would not be that much useful
in practice.

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to