<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/git-push.txt, branch v2.0.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.0.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.0.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2014-04-08T19:00:28Z</updated>
<entry>
<title>Merge branch 'jl/nor-or-nand-and'</title>
<updated>2014-04-08T19:00:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-04-08T19:00:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d59c12d7ad39f942fc60578ba1e934822f40445b'/>
<id>urn:sha1:d59c12d7ad39f942fc60578ba1e934822f40445b</id>
<content type='text'>
Eradicate mistaken use of "nor" (that is, essentially "nor" used
not in "neither A nor B" ;-)) from in-code comments, command output
strings, and documentations.

* jl/nor-or-nand-and:
  code and test: fix misuses of "nor"
  comments: fix misuses of "nor"
  contrib: fix misuses of "nor"
  Documentation: fix misuses of "nor"
</content>
</entry>
<entry>
<title>Documentation: fix misuses of "nor"</title>
<updated>2014-03-31T22:16:22Z</updated>
<author>
<name>Justin Lebar</name>
<email>jlebar@google.com</email>
</author>
<published>2014-03-31T22:11:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a58088abe2011b6f486de8acd54432f6d9bcecfc'/>
<id>urn:sha1:a58088abe2011b6f486de8acd54432f6d9bcecfc</id>
<content type='text'>
Signed-off-by: Justin Lebar &lt;jlebar@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/push-2.0-default-to-simple'</title>
<updated>2014-03-07T23:13:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-03-07T23:13:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=009055f3ecd8d9b4eb140429cb5ce5d2088174c7'/>
<id>urn:sha1:009055f3ecd8d9b4eb140429cb5ce5d2088174c7</id>
<content type='text'>
Finally update the "git push" default behaviour to "simple".
</content>
</entry>
<entry>
<title>push: use remote.$name.push as a refmap</title>
<updated>2013-12-04T23:11:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-12-03T23:41:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ca02465b41311fe7634acb9bb5b5c61975ef5f38'/>
<id>urn:sha1:ca02465b41311fe7634acb9bb5b5c61975ef5f38</id>
<content type='text'>
Since f2690487 (fetch: opportunistically update tracking refs,
2013-05-11), we stopped taking a non-storing refspec given on the
command line of "git fetch" literally, and instead started mapping
it via remote.$name.fetch refspecs.  This allows

    $ git fetch origin master

