git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Checking for fast-forward

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Jul 7, 2009, 08:21 UTC
Message-ID
<4A530594.20100@drmicha.warpmail.net>
In-Reply-To
<20090706232614.32602ccc@schatten>
Florian Mickler venit, vidit, dixit 06.07.2009 23:26:
Show 16 quoted lines
> this is more of a git question, than smth special to msysgit. 
> 
> (git ml cc'd)
> 
> On Mon, 6 Jul 2009 17:36:54 +0100
> Lee Griffiths <poddster@gmail.com> wrote:
> 
>>
>> I have a script that checks for fast-forwarding by doing a git push
>> --dry-run. This strikes me as the wrong way to do it as it does _all_
>> of the stuff a git push would normally do i.e., packing and so on, and
>> I'm only really after the fast-forward check. Seeing as I already do a
>> git push at the end of the script (actualy two, as I do a --tags one
>> as well[1]), it seems like a big waste of time. Is there anyother way
>> to check and see if the git push would work? (I want the script to
>> avoid doing a git pull if possible).

No. (I infer your question is how to find out whether a push is a fast-forward.)

If you don't know the state of the branch head in the remote repo you simply cannot know whether the push will be a fast-forward.

If you know that your corresponding remote branch (say remotes/origin/foo) is up-to-date with the destination branch (say foo) in the remote repo (e.g., because you know you've fetched before and nobody else is allowed to push there) then you can compare your branch to be pushed (say foo) with your remote branch:

If $(git rev-list bar..remotes/origin/foo) is empty then the branch foo in the remote repo can be fast-forwarded to bar.

Chhers, Michael

Previous: Florian MicklerNext: Florian Mickler
Message 2 of 5 in “Re: Checking for fast-forward”
  1. Florian MicklerJul 6, 2009
  2. Michael J GruberJul 7, 2009
  3. Florian MicklerJul 7, 2009
  4. Michael J GruberJul 7, 2009
  5. Lee GriffithsJul 8, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.