<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/push.c, branch v1.8.2.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.8.2.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.8.2.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2013-02-04T18:25:04Z</updated>
<entry>
<title>Merge branch 'jc/push-reject-reasons'</title>
<updated>2013-02-04T18:25:04Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-02-04T18:25:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=370855e967e21d9c5b70df7b5cd3756c7bed5c7c'/>
<id>urn:sha1:370855e967e21d9c5b70df7b5cd3756c7bed5c7c</id>
<content type='text'>
Improve error and advice messages given locally when "git push"
refuses when it cannot compute fast-forwardness by separating these
cases from the normal "not a fast-forward; merge first and push
again" case.

* jc/push-reject-reasons:
  push: finishing touches to explain REJECT_ALREADY_EXISTS better
  push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
  push: further simplify the logic to assign rejection reason
  push: further clean up fields of "struct ref"
</content>
</entry>
<entry>
<title>push: finishing touches to explain REJECT_ALREADY_EXISTS better</title>
<updated>2013-01-25T07:28:50Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-01-25T05:09:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b4cf8db27502f613fcff3fd871c8e31d23f49c7d'/>
<id>urn:sha1:b4cf8db27502f613fcff3fd871c8e31d23f49c7d</id>
<content type='text'>
Now that "already exists" errors are given only when a push tries to
update an existing ref in refs/tags/ hierarchy, we can say "the
tag", instead of "the destination reference", and that is far easier
to understand.

Pointed out by Chris Rorvick.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE</title>
<updated>2013-01-24T22:37:23Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-01-23T21:55:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=75e5c0dc5529aed42122b3a774e6b17383e51b66'/>
<id>urn:sha1:75e5c0dc5529aed42122b3a774e6b17383e51b66</id>
<content type='text'>
When we push to update an existing ref, if:

 * the object at the tip of the remote is not a commit; or
 * the object we are pushing is not a commit,

it won't be correct to suggest to fetch, integrate and push again,
as the old and new objects will not "merge".  We should explain that
the push must be forced when there is a non-committish object is
involved in such a case.

If we do not have the current object at the tip of the remote, we do
not even know that object, when fetched, is something that can be
merged.  In such a case, suggesting to pull first just like
non-fast-forward case may not be technically correct, but in
practice, most such failures are seen when you try to push your work
to a branch without knowing that somebody else already pushed to
update the same branch since you forked, so "pull first" would work
as a suggestion most of the time.  And if the object at the tip is
not a commit, "pull first" will fail, without making any permanent
damage.  As a side effect, it also makes the error message the user
will get during the next "push" attempt easier to understand, now
the user is aware that a non-commit object is involved.

In these cases, the current code already rejects such a push on the
client end, but we used the same error and advice messages as the
ones used when rejecting a non-fast-forward push, i.e. pull from
there and integrate before pushing again.

Introduce new rejection reasons and reword the messages
appropriately.

[jc: with help by Peff on message details]

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: Add support for pre-push hooks</title>
<updated>2013-01-18T19:13:22Z</updated>
<author>
<name>Aaron Schrab</name>
<email>aaron@schrab.com</email>
</author>
<published>2013-01-13T05:17:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ec55559f937727bcb0fa8a3dfe6af68c188e968a'/>
<id>urn:sha1:ec55559f937727bcb0fa8a3dfe6af68c188e968a</id>
<content type='text'>
Add support for a pre-push hook which can be used to determine if the
set of refs to be pushed is suitable for the target repository.  The
hook is run with two arguments specifying the name and location of the
destination repository.

Information about what is to be pushed is provided by sending lines of
the following form to the hook's standard input:

  &lt;local ref&gt; SP &lt;local sha1&gt; SP &lt;remote ref&gt; SP &lt;remote sha1&gt; LF

If the hook exits with a non-zero status, the push will be aborted.

This will allow the script to determine if the push is acceptable based
on the target repository and branch(es), the commits which are to be
pushed, and even the source branches in some cases.

Signed-off-by: Aaron Schrab &lt;aaron@schrab.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: allow already-exists advice to be disabled</title>
<updated>2012-12-03T16:04:09Z</updated>
<author>
<name>Chris Rorvick</name>
<email>chris@rorvick.com</email>
</author>
<published>2012-12-03T03:27:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b450568209c8ae270d26ee7fda2e4687ad8a5327'/>
<id>urn:sha1:b450568209c8ae270d26ee7fda2e4687ad8a5327</id>
<content type='text'>
Add 'advice.pushAlreadyExists' option to disable the advice shown when
an update is rejected for a reference that is not allowed to update at
all (verses those that are allowed to fast-forward.)