from the 'origin' repository, which is configured with

    [remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*

to update refs/remotes/origin/master with the result, as if the
command line were

    $ git fetch origin +master:refs/remotes/origin/master

to reduce surprises and improve usability.  Before that change, a
refspec on the command line without a colon was only to fetch the
history and leave the result in FETCH_HEAD, without updating the
remote-tracking branches.

When you are simulating a fetch from you by your mothership with a
push by you into your mothership, instead of having:

    [remote "satellite"]
        fetch = +refs/heads/*:refs/remotes/satellite/*

on the mothership repository and running:

    mothership$ git fetch satellite

you would have:

    [remote "mothership"]
        push = +refs/heads/*:refs/remotes/satellite/*

on your satellite machine, and run:

    satellite$ git push mothership

Because we so far did not make the corresponding change to the push
side, this command:

    satellite$ git push mothership master

does _not_ allow you on the satellite to only push 'master' out but
still to the usual destination (i.e. refs/remotes/satellite/master).

Implement the logic to map an unqualified refspec given on the
command line via the remote.$name.push refspec.  This will bring a
bit more symmetry between "fetch" and "push".

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rh/ishes-doc'</title>
<updated>2013-09-17T18:42:51Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-09-17T18:42:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=89dde7882f71f846ccd0359756d27bebc31108de'/>
<id>urn:sha1:89dde7882f71f846ccd0359756d27bebc31108de</id>
<content type='text'>
We liberally use "committish" and "commit-ish" (and "treeish" and
"tree-ish"); as these are non-words, let's unify these terms to
their dashed form.  More importantly, clarify the documentation on
object peeling using these terms.

* rh/ishes-doc:
  glossary: fix and clarify the definition of 'ref'
  revisions.txt: fix and clarify &lt;rev&gt;^{&lt;type&gt;}
  glossary: more precise definition of tree-ish (a.k.a. treeish)
  use 'commit-ish' instead of 'committish'
  use 'tree-ish' instead of 'treeish'
  glossary: define commit-ish (a.k.a. committish)
  glossary: mention 'treeish' as an alternative to 'tree-ish'
</content>
</entry>
<entry>
<title>use 'commit-ish' instead of 'committish'</title>
<updated>2013-09-04T22:03:03Z</updated>
<author>
<name>Richard Hansen</name>
<email>rhansen@bbn.com</email>
</author>
<published>2013-09-04T19:04:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a8a5406ab32fccabf8ed08001d50b5373e18ff1a'/>
<id>urn:sha1:a8a5406ab32fccabf8ed08001d50b5373e18ff1a</id>
<content type='text'>
Replace 'committish' in documentation and comments with 'commit-ish'
to match gitglossary(7) and to be consistent with 'tree-ish'.

The only remaining instances of 'committish' are:
  * variable, function, and macro names
  * "(also committish)" in the definition of commit-ish in
    gitglossary[7]

Signed-off-by: Richard Hansen &lt;rhansen@bbn.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>remote.c: add command line option parser for "--force-with-lease"</title>
<updated>2013-07-23T05:02:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-07-08T22:34:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=28f5d176110d2ed768a0a49159993c7a02d8cb15'/>
<id>urn:sha1:28f5d176110d2ed768a0a49159993c7a02d8cb15</id>
<content type='text'>
Update "git push" and "git send-pack" to parse this commnd line
option.

The intended sematics is:

 * "--force-with-lease" alone, without specifying the details, will
   protect _all_ remote refs that are going to be updated by
   requiring their current value to be the same as some reasonable
   default, unless otherwise specified;

 * "--force-with-lease=refname", without specifying the expected
   value, will protect that refname, if it is going to be updated,
   by requiring its current value to be the same as some reasonable
   default.

 * "--force-with-lease=refname:value" will protect that refname, if
   it is going to be updated, by requiring its current value to be
   the same as the specified value; and

 * "--no-force-with-lease" will cancel all the previous --force-with-lease on the
   command line.

For now, "some reasonable default" is tentatively defined as "the
value of the remote-tracking branch we have for the ref of the
remote being updated", and it is an error if we do not have such a
remote-tracking branch.  But this is known to be fragile, its use is
not yet recommended, and hopefully we will find more reasonable
default as we gain experience with this feature.  The manual marks
the feature as experimental unless the expected value is specified
explicitly for this reason.

Because the command line options are parsed _before_ we know which
remote we are pushing to, there needs further processing to the
parsed data after we instantiate the transport object to:

 * expand "refname" given by the user to a full refname to be
   matched with the list of "struct ref" used in match_push_refs()
   and set_ref_status_for_push(); and

 * learning the actual local ref that is the remote-tracking branch
   for the specified remote ref.

Further, some processing need to be deferred until we find the set
of remote refs and match_push_refs() returns in order to find the
ones that need to be checked after explicit ones have been processed
for "--force-with-lease" (no specific details).

These post-processing will be the topic of the next patch.

This option was originally called "cas" (for "compare and swap"),
the name which nobody liked because it was too technical.  The
second attempt called it "lockref" (because it is conceptually like
pushing after taking a lock) but the word "lock" was hated because
it implied that it may reject push by others, which is not the way
this option works.  This round calls it "force-with-lease".  You
assume you took the lease on the ref when you fetched to decide what
the rebased history should be, and you can push back only if the
lease has not been broken.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'mm/push-force-is-dangerous'</title>
<updated>2013-06-26T22:07:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-06-26T22:07:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=14c6ee99aeefe4420afeb89b725e05dde806ec60'/>
<id>urn:sha1:14c6ee99aeefe4420afeb89b725e05dde806ec60</id>
<content type='text'>
* mm/push-force-is-dangerous:
  Documentation/git-push.txt: explain better cases where --force is dangerous
</content>
</entry>
<entry>
<title>push: switch default from "matching" to "simple"</title>
<updated>2013-06-18T19:36:00Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-01-05T00:02:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b2ed944af79041b4da151a432064c3b1c1b82fc5'/>
<id>urn:sha1:b2ed944af79041b4da151a432064c3b1c1b82fc5</id>
<content type='text'>
We promised to change the behaviour of lazy "git push [there]" that
does not say what to push on the command line from "matching" to
"simple" in Git 2.0.

This finally flips that bit.

Helped-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Documentation/git-push.txt: explain better cases where --force is dangerous</title>
<updated>2013-06-18T14:35:48Z</updated>
<author>
<name>Matthieu Moy</name>
<email>Matthieu.Moy@imag.fr</email>
</author>
<published>2013-06-17T17:52:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=70495b556f5685afe0e41988e42d48b2331d77a0'/>
<id>urn:sha1:70495b556f5685afe0e41988e42d48b2331d77a0</id>
<content type='text'>
The behavior of "git push --force" is rather clear when it updates only
one remote ref, but running it when pushing several branches can really
be dangerous. Warn the users a bit more and give them the alternative to
push only one branch.

Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
