1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-13 01:30:53 +02:00

add integration tests for cherry picking

This commit is contained in:
Jesse Duffield
2022-09-16 22:15:02 -07:00
parent 9351af3829
commit 74acb3e86a
166 changed files with 351 additions and 404 deletions

View File

@ -53,10 +53,17 @@ func (gui *Gui) modeStatuses() []modeStatus {
{
isActive: gui.State.Modes.CherryPicking.Active,
description: func() string {
copiedCount := len(gui.State.Modes.CherryPicking.CherryPickedCommits)
text := gui.c.Tr.LcCommitsCopied
if copiedCount == 1 {
text = gui.c.Tr.LcCommitCopied
}
return gui.withResetButton(
fmt.Sprintf(
"%d commits copied",
len(gui.State.Modes.CherryPicking.CherryPickedCommits),
"%d %s",
copiedCount,
text,
),
style.FgCyan,
)

View File

@ -507,6 +507,8 @@ type TranslationSet struct {
EmptyOutput string
Patch string
CustomPatch string
LcCommitsCopied string
LcCommitCopied string
Actions Actions
Bisect Bisect
}
@ -1147,6 +1149,8 @@ func EnglishTranslationSet() TranslationSet {
EmptyOutput: "<empty output>",
Patch: "Patch",
CustomPatch: "Custom patch",
LcCommitsCopied: "commits copied",
LcCommitCopied: "commit copied",
Actions: Actions{
// TODO: combine this with the original keybinding descriptions (those are all in lowercase atm)
CheckoutCommit: "Checkout commit",

View File

@ -217,7 +217,7 @@ func (self *Assert) matchString(matcher *matcher, context string, getValue func(
}
func (self *Assert) assertWithRetries(test func() (bool, string)) {
waitTimes := []int{0, 1, 5, 10, 200, 500, 1000, 2000}
waitTimes := []int{0, 1, 5, 10, 200, 500, 1000, 2000, 4000}
var message string
for _, waitTime := range waitTimes {

View File

@ -76,6 +76,11 @@ func (self *Input) Confirm() {
self.pressKey(self.keys.Universal.Confirm)
}
// i.e. same as Confirm
func (self *Input) Enter() {
self.pressKey(self.keys.Universal.Confirm)
}
// i.e. pressing escape
func (self *Input) Cancel() {
self.pressKey(self.keys.Universal.Return)

View File

@ -3,59 +3,16 @@ package branch
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
"github.com/jesseduffield/lazygit/pkg/integration/tests/shared"
)
var originalFileContent = `
This
Is
The
Original
File
`
var firstChangeFileContent = `
This
Is
The
First Change
File
`
var secondChangeFileContent = `
This
Is
The
Second Change
File
`
// prepares us for a rebase that has conflicts
var commonRebaseSetup = func(shell *Shell) {
shell.
NewBranch("original-branch").
EmptyCommit("one").
EmptyCommit("two").
EmptyCommit("three").
CreateFileAndAdd("file", originalFileContent).
Commit("original").
NewBranch("first-change-branch").
UpdateFileAndAdd("file", firstChangeFileContent).
Commit("first change").
Checkout("original-branch").
NewBranch("second-change-branch").
UpdateFileAndAdd("file", secondChangeFileContent).
Commit("second change").
EmptyCommit("second-change-branch unrelated change").
Checkout("first-change-branch")
}
var Rebase = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Rebase onto another branch, deal with the conflicts.",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
commonRebaseSetup(shell)
shared.MergeConflictsSetup(shell)
},
Run: func(shell *Shell, input *Input, assert *Assert, keys config.KeybindingConfig) {
input.SwitchToBranchesWindow()

View File

@ -3,6 +3,7 @@ package branch
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
"github.com/jesseduffield/lazygit/pkg/integration/tests/shared"
)
var RebaseAndDrop = NewIntegrationTest(NewIntegrationTestArgs{
@ -11,7 +12,7 @@ var RebaseAndDrop = NewIntegrationTest(NewIntegrationTestArgs{
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
commonRebaseSetup(shell)
shared.MergeConflictsSetup(shell)
// addin a couple additional commits so that we can drop one
shell.EmptyCommit("to remove")
shell.EmptyCommit("to keep")

View File

@ -0,0 +1,66 @@
package cherry_pick
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var CherryPick = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Cherry pick commits from the subcommits view, without conflicts",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.
EmptyCommit("base").
NewBranch("first-branch").
NewBranch("second-branch").
Checkout("first-branch").
EmptyCommit("one").
EmptyCommit("two").
Checkout("second-branch").
EmptyCommit("three").
EmptyCommit("four").
Checkout("first-branch")
},
Run: func(shell *Shell, input *Input, assert *Assert, keys config.KeybindingConfig) {
input.SwitchToBranchesWindow()
assert.CurrentViewName("localBranches")
assert.MatchSelectedLine(Contains("first-branch"))
input.NextItem()
assert.MatchSelectedLine(Contains("second-branch"))
input.Enter()
assert.CurrentViewName("subCommits")
assert.MatchSelectedLine(Contains("four"))
input.PressKeys(keys.Commits.CherryPickCopy)
assert.MatchViewContent("information", Contains("1 commit copied"))
input.NextItem()
assert.MatchSelectedLine(Contains("three"))
input.PressKeys(keys.Commits.CherryPickCopy)
assert.MatchViewContent("information", Contains("2 commits copied"))
input.SwitchToCommitsWindow()
assert.CurrentViewName("commits")
assert.MatchSelectedLine(Contains("two"))
input.PressKeys(keys.Commits.PasteCommits)
assert.InAlert()
assert.MatchCurrentViewContent(Contains("Are you sure you want to cherry-pick the copied commits onto this branch?"))
input.Confirm()
assert.CurrentViewName("commits")
assert.MatchSelectedLine(Contains("four"))
input.NextItem()
assert.MatchSelectedLine(Contains("three"))
input.NextItem()
assert.MatchSelectedLine(Contains("two"))
assert.MatchViewContent("information", Contains("2 commits copied"))
input.PressKeys(keys.Universal.Return)
assert.MatchViewContent("information", NotContains("commits copied"))
},
})

View File

@ -0,0 +1,87 @@
package cherry_pick
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
"github.com/jesseduffield/lazygit/pkg/integration/tests/shared"
)
var CherryPickConflicts = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Cherry pick commits from the subcommits view, with conflicts",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shared.MergeConflictsSetup(shell)
},
Run: func(shell *Shell, input *Input, assert *Assert, keys config.KeybindingConfig) {
input.SwitchToBranchesWindow()
assert.CurrentViewName("localBranches")
assert.MatchSelectedLine(Contains("first-change-branch"))
input.NextItem()
assert.MatchSelectedLine(Contains("second-change-branch"))
input.Enter()
assert.CurrentViewName("subCommits")
assert.MatchSelectedLine(Contains("second-change-branch unrelated change"))
input.PressKeys(keys.Commits.CherryPickCopy)
assert.MatchViewContent("information", Contains("1 commit copied"))
input.NextItem()
assert.MatchSelectedLine(Contains("second change"))
input.PressKeys(keys.Commits.CherryPickCopy)
assert.MatchViewContent("information", Contains("2 commits copied"))
input.SwitchToCommitsWindow()
assert.CurrentViewName("commits")
assert.MatchSelectedLine(Contains("first change"))
input.PressKeys(keys.Commits.PasteCommits)
assert.InAlert()
assert.MatchCurrentViewContent(Contains("Are you sure you want to cherry-pick the copied commits onto this branch?"))
input.Confirm()
assert.MatchCurrentViewContent(Contains("Conflicts!"))
input.Confirm()
assert.CurrentViewName("files")
assert.MatchSelectedLine(Contains("file"))
// not using Confirm() convenience method because I suspect we might change this
// keybinding to something more bespoke
input.PressKeys(keys.Universal.Confirm)
assert.CurrentViewName("mergeConflicts")
// picking 'Second change'
input.NextItem()
input.PrimaryAction()
assert.InConfirm()
assert.MatchCurrentViewContent(Contains("all merge conflicts resolved. Continue?"))
input.Confirm()
assert.CurrentViewName("files")
assert.WorkingTreeFileCount(0)
input.SwitchToCommitsWindow()
assert.CurrentViewName("commits")
assert.MatchSelectedLine(Contains("second-change-branch unrelated change"))
input.NextItem()
assert.MatchSelectedLine(Contains("second change"))
// because we picked 'Second change' when resolving the conflict,
// we now see this commit as having replaced First Change with Second Change,
// as opposed to replacing 'Original' with 'Second change'
assert.MatchMainViewContent(Contains("-First Change"))
assert.MatchMainViewContent(Contains("+Second Change"))
input.NextItem()
assert.MatchSelectedLine(Contains("first change"))
assert.MatchViewContent("information", Contains("2 commits copied"))
input.PressKeys(keys.Universal.Return)
assert.MatchViewContent("information", NotContains("commits copied"))
},
})

View File

@ -0,0 +1 @@
This package contains shared helper functions for tests. It is not intended to contain any actual tests itself.

View File

@ -0,0 +1,49 @@
package shared
import (
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var OriginalFileContent = `
This
Is
The
Original
File
`
var FirstChangeFileContent = `
This
Is
The
First Change
File
`
var SecondChangeFileContent = `
This
Is
The
Second Change
File
`
// prepares us for a rebase/merge that has conflicts
var MergeConflictsSetup = func(shell *Shell) {
shell.
NewBranch("original-branch").
EmptyCommit("one").
EmptyCommit("two").
EmptyCommit("three").
CreateFileAndAdd("file", OriginalFileContent).
Commit("original").
NewBranch("first-change-branch").
UpdateFileAndAdd("file", FirstChangeFileContent).
Commit("first change").
Checkout("original-branch").
NewBranch("second-change-branch").
UpdateFileAndAdd("file", SecondChangeFileContent).
Commit("second change").
EmptyCommit("second-change-branch unrelated change").
Checkout("first-change-branch")
}

View File

@ -11,6 +11,7 @@ import (
"github.com/jesseduffield/lazygit/pkg/integration/components"
"github.com/jesseduffield/lazygit/pkg/integration/tests/bisect"
"github.com/jesseduffield/lazygit/pkg/integration/tests/branch"
"github.com/jesseduffield/lazygit/pkg/integration/tests/cherry_pick"
"github.com/jesseduffield/lazygit/pkg/integration/tests/commit"
"github.com/jesseduffield/lazygit/pkg/integration/tests/custom_commands"
"github.com/jesseduffield/lazygit/pkg/integration/tests/interactive_rebase"
@ -33,6 +34,8 @@ var tests = []*components.IntegrationTest{
custom_commands.MenuFromCommand,
bisect.Basic,
bisect.FromOtherBranch,
cherry_pick.CherryPick,
cherry_pick.CherryPickConflicts,
}
func GetTests() []*components.IntegrationTest {
@ -55,6 +58,11 @@ func GetTests() []*components.IntegrationTest {
return nil
}
// the shared directory won't itself contain tests: only shared helper functions
if filepath.Base(filepath.Dir(path)) == "shared" {
return nil
}
nameFromPath := components.TestNameFromFilePath(path)
if !testNamesSet.Includes(nameFromPath) {
missingTestNames = append(missingTestNames, nameFromPath)

View File

@ -1,15 +0,0 @@
fourth commit on develop
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# interactive rebase in progress; onto 696a8fd
# Last commands done (2 commands done):
# pick 234e2fa third commit on develop
# pick 0556e5d fourth commit on develop
# No commands remaining.
# You are currently rebasing branch 'other_branch' on '696a8fd'.
#
# Changes to be committed:
# modified: file5
#

View File

@ -1 +0,0 @@
ref: refs/heads/other_branch

View File

@ -1 +0,0 @@
696a8fd43c580b3bed203977faab4566b052a4e4

View File

@ -1 +0,0 @@
0556e5da1cda4e150d6cc1182be6efdb061f59fe

View File

@ -1,40 +0,0 @@
0000000000000000000000000000000000000000 2cf63d6da8c52131dd79622f8572b44a1267e420 CI <CI@example.com> 1617673072 +1000 commit (initial): first commit
2cf63d6da8c52131dd79622f8572b44a1267e420 2cf63d6da8c52131dd79622f8572b44a1267e420 CI <CI@example.com> 1617673072 +1000 checkout: moving from master to feature/cherry-picking
2cf63d6da8c52131dd79622f8572b44a1267e420 e4aa98b835d0a871d9ea02e6d286f0fbb2204cdc CI <CI@example.com> 1617673072 +1000 commit: first commit freshman year
e4aa98b835d0a871d9ea02e6d286f0fbb2204cdc ef029771f117b5f31c972dfa546037662e243ca7 CI <CI@example.com> 1617673072 +1000 commit: second commit subway eat fresh
ef029771f117b5f31c972dfa546037662e243ca7 2493c87610e0a9b8edfca592cb01a027f60ce587 CI <CI@example.com> 1617673072 +1000 commit: third commit fresh
2493c87610e0a9b8edfca592cb01a027f60ce587 d8e5ca46d2bbd7c115e5849e637efe2361203368 CI <CI@example.com> 1617673072 +1000 commit: fourth commit cool
d8e5ca46d2bbd7c115e5849e637efe2361203368 78a5ec82970200538b70f5ac61c18acb45ccb8ee CI <CI@example.com> 1617673072 +1000 commit: fifth commit nice
78a5ec82970200538b70f5ac61c18acb45ccb8ee 19079c78db18112c5a2720896a040014a2d05f6d CI <CI@example.com> 1617673072 +1000 commit: sixth commit haha
19079c78db18112c5a2720896a040014a2d05f6d 4520f99d650662a3f597a200fea5f2599f528180 CI <CI@example.com> 1617673072 +1000 commit: seventh commit yeah
4520f99d650662a3f597a200fea5f2599f528180 9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 CI <CI@example.com> 1617673072 +1000 commit: eighth commit woo
9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 CI <CI@example.com> 1617673072 +1000 checkout: moving from feature/cherry-picking to develop
9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 7923e4a952f4b169373b0389be6a9db3cd929547 CI <CI@example.com> 1617673072 +1000 commit: first commit on develop
7923e4a952f4b169373b0389be6a9db3cd929547 2cf63d6da8c52131dd79622f8572b44a1267e420 CI <CI@example.com> 1617673072 +1000 checkout: moving from develop to master
2cf63d6da8c52131dd79622f8572b44a1267e420 bfcc5725cd2ef871ff804996f4e02beef3e4dec2 CI <CI@example.com> 1617673072 +1000 commit: first commit on master
bfcc5725cd2ef871ff804996f4e02beef3e4dec2 7923e4a952f4b169373b0389be6a9db3cd929547 CI <CI@example.com> 1617673072 +1000 checkout: moving from master to develop
7923e4a952f4b169373b0389be6a9db3cd929547 7317cf7580efd92f974c8dfb3cde84eded8dafec CI <CI@example.com> 1617673072 +1000 commit: second commit on develop
7317cf7580efd92f974c8dfb3cde84eded8dafec bfcc5725cd2ef871ff804996f4e02beef3e4dec2 CI <CI@example.com> 1617673072 +1000 checkout: moving from develop to master
bfcc5725cd2ef871ff804996f4e02beef3e4dec2 f4ffac820a371104fe611d81bc13a45b70a3ebb3 CI <CI@example.com> 1617673072 +1000 commit: second commit on master
f4ffac820a371104fe611d81bc13a45b70a3ebb3 7317cf7580efd92f974c8dfb3cde84eded8dafec CI <CI@example.com> 1617673072 +1000 checkout: moving from master to develop
7317cf7580efd92f974c8dfb3cde84eded8dafec 234e2fa9a01b8d7e849b0c2a1bbd550e788ea18d CI <CI@example.com> 1617673072 +1000 commit: third commit on develop
234e2fa9a01b8d7e849b0c2a1bbd550e788ea18d f4ffac820a371104fe611d81bc13a45b70a3ebb3 CI <CI@example.com> 1617673072 +1000 checkout: moving from develop to master
f4ffac820a371104fe611d81bc13a45b70a3ebb3 facb56c48e4718f71c08116153c93d87bc699671 CI <CI@example.com> 1617673072 +1000 commit: third commit on master
facb56c48e4718f71c08116153c93d87bc699671 234e2fa9a01b8d7e849b0c2a1bbd550e788ea18d CI <CI@example.com> 1617673072 +1000 checkout: moving from master to develop
234e2fa9a01b8d7e849b0c2a1bbd550e788ea18d 0556e5da1cda4e150d6cc1182be6efdb061f59fe CI <CI@example.com> 1617673072 +1000 commit: fourth commit on develop
0556e5da1cda4e150d6cc1182be6efdb061f59fe facb56c48e4718f71c08116153c93d87bc699671 CI <CI@example.com> 1617673072 +1000 checkout: moving from develop to master
facb56c48e4718f71c08116153c93d87bc699671 339e2d062760be9ecdb4bb90f97bdb0e634e7831 CI <CI@example.com> 1617673072 +1000 commit: fourth commit on master
339e2d062760be9ecdb4bb90f97bdb0e634e7831 339e2d062760be9ecdb4bb90f97bdb0e634e7831 CI <CI@example.com> 1617673072 +1000 checkout: moving from master to base_branch
339e2d062760be9ecdb4bb90f97bdb0e634e7831 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673072 +1000 commit: file
5d2484f3cb6ce658e296526c48e1a376b2790dfc 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673072 +1000 checkout: moving from base_branch to other_branch
5d2484f3cb6ce658e296526c48e1a376b2790dfc 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673072 +1000 checkout: moving from other_branch to base_branch
5d2484f3cb6ce658e296526c48e1a376b2790dfc 68728b56ed31d03ca94496b9e2a45c62ba0f4e8f CI <CI@example.com> 1617673072 +1000 commit: file changed
68728b56ed31d03ca94496b9e2a45c62ba0f4e8f 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673072 +1000 checkout: moving from base_branch to other_branch
5d2484f3cb6ce658e296526c48e1a376b2790dfc 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673078 +1000 rebase -i (start): checkout HEAD
5d2484f3cb6ce658e296526c48e1a376b2790dfc 65c0438e428cd1aa94588eaa52eb7ebad7ec62fd CI <CI@example.com> 1617673078 +1000 rebase -i (pick): second commit subway eat fresh
65c0438e428cd1aa94588eaa52eb7ebad7ec62fd 16f2bcca6ce7bcc17277103a5555072a6c3322a2 CI <CI@example.com> 1617673078 +1000 rebase -i (pick): third commit fresh
16f2bcca6ce7bcc17277103a5555072a6c3322a2 696a8fd43c580b3bed203977faab4566b052a4e4 CI <CI@example.com> 1617673078 +1000 rebase -i (pick): fourth commit cool
696a8fd43c580b3bed203977faab4566b052a4e4 696a8fd43c580b3bed203977faab4566b052a4e4 CI <CI@example.com> 1617673078 +1000 rebase -i (finish): returning to refs/heads/other_branch
696a8fd43c580b3bed203977faab4566b052a4e4 696a8fd43c580b3bed203977faab4566b052a4e4 CI <CI@example.com> 1617673084 +1000 rebase -i (start): checkout HEAD
696a8fd43c580b3bed203977faab4566b052a4e4 b8ab98a9ab0599193a3f41a9cc5cb988283e6722 CI <CI@example.com> 1617673088 +1000 rebase -i (continue): fourth commit on develop
b8ab98a9ab0599193a3f41a9cc5cb988283e6722 b8ab98a9ab0599193a3f41a9cc5cb988283e6722 CI <CI@example.com> 1617673088 +1000 rebase -i (finish): returning to refs/heads/other_branch

View File

@ -1,3 +0,0 @@
0000000000000000000000000000000000000000 339e2d062760be9ecdb4bb90f97bdb0e634e7831 CI <CI@example.com> 1617673072 +1000 branch: Created from HEAD
339e2d062760be9ecdb4bb90f97bdb0e634e7831 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673072 +1000 commit: file
5d2484f3cb6ce658e296526c48e1a376b2790dfc 68728b56ed31d03ca94496b9e2a45c62ba0f4e8f CI <CI@example.com> 1617673072 +1000 commit: file changed

View File

@ -1,5 +0,0 @@
0000000000000000000000000000000000000000 9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 CI <CI@example.com> 1617673072 +1000 branch: Created from HEAD
9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 7923e4a952f4b169373b0389be6a9db3cd929547 CI <CI@example.com> 1617673072 +1000 commit: first commit on develop
7923e4a952f4b169373b0389be6a9db3cd929547 7317cf7580efd92f974c8dfb3cde84eded8dafec CI <CI@example.com> 1617673072 +1000 commit: second commit on develop
7317cf7580efd92f974c8dfb3cde84eded8dafec 234e2fa9a01b8d7e849b0c2a1bbd550e788ea18d CI <CI@example.com> 1617673072 +1000 commit: third commit on develop
234e2fa9a01b8d7e849b0c2a1bbd550e788ea18d 0556e5da1cda4e150d6cc1182be6efdb061f59fe CI <CI@example.com> 1617673072 +1000 commit: fourth commit on develop

View File

@ -1,9 +0,0 @@
0000000000000000000000000000000000000000 2cf63d6da8c52131dd79622f8572b44a1267e420 CI <CI@example.com> 1617673072 +1000 branch: Created from HEAD
2cf63d6da8c52131dd79622f8572b44a1267e420 e4aa98b835d0a871d9ea02e6d286f0fbb2204cdc CI <CI@example.com> 1617673072 +1000 commit: first commit freshman year
e4aa98b835d0a871d9ea02e6d286f0fbb2204cdc ef029771f117b5f31c972dfa546037662e243ca7 CI <CI@example.com> 1617673072 +1000 commit: second commit subway eat fresh
ef029771f117b5f31c972dfa546037662e243ca7 2493c87610e0a9b8edfca592cb01a027f60ce587 CI <CI@example.com> 1617673072 +1000 commit: third commit fresh
2493c87610e0a9b8edfca592cb01a027f60ce587 d8e5ca46d2bbd7c115e5849e637efe2361203368 CI <CI@example.com> 1617673072 +1000 commit: fourth commit cool
d8e5ca46d2bbd7c115e5849e637efe2361203368 78a5ec82970200538b70f5ac61c18acb45ccb8ee CI <CI@example.com> 1617673072 +1000 commit: fifth commit nice
78a5ec82970200538b70f5ac61c18acb45ccb8ee 19079c78db18112c5a2720896a040014a2d05f6d CI <CI@example.com> 1617673072 +1000 commit: sixth commit haha
19079c78db18112c5a2720896a040014a2d05f6d 4520f99d650662a3f597a200fea5f2599f528180 CI <CI@example.com> 1617673072 +1000 commit: seventh commit yeah
4520f99d650662a3f597a200fea5f2599f528180 9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048 CI <CI@example.com> 1617673072 +1000 commit: eighth commit woo

View File

@ -1,5 +0,0 @@
0000000000000000000000000000000000000000 2cf63d6da8c52131dd79622f8572b44a1267e420 CI <CI@example.com> 1617673072 +1000 commit (initial): first commit
2cf63d6da8c52131dd79622f8572b44a1267e420 bfcc5725cd2ef871ff804996f4e02beef3e4dec2 CI <CI@example.com> 1617673072 +1000 commit: first commit on master
bfcc5725cd2ef871ff804996f4e02beef3e4dec2 f4ffac820a371104fe611d81bc13a45b70a3ebb3 CI <CI@example.com> 1617673072 +1000 commit: second commit on master
f4ffac820a371104fe611d81bc13a45b70a3ebb3 facb56c48e4718f71c08116153c93d87bc699671 CI <CI@example.com> 1617673072 +1000 commit: third commit on master
facb56c48e4718f71c08116153c93d87bc699671 339e2d062760be9ecdb4bb90f97bdb0e634e7831 CI <CI@example.com> 1617673072 +1000 commit: fourth commit on master

View File

@ -1,3 +0,0 @@
0000000000000000000000000000000000000000 5d2484f3cb6ce658e296526c48e1a376b2790dfc CI <CI@example.com> 1617673072 +1000 branch: Created from HEAD
5d2484f3cb6ce658e296526c48e1a376b2790dfc 696a8fd43c580b3bed203977faab4566b052a4e4 CI <CI@example.com> 1617673078 +1000 rebase -i (finish): refs/heads/other_branch onto 5d2484f3cb6ce658e296526c48e1a376b2790dfc
696a8fd43c580b3bed203977faab4566b052a4e4 b8ab98a9ab0599193a3f41a9cc5cb988283e6722 CI <CI@example.com> 1617673088 +1000 rebase -i (finish): refs/heads/other_branch onto 696a8fd43c580b3bed203977faab4566b052a4e4

View File

@ -1,4 +0,0 @@
x���
�0�a�y�� �L��]�1&Ʉ
Ɩ��7�{������ZoP�Cò
}�Ig.�g�Hڇ`,9�ɛ�X��?:X���=O�eE&�=��8Rv�젂^}�� ����o���Oi�PV9��tG%�c�:���/}�� _��s��?�

View File

@ -1,2 +0,0 @@
x��A
�0E��)f_(3&:J)��13AA�HZz�z�n��_�۶h/�T�z�@(�)��y"����`'�,z��>�#��`K�=j�T��^�d�h�TTz I� �2������O؎Uo1o����/����TZ���97e^N��yѷ��0_- Ax

View File

@ -1,3 +0,0 @@
x��K
�0@]��d2����#�L�`m�<�/���<Y��ށ0zS�rN,���)S��A����F����s�fKM��"
̶Z�9Tge`*5�q�s�N�����`��2N7��e{�I��

View File

@ -1,2 +0,0 @@
x��M
� ���=�� �ɏ�PJ!�CǑj

View File

@ -1 +0,0 @@
x}�� �0=��� ��QA�6�>1`|���o w�� ��� j����yF��JH7_0���A�𚐇�} ��U�)�}����FJ�{�oX�9�o6z��[|G�,�

View File

@ -1,3 +0,0 @@
x��K
�0@]��df��@D��cL�)�-5��ނp�x^�k�6`t���BA��gv�lk�i��)H�$��ؙEV�7��>fJ�@��
{��`�H�pA;�b�٦y����rַ�妇<��#�|��aO�h6�M5�S7}m/�:��L� QR>8

View File

@ -1 +0,0 @@
x��� �0C�v�L��\�j�V�W��=�������M<�i�f.���PU�M�HT��3T�`Q���9�"�^��h�d[������i+B��;�~�/ Y:/��<P�

View File

@ -1,2 +0,0 @@
x��A
� @Ѯ=��Bщ�(�R�*��ql5 �B�����[|�Z[��1^�!��u�T)rD�m*�kL��yap@LE@�鐵k_�W�Ȃ>D�����4f�hJe�>}�=N�>NO������[{h���C�����zNu�����E��֗�Y{<�

View File

@ -1,2 +0,0 @@
x��K
�0@]��d�I���#�LQ0M�Q<�/�����j�w0Z�&3�.��`v�Ț�Y�r���D�^�i�����Ħ8��f�"y�H!fq)r�����z�^��6'8��U>��9�V/����zG��j��T�?u����_m��<ڪ�/:@�

View File

@ -1,2 +0,0 @@
x��I
�@]�)�^��C~w@D�*���5 ��Ђ�7��UPy[���awi@V�����C\8{]PSL���)1d��k���褘���Zw��;;�Qa�h��JP�ݦ��a��0>�����-o˃�h/޲7t�̬NzN5���:�6ѯ�u�P_�?>c

View File

@ -1,3 +0,0 @@
x��K
�0@]��d�L���#�N��6%F������{����ܠ�xjU:�ّw�^�1Ȝ� {#��~�M�4��c��AH��\��^|t�G+ls���ɫ�j�Ra�:�w��u_��e����Yg�upֈ�zL5�SWy���
���e)���f@f

View File

@ -1,2 +0,0 @@
x��M
�0�a�9��I&?����U���,S�߀p��>��Z��e8�� 6k66�Ÿf����OFs���N�{l�0e�W�F�,*�֕�C��.�D��ؠ����4�u����e�%�r�9Ғ�JJ)�:Nu�3ykG����������>�

View File

@ -1,2 +0,0 @@
x��A
� D��� �k�B)��r�QH!�!��+�]

View File

@ -1 +0,0 @@
x��� �0C����?�3�ƵV�=iO��=�������,�8tW��@h*��&R$j�*y��ʑs-ܜ��8v)��u㧱��V�H������"��

View File

@ -1,2 +0,0 @@
x��A
1=�s$��daO���I�J���w�x-��ҥ�k'v~�@ Udw�"����=�U�8H�C%�� �_O\���˰O<� �cB`k��/K�q��8�����a�K=��.��mb�:k�Y����ܔk{v�YT��*w�@��{/B�

View File

@ -1,2 +0,0 @@
x}�K
� ��Ʈ��@��QAA��q� �bZ�Op�7<�p֋WT�*� �4���F��-���&Ox�;

View File

@ -1,2 +0,0 @@
x��A
�0E]��d�I�D��z�I:�cJ���

View File

@ -1 +0,0 @@
68728b56ed31d03ca94496b9e2a45c62ba0f4e8f

View File

@ -1 +0,0 @@
0556e5da1cda4e150d6cc1182be6efdb061f59fe

View File

@ -1 +0,0 @@
9bb8cd97914c8e8a7b8a6ec6f94bca0b09fa0048

View File

@ -1 +0,0 @@
339e2d062760be9ecdb4bb90f97bdb0e634e7831

View File

@ -1 +0,0 @@
b8ab98a9ab0599193a3f41a9cc5cb988283e6722

View File

@ -1 +0,0 @@
this is file number 3 that I'm going to cherry-pick

View File

@ -1 +0,0 @@
this is file number 4 that I'm going to cherry-pick

View File

@ -1 +0,0 @@
this is file number 5 that I'm going to cherry-pick

Some files were not shown because too many files have changed in this diff Show More