Signed-off-by: Chris Rorvick &lt;chris@rorvick.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: rename config variable for more general use</title>
<updated>2012-12-03T16:04:08Z</updated>
<author>
<name>Chris Rorvick</name>
<email>chris@rorvick.com</email>
</author>
<published>2012-12-03T03:27:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1184564eac8ef6c82da068a31f60aee0d6870265'/>
<id>urn:sha1:1184564eac8ef6c82da068a31f60aee0d6870265</id>
<content type='text'>
The 'pushNonFastForward' advice config can be used to squelch several
instances of push-related advice.  Rename it to 'pushUpdateRejected' to
cover other reject scenarios that are unrelated to fast-forwarding.
Retain the old name for compatibility.

Signed-off-by: Chris Rorvick &lt;chris@rorvick.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: require force for refs under refs/tags/</title>
<updated>2012-12-02T09:44:34Z</updated>
<author>
<name>Chris Rorvick</name>
<email>chris@rorvick.com</email>
</author>
<published>2012-11-30T01:41:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=dbfeddb12e5bb540ed3c852eebda3df9117bd150'/>
<id>urn:sha1:dbfeddb12e5bb540ed3c852eebda3df9117bd150</id>
<content type='text'>
References are allowed to update from one commit-ish to another if the
former is an ancestor of the latter.  This behavior is oriented to
branches which are expected to move with commits.  Tag references are
expected to be static in a repository, though, thus an update to
something under refs/tags/ should be rejected unless the update is
forced.

Signed-off-by: Chris Rorvick &lt;chris@rorvick.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: add advice for rejected tag reference</title>
<updated>2012-12-02T09:39:50Z</updated>
<author>
<name>Chris Rorvick</name>
<email>chris@rorvick.com</email>
</author>
<published>2012-11-30T01:41:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b24e6047a8da3cddfd686e6a9157ed4bac28ed4f'/>
<id>urn:sha1:b24e6047a8da3cddfd686e6a9157ed4bac28ed4f</id>
<content type='text'>
Advising the user to fetch and merge only makes sense if the rejected
reference is a branch.  If none of the rejections are for branches, just
tell the user the reference already exists.

Signed-off-by: Chris Rorvick &lt;chris@rorvick.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: return reject reasons as a bitset</title>
<updated>2012-12-02T09:37:20Z</updated>
<author>
<name>Chris Rorvick</name>
<email>chris@rorvick.com</email>
</author>
<published>2012-11-30T01:41:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=10643d4ec3b9c5898d93d1c20e98b2ff1906bf79'/>
<id>urn:sha1:10643d4ec3b9c5898d93d1c20e98b2ff1906bf79</id>
<content type='text'>
Pass all rejection reasons back from transport_push().  The logic is
simpler and more flexible with regard to providing useful feedback.

Signed-off-by: Chris Rorvick &lt;chris@rorvick.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'nd/i18n-parseopt-help'</title>
<updated>2012-09-07T18:09:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2012-09-07T18:09:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=096bbd6537b8465d2123cea3361921793ce8a73a'/>
<id>urn:sha1:096bbd6537b8465d2123cea3361921793ce8a73a</id>
<content type='text'>
A lot of i18n mark-up for the help text from "git &lt;cmd&gt; -h".

* nd/i18n-parseopt-help: (66 commits)
  Use imperative form in help usage to describe an action
  Reduce translations by using same terminologies
  i18n: write-tree: mark parseopt strings for translation
  i18n: verify-tag: mark parseopt strings for translation
  i18n: verify-pack: mark parseopt strings for translation
  i18n: update-server-info: mark parseopt strings for translation
  i18n: update-ref: mark parseopt strings for translation
  i18n: update-index: mark parseopt strings for translation
  i18n: tag: mark parseopt strings for translation
  i18n: symbolic-ref: mark parseopt strings for translation
  i18n: show-ref: mark parseopt strings for translation
  i18n: show-branch: mark parseopt strings for translation
  i18n: shortlog: mark parseopt strings for translation
  i18n: rm: mark parseopt strings for translation
  i18n: revert, cherry-pick: mark parseopt strings for translation
  i18n: rev-parse: mark parseopt strings for translation
  i18n: reset: mark parseopt strings for translation
  i18n: rerere: mark parseopt strings for translation
  i18n: status: mark parseopt strings for translation
  i18n: replace: mark parseopt strings for translation
  ...
</content>
</entry>
</feed>
