diff options
author | Paulo Gomes <pjbgf@linux.com> | 2023-05-23 09:23:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-23 09:23:27 +0100 |
commit | 1feac1b95958fbce7eabffa671f3fc6aab2a8258 (patch) | |
tree | 69cfb8382a3fac7053e396e151c27027f82600ec /repository.go | |
parent | 90bfbf2c5cb34da7cfa59e09275d34b159aa57f3 (diff) | |
parent | 1aa8e8940336aa80eccdd8dd9b46b0e6547e7127 (diff) | |
download | go-git-1feac1b95958fbce7eabffa671f3fc6aab2a8258.tar.gz |
Merge pull request #764 from techknowlogick/init-options
git: Allow Initial Branch to be configurable
Diffstat (limited to 'repository.go')
-rw-r--r-- | repository.go | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/repository.go b/repository.go index 89c48db..f3540c6 100644 --- a/repository.go +++ b/repository.go @@ -71,14 +71,30 @@ type Repository struct { wt billy.Filesystem } +type InitOptions struct { + // The default branch (e.g. "refs/heads/master") + DefaultBranch plumbing.ReferenceName +} + // Init creates an empty git repository, based on the given Storer and worktree. // The worktree Filesystem is optional, if nil a bare repository is created. If // the given storer is not empty ErrRepositoryAlreadyExists is returned func Init(s storage.Storer, worktree billy.Filesystem) (*Repository, error) { + options := InitOptions{ + DefaultBranch: plumbing.Master, + } + return InitWithOptions(s, worktree, options) +} + +func InitWithOptions(s storage.Storer, worktree billy.Filesystem, options InitOptions) (*Repository, error) { if err := initStorer(s); err != nil { return nil, err } + if options.DefaultBranch == "" { + options.DefaultBranch = plumbing.Master + } + r := newRepository(s, worktree) _, err := r.Reference(plumbing.HEAD, false) switch err { @@ -89,7 +105,7 @@ func Init(s storage.Storer, worktree billy.Filesystem) (*Repository, error) { return nil, err } - h := plumbing.NewSymbolicReference(plumbing.HEAD, plumbing.Master) + h := plumbing.NewSymbolicReference(plumbing.HEAD, options.DefaultBranch) if err := s.SetReference(h); err != nil { return nil, err } |