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

Cloning new bare repository using ssh does not respect bare repository --initial-branch

From
SSheik <sahibzone@gmail.com>
Date
Oct 25, 2023, 19:57 UTC
Message-ID
<39e013af-69c7-4185-99ae-1e8fe5edef5c@gmail.com>
Hi Maintainers,

When a new bare repository is cloned using SSH then cloned HEAD does not point to initial branch from the bare repository. However if cloned using filesystem then HEAD points to initial branch as expected. Shouldn't cloning via ssh also exhibit the same behaviour as cloning via filesystem?

Thank you for filling out a Git bug report! Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue)
#Create bare repository
     su - $user
     git init --bare --initial-branch=test test.git
#Clone repository
     git clone ssh://$user@$computer:/home/$user/test.git test1
     cd test1
     #git remote show origin
     #Output [ORIGIN1]
     echo abc >> abc.txt && git add * && git commit -a -m test && git push
     #Output...
     * [new branch]      master -> master
     #git remote show origin
     #Output [ORIGIN2]

What did you expect to happen? (Expected behavior) Repository cloned using ssh should push to test branch just like repository cloned using filesystem does below as configured in the bare repository.

#Clone repository
     git clone home/$user/test.git test2
     #git remote show origin
     #Output [ORIGIN3]
     echo abc >> abc.txt && git add * && git commit -a -m test && git push
     #Output...
     * [new branch]      test -> test
     #git remote show origin
     #Output [ORIGIN4]

What happened instead? (Actual behavior) Repository cloned using ssh pushed to master branch disregarding configuration in bare repository.

What's different between what you expected and what actually happened? For ssh cloned repository test branch should been the default branch however master was the default.

Anything else you want to add:
[ORIGIN1]
* remote origin
   HEAD branch: (unknown)
   Local branch configured for 'git pull':
     master merges with remote master
[ORIGIN2]
* remote origin
   HEAD branch: (unknown)
   Remote branch:
     master tracked
   Local branch configured for 'git pull':
     master merges with remote master
   Local ref configured for 'git push':
     master pushes to master (up to date)
[ORIGIN3]
* remote origin
   HEAD branch: (unknown)
   Local branch configured for 'git pull':
     test merges with remote test
[ORIGIN4]
* remote origin
   HEAD branch: test
   Remote branches:
     master new (next fetch will store in remotes/origin)
     test   tracked
   Local branch configured for 'git pull':
     test merges with remote test
   Local ref configured for 'git push':
     test pushes to test (up to date)

Please review the rest of the bug report below. You can delete any lines you don't wish to share.

[System Info] git version: git version 2.42.0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 6.5.0-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.6-1 (2023-10-07) x86_64 compiler info: gnuc: 13.2 libc info: glibc: 2.37 $SHELL (typically, interactive shell): /bin/bash

[Enabled Hooks]
Next: Sheik
Message 1 of 2 in “Cloning new bare repository using ssh does not respect bare repository --initial-branch”
  1. SheikOct 25, 2023
  2. SheikOct 25, 2023

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.