From 4f700c23ba1bc43c0d42d223470a8c2a8e2408dc Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Wed, 7 Apr 2021 22:43:19 +1000 Subject: [PATCH] fix crash on first open --- pkg/gui/gui.go | 9 --------- pkg/gui/layout.go | 9 +++++++++ test/integration/initialOpen/config/config.yml | 0 .../initialOpen/expected/.git_keep/COMMIT_EDITMSG | 1 + .../initialOpen/expected/.git_keep/FETCH_HEAD | 0 .../initialOpen/expected/.git_keep/HEAD | 1 + .../initialOpen/expected/.git_keep/config | 10 ++++++++++ .../initialOpen/expected/.git_keep/description | 1 + .../initialOpen/expected/.git_keep/index | Bin 0 -> 209 bytes .../initialOpen/expected/.git_keep/info/exclude | 7 +++++++ .../initialOpen/expected/.git_keep/logs/HEAD | 2 ++ .../expected/.git_keep/logs/refs/heads/master | 2 ++ .../0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 | Bin 0 -> 52 bytes .../46/f86259c48ec60496e43d9c962e32f40e7cdefb | Bin 0 -> 121 bytes .../62/b35f5751dd871e0908247223d276b5efeb4cb4 | Bin 0 -> 57 bytes .../a5/bce3fd2565d8f458555a0c6f42d0504a848bd5 | Bin 0 -> 21 bytes .../e4/776798a2a73374b45e6321b60b5578b9fb590c | 2 ++ .../expected/.git_keep/refs/heads/master | 1 + test/integration/initialOpen/expected/myfile1 | 1 + test/integration/initialOpen/expected/myfile2 | 1 + test/integration/initialOpen/recording.json | 1 + test/integration/initialOpen/setup.sh | 14 ++++++++++++++ test/integration/initialOpen/test.json | 1 + 23 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 test/integration/initialOpen/config/config.yml create mode 100644 test/integration/initialOpen/expected/.git_keep/COMMIT_EDITMSG create mode 100644 test/integration/initialOpen/expected/.git_keep/FETCH_HEAD create mode 100644 test/integration/initialOpen/expected/.git_keep/HEAD create mode 100644 test/integration/initialOpen/expected/.git_keep/config create mode 100644 test/integration/initialOpen/expected/.git_keep/description create mode 100644 test/integration/initialOpen/expected/.git_keep/index create mode 100644 test/integration/initialOpen/expected/.git_keep/info/exclude create mode 100644 test/integration/initialOpen/expected/.git_keep/logs/HEAD create mode 100644 test/integration/initialOpen/expected/.git_keep/logs/refs/heads/master create mode 100644 test/integration/initialOpen/expected/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 create mode 100644 test/integration/initialOpen/expected/.git_keep/objects/46/f86259c48ec60496e43d9c962e32f40e7cdefb create mode 100644 test/integration/initialOpen/expected/.git_keep/objects/62/b35f5751dd871e0908247223d276b5efeb4cb4 create mode 100644 test/integration/initialOpen/expected/.git_keep/objects/a5/bce3fd2565d8f458555a0c6f42d0504a848bd5 create mode 100644 test/integration/initialOpen/expected/.git_keep/objects/e4/776798a2a73374b45e6321b60b5578b9fb590c create mode 100644 test/integration/initialOpen/expected/.git_keep/refs/heads/master create mode 100644 test/integration/initialOpen/expected/myfile1 create mode 100644 test/integration/initialOpen/expected/myfile2 create mode 100644 test/integration/initialOpen/recording.json create mode 100644 test/integration/initialOpen/setup.sh create mode 100644 test/integration/initialOpen/test.json diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index 3da085f2f..5b5a3426d 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -515,15 +515,6 @@ func (gui *Gui) Run() error { return err } - if !gui.Config.GetUserConfig().DisableStartupPopups { - popupTasks := []func(chan struct{}) error{} - storedPopupVersion := gui.Config.GetAppState().StartupPopupVersion - if storedPopupVersion < StartupPopupVersion { - popupTasks = append(popupTasks, gui.showIntroPopupMessage) - } - gui.showInitialPopups(popupTasks) - } - gui.waitForIntro.Add(1) if gui.Config.GetUserConfig().Git.AutoFetch { go utils.Safe(gui.startBackgroundFetch) diff --git a/pkg/gui/layout.go b/pkg/gui/layout.go index 52dbbe10c..c6e272ccd 100644 --- a/pkg/gui/layout.go +++ b/pkg/gui/layout.go @@ -375,6 +375,15 @@ func (gui *Gui) onInitialViewsCreation() error { return err } + if !gui.Config.GetUserConfig().DisableStartupPopups { + popupTasks := []func(chan struct{}) error{} + storedPopupVersion := gui.Config.GetAppState().StartupPopupVersion + if storedPopupVersion < StartupPopupVersion { + popupTasks = append(popupTasks, gui.showIntroPopupMessage) + } + gui.showInitialPopups(popupTasks) + } + if gui.showRecentRepos { if err := gui.handleCreateRecentReposMenu(); err != nil { return err diff --git a/test/integration/initialOpen/config/config.yml b/test/integration/initialOpen/config/config.yml new file mode 100644 index 000000000..e69de29bb diff --git a/test/integration/initialOpen/expected/.git_keep/COMMIT_EDITMSG b/test/integration/initialOpen/expected/.git_keep/COMMIT_EDITMSG new file mode 100644 index 000000000..d72af3146 --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/COMMIT_EDITMSG @@ -0,0 +1 @@ +asd diff --git a/test/integration/initialOpen/expected/.git_keep/FETCH_HEAD b/test/integration/initialOpen/expected/.git_keep/FETCH_HEAD new file mode 100644 index 000000000..e69de29bb diff --git a/test/integration/initialOpen/expected/.git_keep/HEAD b/test/integration/initialOpen/expected/.git_keep/HEAD new file mode 100644 index 000000000..cb089cd89 --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/test/integration/initialOpen/expected/.git_keep/config b/test/integration/initialOpen/expected/.git_keep/config new file mode 100644 index 000000000..8ae104545 --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/config @@ -0,0 +1,10 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + ignorecase = true + precomposeunicode = true +[user] + email = CI@example.com + name = CI diff --git a/test/integration/initialOpen/expected/.git_keep/description b/test/integration/initialOpen/expected/.git_keep/description new file mode 100644 index 000000000..498b267a8 --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/test/integration/initialOpen/expected/.git_keep/index b/test/integration/initialOpen/expected/.git_keep/index new file mode 100644 index 0000000000000000000000000000000000000000..825adac84ff3ddb3a0c9f49002a7219cc6669bb0 GIT binary patch literal 209 zcmZ?q402{*U|<5_gxnPyO_grv!DvPX1{OBMb-4@-jY}997{3D5hyXF$(mjv=s;1uf z5)m53lkapPz^kSEDg%3NWm;xVsv%GTNWWQQIya1ln$tpxIYvNpLV{dffs`bJk%9qN u(&qT^z`N~ooE$1e%9qNvzJKkrCAY4BkpaijHA{uhzHqM&IaVKYb|nCig+`(P literal 0 HcmV?d00001 diff --git a/test/integration/initialOpen/expected/.git_keep/info/exclude b/test/integration/initialOpen/expected/.git_keep/info/exclude new file mode 100644 index 000000000..8e9f2071f --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/info/exclude @@ -0,0 +1,7 @@ +# 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] +# *~ +.DS_Store diff --git a/test/integration/initialOpen/expected/.git_keep/logs/HEAD b/test/integration/initialOpen/expected/.git_keep/logs/HEAD new file mode 100644 index 000000000..9728b11df --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/logs/HEAD @@ -0,0 +1,2 @@ +0000000000000000000000000000000000000000 46f86259c48ec60496e43d9c962e32f40e7cdefb CI 1617799345 +1000 commit (initial): myfile1 +46f86259c48ec60496e43d9c962e32f40e7cdefb e4776798a2a73374b45e6321b60b5578b9fb590c CI 1617799348 +1000 commit: asd diff --git a/test/integration/initialOpen/expected/.git_keep/logs/refs/heads/master b/test/integration/initialOpen/expected/.git_keep/logs/refs/heads/master new file mode 100644 index 000000000..9728b11df --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/logs/refs/heads/master @@ -0,0 +1,2 @@ +0000000000000000000000000000000000000000 46f86259c48ec60496e43d9c962e32f40e7cdefb CI 1617799345 +1000 commit (initial): myfile1 +46f86259c48ec60496e43d9c962e32f40e7cdefb e4776798a2a73374b45e6321b60b5578b9fb590c CI 1617799348 +1000 commit: asd diff --git a/test/integration/initialOpen/expected/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 b/test/integration/initialOpen/expected/.git_keep/objects/0e/6cf0a6b79e8d44e186d812a1f74b43d64fac52 new file mode 100644 index 0000000000000000000000000000000000000000..7f2ebf4eeb6ad6875bcc2a2b91ca3345ee06b45e GIT binary patch literal 52 zcmbmnW01vqb%|NYNpjQ$%9a=IlW-1k=uG&ucRgU5;W^DOJww?yeZ*QuAR%kL b?|FbbA)>kJHEH@MH|3kxP09QKHAXDoL8&<= literal 0 HcmV?d00001 diff --git a/test/integration/initialOpen/expected/.git_keep/objects/62/b35f5751dd871e0908247223d276b5efeb4cb4 b/test/integration/initialOpen/expected/.git_keep/objects/62/b35f5751dd871e0908247223d276b5efeb4cb4 new file mode 100644 index 0000000000000000000000000000000000000000..dff6f06c885a035defe52f5b03d8baff6d79f937 GIT binary patch literal 57 zcmV-90LK4#0V^p=O;s>AU@$Z=Ff%bx$gNDv%t`~^A08nuUMF0Q* literal 0 HcmV?d00001 diff --git a/test/integration/initialOpen/expected/.git_keep/objects/e4/776798a2a73374b45e6321b60b5578b9fb590c b/test/integration/initialOpen/expected/.git_keep/objects/e4/776798a2a73374b45e6321b60b5578b9fb590c new file mode 100644 index 000000000..013f3deb3 --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/objects/e4/776798a2a73374b45e6321b60b5578b9fb590c @@ -0,0 +1,2 @@ +xM +1 @a=Ei6 "c'Eqw-^]18M2zSHH7\v-T 5o' VVM0N6ϸ/M|S]ub>5Onq8 \ No newline at end of file diff --git a/test/integration/initialOpen/expected/.git_keep/refs/heads/master b/test/integration/initialOpen/expected/.git_keep/refs/heads/master new file mode 100644 index 000000000..89a4ee75f --- /dev/null +++ b/test/integration/initialOpen/expected/.git_keep/refs/heads/master @@ -0,0 +1 @@ +e4776798a2a73374b45e6321b60b5578b9fb590c diff --git a/test/integration/initialOpen/expected/myfile1 b/test/integration/initialOpen/expected/myfile1 new file mode 100644 index 000000000..a5bce3fd2 --- /dev/null +++ b/test/integration/initialOpen/expected/myfile1 @@ -0,0 +1 @@ +test1 diff --git a/test/integration/initialOpen/expected/myfile2 b/test/integration/initialOpen/expected/myfile2 new file mode 100644 index 000000000..a5bce3fd2 --- /dev/null +++ b/test/integration/initialOpen/expected/myfile2 @@ -0,0 +1 @@ +test1 diff --git a/test/integration/initialOpen/recording.json b/test/integration/initialOpen/recording.json new file mode 100644 index 000000000..2fdf83dc0 --- /dev/null +++ b/test/integration/initialOpen/recording.json @@ -0,0 +1 @@ +{"KeyEvents":[{"Timestamp":891,"Mod":0,"Key":27,"Ch":0},{"Timestamp":1344,"Mod":0,"Key":256,"Ch":32},{"Timestamp":1639,"Mod":0,"Key":256,"Ch":99},{"Timestamp":2128,"Mod":0,"Key":256,"Ch":97},{"Timestamp":2176,"Mod":0,"Key":256,"Ch":115},{"Timestamp":2280,"Mod":0,"Key":256,"Ch":100},{"Timestamp":2592,"Mod":0,"Key":13,"Ch":13},{"Timestamp":2960,"Mod":0,"Key":256,"Ch":113}],"ResizeEvents":[{"Timestamp":0,"Width":272,"Height":74}]} \ No newline at end of file diff --git a/test/integration/initialOpen/setup.sh b/test/integration/initialOpen/setup.sh new file mode 100644 index 000000000..84ad82d36 --- /dev/null +++ b/test/integration/initialOpen/setup.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +cd $1 + +git init + +git config user.email "CI@example.com" +git config user.name "CI" + +echo test1 > myfile1 +git add . +git commit -am "myfile1" + +echo test1 > myfile2 diff --git a/test/integration/initialOpen/test.json b/test/integration/initialOpen/test.json new file mode 100644 index 000000000..f7fd28fab --- /dev/null +++ b/test/integration/initialOpen/test.json @@ -0,0 +1 @@ +{ "description": "testing the initial popup appears when first starting lazygit", "speed": 15 }