On Wed, Jun 10, 2020 at 11:30:31PM +0200, Johannes Schindelin wrote: > Hi all, > > On Tue, 5 May 2020, brian m. carlson wrote: > > > On 2020-05-04 at 17:20:33, Simon Pieters wrote: ... > > Clearly we have compatibility concerns to consider though, so if we > > decided to make a change, we'd probably want to make it in a 3.0, which > > as far as I'm aware hasn't been discussed yet. I also wondered what > > such a change would involve, so I did some research. > > > > It appears that if we made the obvious one-line change to > > builtin/init-db.c, we'd have 304 tests that fail, which is about a third > > of our test suite. I haven't examined any of these tests, so I don't > > know what would be involved in changing them. I imagine a project to do > > so would involve setting an environment variable in the test setup code > > (e.g., MAIN_BRANCH) and replacing instances of "master" with that until > > everything works with an alternate value of that variable. Picking the > > new name itself could be deferred until later, and we could choose from > > some popular alternatives. > > As mentioned elsewhere in this thread, Don (Cc:ed) and I started working > on this, and I just submitted it: > https://lore.kernel.org/git/pull.656.git.1591823971.gitgitgadget@xxxxxxxxx/ > That patch series adds a config variable allowing to override the default > name of the default branch. > > I hope to see this finalized and sent off to the Git mailing list > relatively soon: being strictly opt-in, it should be really > uncontroversial and obviously helpful. Indeed, the flexibility to choose the name of the default branch can be helpful for projects with specific naming, especially non-english speaking projects. To that end I would suggest adding -b argument to git init to be able to choose the default branch name per project. This should select the initial branch name and also write the it as the default branch name in the repo configuration (if git continues to treat the default branch specially). This can be used in documentation to use the new name immediately without breaking existing workflows that rely on the 'master' branch. The default branch name will not be preserved across clones but today projects that choose different default branch name don't get the default branch special treatment in anyway clones so I don't see that as a regression. Thanks Michal