mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-28 16:02:01 +03:00
Add --all to "git fetch" command when not fetching a specific remote
This commit is contained in:
@ -94,6 +94,7 @@ git:
|
|||||||
mainBranches: [master, main]
|
mainBranches: [master, main]
|
||||||
autoFetch: true
|
autoFetch: true
|
||||||
autoRefresh: true
|
autoRefresh: true
|
||||||
|
fetchAll: true # Pass --all flag when running git fetch. Set to false to fetch only origin (or the current branch's upstream remote if there is one)
|
||||||
branchLogCmd: 'git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --'
|
branchLogCmd: 'git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --'
|
||||||
allBranchesLogCmd: 'git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium'
|
allBranchesLogCmd: 'git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium'
|
||||||
overrideGpg: false # prevents lazygit from spawning a separate process when using GPG
|
overrideGpg: false # prevents lazygit from spawning a separate process when using GPG
|
||||||
|
@ -54,7 +54,9 @@ type FetchOptions struct {
|
|||||||
|
|
||||||
// Fetch fetch git repo
|
// Fetch fetch git repo
|
||||||
func (self *SyncCommands) FetchCmdObj(opts FetchOptions) oscommands.ICmdObj {
|
func (self *SyncCommands) FetchCmdObj(opts FetchOptions) oscommands.ICmdObj {
|
||||||
cmdArgs := NewGitCmd("fetch").ToArgv()
|
cmdArgs := NewGitCmd("fetch").
|
||||||
|
ArgIf(self.UserConfig.Git.FetchAll, "--all").
|
||||||
|
ToArgv()
|
||||||
|
|
||||||
cmdObj := self.cmd.New(cmdArgs)
|
cmdObj := self.cmd.New(cmdArgs)
|
||||||
if opts.Background {
|
if opts.Background {
|
||||||
|
@ -95,15 +95,17 @@ func TestSyncPush(t *testing.T) {
|
|||||||
|
|
||||||
func TestSyncFetch(t *testing.T) {
|
func TestSyncFetch(t *testing.T) {
|
||||||
type scenario struct {
|
type scenario struct {
|
||||||
testName string
|
testName string
|
||||||
opts FetchOptions
|
opts FetchOptions
|
||||||
test func(oscommands.ICmdObj)
|
fetchAllConfig bool
|
||||||
|
test func(oscommands.ICmdObj)
|
||||||
}
|
}
|
||||||
|
|
||||||
scenarios := []scenario{
|
scenarios := []scenario{
|
||||||
{
|
{
|
||||||
testName: "Fetch in foreground",
|
testName: "Fetch in foreground (all=false)",
|
||||||
opts: FetchOptions{Background: false},
|
opts: FetchOptions{Background: false},
|
||||||
|
fetchAllConfig: false,
|
||||||
test: func(cmdObj oscommands.ICmdObj) {
|
test: func(cmdObj oscommands.ICmdObj) {
|
||||||
assert.True(t, cmdObj.ShouldLog())
|
assert.True(t, cmdObj.ShouldLog())
|
||||||
assert.Equal(t, cmdObj.GetCredentialStrategy(), oscommands.PROMPT)
|
assert.Equal(t, cmdObj.GetCredentialStrategy(), oscommands.PROMPT)
|
||||||
@ -111,20 +113,42 @@ func TestSyncFetch(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
testName: "Fetch in background",
|
testName: "Fetch in foreground (all=true)",
|
||||||
opts: FetchOptions{Background: true},
|
opts: FetchOptions{Background: false},
|
||||||
|
fetchAllConfig: true,
|
||||||
|
test: func(cmdObj oscommands.ICmdObj) {
|
||||||
|
assert.True(t, cmdObj.ShouldLog())
|
||||||
|
assert.Equal(t, cmdObj.GetCredentialStrategy(), oscommands.PROMPT)
|
||||||
|
assert.Equal(t, cmdObj.Args(), []string{"git", "fetch", "--all"})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testName: "Fetch in background (all=false)",
|
||||||
|
opts: FetchOptions{Background: true},
|
||||||
|
fetchAllConfig: false,
|
||||||
test: func(cmdObj oscommands.ICmdObj) {
|
test: func(cmdObj oscommands.ICmdObj) {
|
||||||
assert.False(t, cmdObj.ShouldLog())
|
assert.False(t, cmdObj.ShouldLog())
|
||||||
assert.Equal(t, cmdObj.GetCredentialStrategy(), oscommands.FAIL)
|
assert.Equal(t, cmdObj.GetCredentialStrategy(), oscommands.FAIL)
|
||||||
assert.Equal(t, cmdObj.Args(), []string{"git", "fetch"})
|
assert.Equal(t, cmdObj.Args(), []string{"git", "fetch"})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
testName: "Fetch in background (all=true)",
|
||||||
|
opts: FetchOptions{Background: true},
|
||||||
|
fetchAllConfig: true,
|
||||||
|
test: func(cmdObj oscommands.ICmdObj) {
|
||||||
|
assert.False(t, cmdObj.ShouldLog())
|
||||||
|
assert.Equal(t, cmdObj.GetCredentialStrategy(), oscommands.FAIL)
|
||||||
|
assert.Equal(t, cmdObj.Args(), []string{"git", "fetch", "--all"})
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, s := range scenarios {
|
for _, s := range scenarios {
|
||||||
s := s
|
s := s
|
||||||
t.Run(s.testName, func(t *testing.T) {
|
t.Run(s.testName, func(t *testing.T) {
|
||||||
instance := buildSyncCommands(commonDeps{})
|
instance := buildSyncCommands(commonDeps{})
|
||||||
|
instance.UserConfig.Git.FetchAll = s.fetchAllConfig
|
||||||
s.test(instance.FetchCmdObj(s.opts))
|
s.test(instance.FetchCmdObj(s.opts))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -81,6 +81,7 @@ type GitConfig struct {
|
|||||||
SkipHookPrefix string `yaml:"skipHookPrefix"`
|
SkipHookPrefix string `yaml:"skipHookPrefix"`
|
||||||
AutoFetch bool `yaml:"autoFetch"`
|
AutoFetch bool `yaml:"autoFetch"`
|
||||||
AutoRefresh bool `yaml:"autoRefresh"`
|
AutoRefresh bool `yaml:"autoRefresh"`
|
||||||
|
FetchAll bool `yaml:"fetchAll"`
|
||||||
BranchLogCmd string `yaml:"branchLogCmd"`
|
BranchLogCmd string `yaml:"branchLogCmd"`
|
||||||
AllBranchesLogCmd string `yaml:"allBranchesLogCmd"`
|
AllBranchesLogCmd string `yaml:"allBranchesLogCmd"`
|
||||||
OverrideGpg bool `yaml:"overrideGpg"`
|
OverrideGpg bool `yaml:"overrideGpg"`
|
||||||
@ -453,6 +454,7 @@ func GetDefaultConfig() *UserConfig {
|
|||||||
MainBranches: []string{"master", "main"},
|
MainBranches: []string{"master", "main"},
|
||||||
AutoFetch: true,
|
AutoFetch: true,
|
||||||
AutoRefresh: true,
|
AutoRefresh: true,
|
||||||
|
FetchAll: true,
|
||||||
BranchLogCmd: "git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --",
|
BranchLogCmd: "git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --",
|
||||||
AllBranchesLogCmd: "git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium",
|
AllBranchesLogCmd: "git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty=medium",
|
||||||
DisableForcePushing: false,
|
DisableForcePushing: false,
|
||||||
|
Reference in New Issue
Block a user