diff --git a/pkg/gui/controllers/branches_controller.go b/pkg/gui/controllers/branches_controller.go index 6b86dfcd353..b049a0a0bc7 100644 --- a/pkg/gui/controllers/branches_controller.go +++ b/pkg/gui/controllers/branches_controller.go @@ -341,7 +341,7 @@ func (self *BranchesController) fastForward(branch *models.Branch) error { err := self.git.Sync.Pull( git_commands.PullOptions{ RemoteName: branch.UpstreamRemote, - BranchName: branch.Name, + BranchName: branch.UpstreamBranch, FastForwardOnly: true, }, ) diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/HEAD b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/HEAD new file mode 100644 index 00000000000..cb089cd89a7 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/config b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/config new file mode 100644 index 00000000000..ccf112f58f3 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/config @@ -0,0 +1,6 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true +[remote "origin"] + url = /home/mark/Downloads/gits/lazygit/test/integration/fetchRemoteBranchWithNonmatchingName/actual/./repo diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/description b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/description new file mode 100644 index 00000000000..498b267a8c7 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/info/exclude b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/info/exclude new file mode 100644 index 00000000000..a5196d1be8f --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 new file mode 100644 index 00000000000..7f2ebf4eeb6 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/12/d38e54cd419303587ba4613fb1194ec5c9d04f b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/12/d38e54cd419303587ba4613fb1194ec5c9d04f new file mode 100644 index 00000000000..f43085f4d25 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/12/d38e54cd419303587ba4613fb1194ec5c9d04f differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 new file mode 100644 index 00000000000..f74bf2335bb Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce new file mode 100644 index 00000000000..0a734f98100 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/2f/6174050380438f14b16658a356e762435ca591 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/2f/6174050380438f14b16658a356e762435ca591 new file mode 100644 index 00000000000..31ae3f5ba89 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/2f/6174050380438f14b16658a356e762435ca591 differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/3e/5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/3e/5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 new file mode 100644 index 00000000000..0b97b6ff4d1 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/origin/objects/3e/5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 @@ -0,0 +1,3 @@ +xA +0@Q9I +"BW=FL!R"~r*Jd ¬DjE 1654108479 +0200 commit (initial): myfile1 +3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 12d38e54cd419303587ba4613fb1194ec5c9d04f CI 1654108479 +0200 commit: myfile2 +12d38e54cd419303587ba4613fb1194ec5c9d04f 72ee6cc86de71389b9c70e24c7d8c8837e7d3566 CI 1654108479 +0200 commit: myfile3 +72ee6cc86de71389b9c70e24c7d8c8837e7d3566 b090d7f0029e74de260f7458721b8edd1e618edc CI 1654108479 +0200 commit: myfile4 +b090d7f0029e74de260f7458721b8edd1e618edc 12d38e54cd419303587ba4613fb1194ec5c9d04f CI 1654108479 +0200 reset: moving to HEAD~2 +12d38e54cd419303587ba4613fb1194ec5c9d04f 0000000000000000000000000000000000000000 CI 1654108482 +0200 Branch: renamed refs/heads/master to refs/heads/master-local +0000000000000000000000000000000000000000 12d38e54cd419303587ba4613fb1194ec5c9d04f CI 1654108482 +0200 Branch: renamed refs/heads/master to refs/heads/master-local +12d38e54cd419303587ba4613fb1194ec5c9d04f b090d7f0029e74de260f7458721b8edd1e618edc CI 1654108482 +0200 pull --no-edit --ff-only origin master: Fast-forward diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/logs/refs/heads/master-local b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/logs/refs/heads/master-local new file mode 100644 index 00000000000..b930bd5b6e1 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/logs/refs/heads/master-local @@ -0,0 +1,7 @@ +0000000000000000000000000000000000000000 3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 CI 1654108479 +0200 commit (initial): myfile1 +3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 12d38e54cd419303587ba4613fb1194ec5c9d04f CI 1654108479 +0200 commit: myfile2 +12d38e54cd419303587ba4613fb1194ec5c9d04f 72ee6cc86de71389b9c70e24c7d8c8837e7d3566 CI 1654108479 +0200 commit: myfile3 +72ee6cc86de71389b9c70e24c7d8c8837e7d3566 b090d7f0029e74de260f7458721b8edd1e618edc CI 1654108479 +0200 commit: myfile4 +b090d7f0029e74de260f7458721b8edd1e618edc 12d38e54cd419303587ba4613fb1194ec5c9d04f CI 1654108479 +0200 reset: moving to HEAD~2 +12d38e54cd419303587ba4613fb1194ec5c9d04f 12d38e54cd419303587ba4613fb1194ec5c9d04f CI 1654108482 +0200 Branch: renamed refs/heads/master to refs/heads/master-local +12d38e54cd419303587ba4613fb1194ec5c9d04f b090d7f0029e74de260f7458721b8edd1e618edc CI 1654108482 +0200 pull --no-edit --ff-only origin master: Fast-forward diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/logs/refs/remotes/origin/master b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/logs/refs/remotes/origin/master new file mode 100644 index 00000000000..3cb40d7d37b --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/logs/refs/remotes/origin/master @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 b090d7f0029e74de260f7458721b8edd1e618edc CI 1654108479 +0200 fetch origin: storing head diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 new file mode 100644 index 00000000000..7f2ebf4eeb6 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/12/d38e54cd419303587ba4613fb1194ec5c9d04f b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/12/d38e54cd419303587ba4613fb1194ec5c9d04f new file mode 100644 index 00000000000..f43085f4d25 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/12/d38e54cd419303587ba4613fb1194ec5c9d04f differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 new file mode 100644 index 00000000000..f74bf2335bb Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/18/0cf8328022becee9aaa2577a8f84ea2b9f3827 differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce new file mode 100644 index 00000000000..0a734f98100 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/2b/173c861df433fa43ffad13f80c8b312c5c8bce differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/2f/6174050380438f14b16658a356e762435ca591 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/2f/6174050380438f14b16658a356e762435ca591 new file mode 100644 index 00000000000..31ae3f5ba89 Binary files /dev/null and b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/2f/6174050380438f14b16658a356e762435ca591 differ diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/3e/5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/3e/5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 new file mode 100644 index 00000000000..0b97b6ff4d1 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/expected/repo/.git_keep/objects/3e/5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 @@ -0,0 +1,3 @@ +xA +0@Q9I +"BW=FL!R"~r*Jd ¬DjE myfile1 +git add . +git commit -am "myfile1" +echo test2 > myfile2 +git add . +git commit -am "myfile2" +echo test3 > myfile3 +git add . +git commit -am "myfile3" +echo test4 > myfile4 +git add . +git commit -am "myfile4" + +cd .. +git clone --bare ./repo origin + +cd repo + +git reset --hard HEAD~2 +git remote add origin ../origin +git fetch origin +git branch --set-upstream-to=origin/master + diff --git a/test/integration/fetchRemoteBranchWithNonmatchingName/test.json b/test/integration/fetchRemoteBranchWithNonmatchingName/test.json new file mode 100644 index 00000000000..dffe129cd97 --- /dev/null +++ b/test/integration/fetchRemoteBranchWithNonmatchingName/test.json @@ -0,0 +1 @@ +{ "description": "allow unsetting the upstream of the current branch", "speed": 10 }