<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/push.c, branch v2.12.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.12.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.12.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2017-01-31T21:14:56Z</updated>
<entry>
<title>Merge branch 'bw/push-submodule-only'</title>
<updated>2017-01-31T21:14:56Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-01-31T21:14:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=792e22e3fd99f204be11b0ff173f2d991308dca5'/>
<id>urn:sha1:792e22e3fd99f204be11b0ff173f2d991308dca5</id>
<content type='text'>
"git submodule push" learned "--recurse-submodules=only option to
push submodules out without pushing the top-level superproject.

* bw/push-submodule-only:
  push: add option to push only submodules
  submodules: add RECURSE_SUBMODULES_ONLY value
  transport: reformat flag #defines to be more readable
</content>
</entry>
<entry>
<title>Merge branch 'jc/push-default-explicit'</title>
<updated>2016-12-27T08:11:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-12-27T08:11:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6c18dd4dc370284417938a252ba7f1a36ad51053'/>
<id>urn:sha1:6c18dd4dc370284417938a252ba7f1a36ad51053</id>
<content type='text'>
A lazy "git push" without refspec did not internally use a fully
specified refspec to perform 'current', 'simple', or 'upstream'
push, causing unnecessary "ambiguous ref" errors.

* jc/push-default-explicit:
  push: test pushing ambiguously named branches
  push: do not use potentially ambiguous default refspec
</content>
</entry>
<entry>
<title>push: add option to push only submodules</title>
<updated>2016-12-20T20:26:34Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2016-12-19T18:25:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=225e8bf778d21104da10cfb316e0e2898b24e809'/>
<id>urn:sha1:225e8bf778d21104da10cfb316e0e2898b24e809</id>
<content type='text'>
Teach push the --recurse-submodules=only option.  This enables push
to recursively push all unpushed submodules while leaving the
superproject unpushed.

This is a desirable feature in a scenario where updates to the
superproject are handled automatically by some other means, perhaps
a tool like Gerrit code review.  In this scenario, a developer could
make a change which spans multiple submodules and then push their
commits for code review.  Upon completion of the code review, their
commits can be accepted and applied to their respective submodules
while the code review tool can then automatically update the
superproject to the most recent SHA1 of each submodule.  This would
reduce the merge conflicts in the superproject that could occur if
multiple people are contributing to the same submodule.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: do not use potentially ambiguous default refspec</title>
<updated>2016-10-29T06:30:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-10-28T19:25:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=eef2bdaa4a979994a22dbc5c2e7c5b8a9d2a2043'/>
<id>urn:sha1:eef2bdaa4a979994a22dbc5c2e7c5b8a9d2a2043</id>
<content type='text'>
When the user does the lazy "git push" with no parameters with
push.default set to either "upstream", "simple" or "current",
we internally generated a refspec that has the current branch name
on the source side and used it to push.

However, the branch name (say "test") may be an ambiguous refname in
the context of the source repository---there may be a tag with the
same name, for example.  This would trigger an unnecessary error
without any fault on the end-user's side.

Be explicit and give a full refname as the source side to avoid the
ambiguity.  The destination side when pushing with the "current"
sent only the name of the branch and forcing the receiving end to
guess, which is the same issue.  Be explicit there as well.

Reported-by: Kannan Goundan &lt;kannan@cakoose.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: accept push options</title>
<updated>2016-07-14T22:50:41Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2016-07-14T21:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f6a4e61fbb647928d615a0befaec163a5d2bf4af'/>
<id>urn:sha1:f6a4e61fbb647928d615a0befaec163a5d2bf4af</id>
<content type='text'>
This implements everything that is required on the client side to make use
of push options from the porcelain push command.

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'mm/push-default-warning'</title>
<updated>2016-02-26T21:37:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-26T21:37:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=15be621072740ccef0e89a3992ff369afd7c21bd'/>
<id>urn:sha1:15be621072740ccef0e89a3992ff369afd7c21bd</id>
<content type='text'>
Across the transition at around Git version 2.0, the user used to
get a pretty loud warning when running "git push" without setting
push.default configuration variable.  We no longer warn, given that
the transition is over long time ago.

* mm/push-default-warning:
  push: remove "push.default is unset" warning message
</content>
</entry>
<entry>
<title>push: remove "push.default is unset" warning message</title>
<updated>2016-02-25T17:56:42Z</updated>
<author>
<name>Matthieu Moy</name>
<email>Matthieu.Moy@imag.fr</email>
</author>
<published>2016-02-25T09:21:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2f275207ce9c8f6a03efa4fbd7c68d0e0b3e449c'/>
<id>urn:sha1:2f275207ce9c8f6a03efa4fbd7c68d0e0b3e449c</id>
<content type='text'>
The warning was important before the 2.0 transition, and remained
important for a while after, so that new users get push.default
explicitly in their configuration and do not experience inconsistent
behavior if they ever used an older version of Git.

The warning has been there since version 1.8.0 (Oct 2012), hence we can
expect the vast majority of current Git users to have been exposed to
it, and most of them have already set push.default explicitly. The
switch from 'matching' to 'simple' was planned for 2.0 (May 2014), but
actually happened only for 2.3 (Feb 2015).

Today, the warning is mostly seen by beginners, who have not set their
push.default configuration (yet). For many of them, the warning is
confusing because it talks about concepts that they have not learned and
asks them a choice that they are not able to make yet. See for example

  http://stackoverflow.com/questions/13148066/warning-push-default-is-unset-its-implicit-value-is-changing-in-git-2-0

(1260 votes for the question, 1824 for the answer as of writing)

Remove the warning completely to avoid disturbing beginners. People who
still occasionally use an older version of Git will be exposed to the
warning through this old version.

Eventually, versions of Git without the warning will be deployed enough
and tutorials will not need to advise setting push.default anymore.

Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ew/force-ipv4'</title>
<updated>2016-02-24T21:25:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-24T21:25:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e84d5e9fa178a027b1c8b9f6e22c9173dcda03b3'/>
<id>urn:sha1:e84d5e9fa178a027b1c8b9f6e22c9173dcda03b3</id>
<content type='text'>
"git fetch" and friends that make network connections can now be
told to only use ipv4 (or ipv6).

* ew/force-ipv4:
  connect &amp; http: support -4 and -6 switches for remote operations
</content>
</entry>
<entry>
<title>connect &amp; http: support -4 and -6 switches for remote operations</title>
<updated>2016-02-12T19:34:14Z</updated>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<published>2016-02-03T04:09:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c915f11eb4922e154e29cf62d3b549d65c06a170'/>
<id>urn:sha1:c915f11eb4922e154e29cf62d3b549d65c06a170</id>
<content type='text'>
Sometimes it is necessary to force IPv4-only or IPv6-only operation
on networks where name lookups may return a non-routable address and
stall remote operations.

The ssh(1) command has an equivalent switches which we may pass when
we run them.  There may be old ssh(1) implementations out there
which do not support these switches; they should report the
appropriate error in that case.

rsync support is untouched for now since it is deprecated and
scheduled to be removed.

Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
Reviewed-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/push-delete-option'</title>
<updated>2016-01-12T23:16:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-01-12T23:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7b9d1b9556b31fe5f661caa1e82856ca876f2a08'/>
<id>urn:sha1:7b9d1b9556b31fe5f661caa1e82856ca876f2a08</id>
<content type='text'>
"branch --delete" has "branch -d" but "push --delete" does not.

* ps/push-delete-option:
  push: add '-d' as shorthand for '--delete'
  push: add '--delete' flag to synopsis
</content>
</entry>
</feed>
