<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/push.c, 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-03-07T23:18:28Z</updated>
<entry>
<title>Merge branch 'cc/starts-n-ends-with-endgame'</title>
<updated>2014-03-07T23:18:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-03-07T23:18:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e3f118594683b075d70fb479a81613f614a7b1f1'/>
<id>urn:sha1:e3f118594683b075d70fb479a81613f614a7b1f1</id>
<content type='text'>
prefixcmp/suffixcmp are gone.
</content>
</entry>
<entry>
<title>Merge branch 'gj/push-more-verbose-advice'</title>
<updated>2014-03-07T23:17:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-03-07T23:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=289ca27deefab9b145a156a30571d9d25a9ad17c'/>
<id>urn:sha1:289ca27deefab9b145a156a30571d9d25a9ad17c</id>
<content type='text'>
</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>Merge branch 'jc/push-refmap'</title>
<updated>2013-12-27T22:57:50Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-12-27T22:57:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7cdebd8a2039cb3ec717b880709ea6dfd824e3c4'/>
<id>urn:sha1:7cdebd8a2039cb3ec717b880709ea6dfd824e3c4</id>
<content type='text'>
Make "git push origin master" update the same ref that would be
updated by our 'master' when "git push origin" (no refspecs) is run
while the 'master' branch is checked out, which makes "git push"
more symmetric to "git fetch" and more usable for the triangular
workflow.

* jc/push-refmap:
  push: also use "upstream" mapping when pushing a single ref
  push: use remote.$name.push as a refmap
  builtin/push.c: use strbuf instead of manual allocation
</content>
</entry>
<entry>
<title>push: also use "upstream" mapping when pushing a single ref</title>
<updated>2013-12-04T23:12:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-12-04T00:23:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fc9261ca611080b1dae76b86b3bf5f36d592042f'/>
<id>urn:sha1:fc9261ca611080b1dae76b86b3bf5f36d592042f</id>
<content type='text'>
When the user is using the 'upstream' mode, these commands:

    $ git push
    $ git push origin

would find the 'upstream' branch for the current branch, and then
push the current branch to update it.  However, pushing a single
branch explicitly, i.e.

    $ git push origin $(git symbolic-ref --short HEAD)

would not go through the same ref mapping process, and ends up
updating the branch at 'origin' of the same name, which may not
necessarily be the upstream of the branch being pushed.

In the spirit similar to the previous one, map a colon-less refspec
using the upstream mapping logic.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</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>builtin/push.c: use strbuf instead of manual allocation</title>
<updated>2013-12-03T22:47:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-12-03T22:33:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=50d829c11a3c82a8b23f2e165ab6944dfd9bbb36'/>
<id>urn:sha1:50d829c11a3c82a8b23f2e165ab6944dfd9bbb36</id>
<content type='text'>
The command line arguments given to "git push" are massaged into
a list of refspecs in set_refspecs() function. This was implemented
using xmalloc, strcpy and friends, but it is much easier to read if
done using strbuf.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: switch default from "matching" to "simple"</title>
<updated>2013-11-13T22:12:37Z</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=11037ee7e3057e60d765d6f77dd154e83323dfcd'/>
<id>urn:sha1:11037ee7e3057e60d765d6f77dd154e83323dfcd</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>push: enhance unspecified push default warning</title>
<updated>2013-11-13T22:12:23Z</updated>
<author>
<name>Greg Jacobson</name>
<email>coder5000@gmail.com</email>
</author>
<published>2013-10-04T14:20:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c13a5fe47b03cc115985ec79bff00b5510023092'/>
<id>urn:sha1:c13a5fe47b03cc115985ec79bff00b5510023092</id>
<content type='text'>
When the unset push.default warning message is displayed this may be
the first time many users encounter push.default.

Explain in the warning message in a compact manner what push.default
is and what the change means to the end-user to help the users decide.

Signed-off-by: Greg Jacobson &lt;coder5000@gmail.com&gt;
Helped-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Helped-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Helped-by: Marc Branchaud &lt;marcnarc@xiplink.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'nd/push-no-thin'</title>
<updated>2013-09-11T21:56:59Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-09-11T21:56:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2de0f39cd27d8ab8eae2e3430b81294f26252693'/>
<id>urn:sha1:2de0f39cd27d8ab8eae2e3430b81294f26252693</id>
<content type='text'>
"git push --no-thin" was a no-op by mistake.

* nd/push-no-thin:
  push: respect --no-thin
</content>
</entry>
</feed>
