Git: Easy Installation

Created on 5 Nov 2019  Âˇ  32Comments  Âˇ  Source: git-for-windows/git

The installer has so many steps and options that may intimidate newcomers. Would it be a good idea to provide a simple and advanced option for the installer?

up for grabs

Most helpful comment

I am willing to work on this if folks think it would be a good idea.

@denised I also think that this is a good idea.

So here are the some tips from my side to get you started:

  • Install Git for Windows' SDK (https://gitforwindows.org/#download-sdk); This will take a while, you can do other things while it installs.
  • sdk cd installer
  • The script is called install.iss, and these days, I like to edit it with Visual Studio Code (with the "Inno Setup" extension enabled).
  • After modifying install.iss, you can build an installer using sdk build installer (or if you want to have it quicker, in Git SDK's Bash: sdk cd installer && ./release.sh --skip-files 0-test).
  • The most crucial part of your idea is to have a way to skip ahead, and I think it should be a button on the bottom, next to the Previous and Next buttons. I am not even sure that that is possible, but it _should_ be possible. To figure out whether it is, I usually use DuckDuckGo with the !so option to search StackOverflow (because it finds more meaningful hits than StackOverflow's own search) and InnoSetup's documentation (typically I look for the available functions at http://www.jrsoftware.org/ishelp/topic_scriptfunctions.htm, in your case I think that the available classes might make more sense: http://www.jrsoftware.org/ishelp/topic_scriptclasses.htm, I am looking in particular at TWizardPage and at its FindComponent() method that it inherited from the TComponent base class).

All 32 comments

Yes, it would be a good idea.

Would you like to work on that?

I don't think I can. I'm not familiar with C

I'm not familiar with C

@saadat99 Lucky you! The installer is not implemented in C, but in InnoSetup's Pascal Scripting language.

:smile:

Seriously again, though, if not even you find this project important enough to work on, maybe nobody does.

Please take this as quite the encouragement to take matters in your hand.

Okay, it is clear that the reporter has not the faintest interest in contributing back to the project that they are benefiting from so handsomely.

So I marked this "up for grabs", which is kind of code for "I would love to, but I can't, I have too much to do, and there is basically only me driving this project forward; this ticket being an excellent demonstration of that fact".

And here is my pledge: I will help anybody who wants to see an easier installation of Git for Windows become a reality, as long as they are willing to do put in the work. I'll guide you, no problem. I know what needs to be done. It's not totally trivial, still, it is totally doable.

@saadat99 How about,.. that you at least walk through the current steps (e.g. the latest Git-2.24.0.2-64-bit.exe) and suggest what the limited 'easy' steps would be (e.g. taken from the other direction, which aspects/options should be hidden to the newcomer).

That, why not be the 'voice of the customer' hoping for an easy (limited set of?) install option.

A clear statement of a simple install would make its _implementation_ easier for others who could do it as a simple project (separation of concerns!).

You may even find :grin: :astonished:, that once you have written the outline of the install that it becomes that little bit easier to contemplate adjusting the install script :writing_hand:, which isn't actually that complex, once you browse over it (and there are examples in it for all the things you probably want to do).

I don't feel like there are too many options; I think they all do useful things and I like having them spelled out. But I do have a variation on this request: when you upgrade GfW, have an option to skip all the other options if the person doing the install doesn't want anything to change. (This option of course should only be shown if there is a previous install of GfW on the machine, and the set of options available has not changed.)
I am willing to work on this if folks think it would be a good idea.

I think it is a good idea: "Upgrade using previous options". It should be fairly simple as the installer already remembers the options.

I am willing to work on this if folks think it would be a good idea.

@denised I also think that this is a good idea.

So here are the some tips from my side to get you started:

  • Install Git for Windows' SDK (https://gitforwindows.org/#download-sdk); This will take a while, you can do other things while it installs.
  • sdk cd installer
  • The script is called install.iss, and these days, I like to edit it with Visual Studio Code (with the "Inno Setup" extension enabled).
  • After modifying install.iss, you can build an installer using sdk build installer (or if you want to have it quicker, in Git SDK's Bash: sdk cd installer && ./release.sh --skip-files 0-test).
  • The most crucial part of your idea is to have a way to skip ahead, and I think it should be a button on the bottom, next to the Previous and Next buttons. I am not even sure that that is possible, but it _should_ be possible. To figure out whether it is, I usually use DuckDuckGo with the !so option to search StackOverflow (because it finds more meaningful hits than StackOverflow's own search) and InnoSetup's documentation (typically I look for the available functions at http://www.jrsoftware.org/ishelp/topic_scriptfunctions.htm, in your case I think that the available classes might make more sense: http://www.jrsoftware.org/ishelp/topic_scriptclasses.htm, I am looking in particular at TWizardPage and at its FindComponent() method that it inherited from the TComponent base class).

I think we should keep the #2394 open because that's a separate issue but a very important one. It's still a good thing to hide the advanced options in the installer to keep it clean and also help newbies.
About upgrading, I like the way OBS does it. It doesn't require you to go through the installation process instead the updater updates the program using the current preferences and relaunches it.
If you are not sure what I mean download an older release and update it to see it in action
https://github.com/obsproject/obs-studio/releases/tag/24.0.0-rc5

@dscho Thank you for all the pointers. I will look be looking at them! :-)

saadat99's suggestion to just have upgrade function with no options at all (automatically use the same options) is not a bad idea. If you want to change options you can set them. And if you want to do something like install to a different path, you probably want to uninstall and re-install anyway.
It will take me a while to figure out what I'm working with, so we can continue to discuss.
Please vote for:
Design A): A new option that appears on upgrade only, allowing you to choose to skip all other options
Design B): Automatically use previous options without asking the user at all.

BTW, I am also assuming that there needs to be a way to turn this feature (either design) _off_ for a given release, if the options have changed, or their meanings have changed.

@dscho: The command sdk cd installer failed with the following error message:
bash: cd: /usr/src/build-extra/installer: No such file or directory Could not change directory to 'installer'

I am running Windows 10, and I installed the sdk in a directory C:\Projects\GitInstaller. The installation of the sdk finished with this message:
'C:\Windows\system32\drivers\etc\hosts' -> '/etc/hosts' 'C:\Windows\system32\drivers\etc\protocol' -> '/etc/protocols' 'C:\Windows\system32\drivers\etc\services' -> '/etc/services' 'C:\Windows\system32\drivers\etc\networks' -> '/etc/networks' Initialized empty Git repository in C:/Projects/GitInstaller/usr/src/git/.git/ Initialized empty Git repository in C:/Projects/GitInstaller/usr/src/build-extra/.git/ Initialized empty Git repository in C:/Projects/GitInstaller/usr/src/MINGW-packages/.git/ Initialized empty Git repository in C:/Projects/GitInstaller/usr/src/MSYS2-packages/.git/
The directories named above do exist, so it seems likely that something is not working correctly with the magic linking, however that works. I will see if I can figure it out, but I'm not quite sure where to start. If you know what this is --- or wish me to ask for help in some other forum --- please let me know.

bash: cd: /usr/src/build-extra/installer: No such file or directory
Could not change directory to 'installer'

Whoops. Could you try sdk init build-extra and then sdk cd installer?

(That _should_ work automatically, and is most likely a bug in https://github.com/git-for-windows/build-extra/blob/master/git-extra/git-sdk.sh)

Unfortunately that did not work for me either. The sdk init build-extra command returned immediately, but there was no change to the build-extra directory (which I assume there should have been).

I can either try to debug _this_ issue (in which case I need to know how to find the source for the sdk command itself), or I can work around it by doing a more manual installation. I have downloaded the source code bundle; if I work with that directly will I be able to build and test the result and submit a change?

thanks,
denise

Perhaps stating the obvious: Did you try a git pull in the git and installer directory?

Yup :-)
The git repositories in /usr/src/git and /usr/src/build-extras are empty
The git repository at the root says that it is up to date.

--
Denise Draper
[email protected]

On Tue, Nov 12, 2019, at 10:31 PM, Sebastiaan Dammann wrote:

Perhaps stating the obvious: Did you try a git pull in the git and installer directory?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTQ35552YNF3DT5QT53QTONLFA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5BJ7Y#issuecomment-553260287, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTWOTP6EK5I3BEJ3CXTQTONLFANCNFSM4JJCLDQQ.

Did you try 'git checkout master' in those directories?

Met vriendelijke groet,
Sebastiaan Dammann


Van: Denise Draper notifications@github.com
Verzonden: Wednesday, November 13, 2019 7:44:40 AM
Aan: git-for-windows/git git@noreply.github.com
CC: Sebastiaan Dammann sebastiaandammann@outlook.com; Comment comment@noreply.github.com
Onderwerp: Re: [git-for-windows/git] Easy Installation (#2389)

Yup :-)
The git repositories in /usr/src/git and /usr/src/build-extras are empty
The git repository at the root says that it is up to date.

--
Denise Draper
[email protected]

On Tue, Nov 12, 2019, at 10:31 PM, Sebastiaan Dammann wrote:

Perhaps stating the obvious: Did you try a git pull in the git and installer directory?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTQ35552YNF3DT5QT53QTONLFA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5BJ7Y#issuecomment-553260287, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTWOTP6EK5I3BEJ3CXTQTONLFANCNFSM4JJCLDQQ.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgit-for-windows%2Fgit%2Fissues%2F2389%3Femail_source%3Dnotifications%26email_token%3DAAK4FMO4XVVCHE6O5UQRKALQTOO5RA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5CEGI%23issuecomment-553263641&data=02%7C01%7C%7C838d2c9781864a16082608d76804f5ae%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637092242815180236&sdata=Vy%2B7fDru3JKS4gJT4a9mbz4VFZ8N0POCSf3%2BUYVcpEo%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAK4FMO4WRCXFK4LFNLZ2YDQTOO5RANCNFSM4JJCLDQQ&data=02%7C01%7C%7C838d2c9781864a16082608d76804f5ae%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637092242815190241&sdata=VWjgWWjrnfU7%2FDWY3Ax%2B76niAtyLDiyfi9JVA2%2BMt9E%3D&reserved=0.

I just tried now; it doesn't know what 'master' is (the git directories really are empty)

Doei :-)

Denise Draper
[email protected]

On Tue, Nov 12, 2019, at 10:46 PM, Sebastiaan Dammann wrote:

Did you try 'git checkout master' in those directories?

Met vriendelijke groet,
Sebastiaan Dammann


Van: Denise Draper notifications@github.com
Verzonden: Wednesday, November 13, 2019 7:44:40 AM
Aan: git-for-windows/git git@noreply.github.com
CC: Sebastiaan Dammann sebastiaandammann@outlook.com; Comment comment@noreply.github.com
Onderwerp: Re: [git-for-windows/git] Easy Installation (#2389)

Yup :-)
The git repositories in /usr/src/git and /usr/src/build-extras are empty
The git repository at the root says that it is up to date.

--
Denise Draper
[email protected]

On Tue, Nov 12, 2019, at 10:31 PM, Sebastiaan Dammann wrote:

Perhaps stating the obvious: Did you try a git pull in the git and installer directory?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTQ35552YNF3DT5QT53QTONLFA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5BJ7Y#issuecomment-553260287, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTWOTP6EK5I3BEJ3CXTQTONLFANCNFSM4JJCLDQQ.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgit-for-windows%2Fgit%2Fissues%2F2389%3Femail_source%3Dnotifications%26email_token%3DAAK4FMO4XVVCHE6O5UQRKALQTOO5RA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5CEGI%23issuecomment-553263641&data=02%7C01%7C%7C838d2c9781864a16082608d76804f5ae%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637092242815180236&sdata=Vy%2B7fDru3JKS4gJT4a9mbz4VFZ8N0POCSf3%2BUYVcpEo%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAK4FMO4WRCXFK4LFNLZ2YDQTOO5RANCNFSM4JJCLDQQ&data=02%7C01%7C%7C838d2c9781864a16082608d76804f5ae%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637092242815190241&sdata=VWjgWWjrnfU7%2FDWY3Ax%2B76niAtyLDiyfi9JVA2%2BMt9E%3D&reserved=0.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTRJHCEV3XBZJJOSDQTQTOPDZA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED5CHVY#issuecomment-553264087, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTXB7ZLWJ4WFE7D3W6TQTOPDZANCNFSM4JJCLDQQ.

The sdk init build-extra command returned immediately, but there was no change to the build-extra directory (which I assume there should have been).

I believe that I fixed this in https://github.com/git-for-windows/build-extra/pull/269. The Pacman packages are built and uploaded as we speak. If everything works out all right, in a couple of minutes you can call pacman -Sy && pacman -S --noconfirm git-extra and after that sdk cd installer should work.

If you do not want to wait that long, call sdk cd build-extra && git pull origin master && sdk cd installer.

Hooray that worked!
There was one glitch: I got a 'you do not have permissions to execute this command' on the 2nd pacman command below. I reopened the shell as admin and then it worked. (The issue, I think was creating a symbolic link.)

I now have the source for installer and will start working on it!

--
Denise Draper
[email protected]

On Wed, Nov 13, 2019, at 4:22 AM, Johannes Schindelin wrote:

The sdk init build-extra command returned immediately, but there was no change to the build-extra directory (which I assume there should have been).

I believe that I fixed this in git-for-windows/build-extra#269 https://github.com/git-for-windows/build-extra/pull/269. The Pacman packages are built and uploaded as we speak. If everything works out all right, in a couple of minutes you can call pacman -Sy && pacman -S --noconfirm git-extra and after that sdk cd installer should work.

If you do not want to wait that long, call sdk cd build-extra && git pull origin master && sdk cd installer.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTUBM32YT3SHVEIOXO3QTPWQRA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED56YQQ#issuecomment-553380930, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTRHK2ZVDE5KWNZT5HTQTPWQRANCNFSM4JJCLDQQ.

The value of an installation parameter is set by the function ReplayChoice, which sets the value from one of the following places (first one wins):

  1. Parameter is explicitly set on command line
  2. A settings file specified on command line via /loadinf option
  3. The local and system git config files
  4. Value set by user in previous install
  5. Default value

One clean way to simplify the setup is to skip a configuration page if any of the first four methods succeeds. It seems rational to me that you don't need to show the user the parameter page for a parameter they have already set it via other means. Making the 'skip' decision per page also has the nice benefit that if a new parameter is added, it will be shown even if all the others are set, without requiring any special logic.

If we do it this way, then you don't need to have a special 'install-with-previous-parameters' button, you can simply always use this logic to decide if any parameter page needs to be shown.

Does this seem reasonable? Are there any gotchas or scenarios that I'm missing?

thanks,

--
Denise Draper
[email protected]

On Thu, Nov 14, 2019, at 8:19 PM, Denise Draper wrote:

Hooray that worked!
There was one glitch: I got a 'you do not have permissions to execute this command' on the 2nd pacman command below. I reopened the shell as admin and then it worked. (The issue, I think was creating a symbolic link.)

I now have the source for installer and will start working on it!

--
Denise Draper
[email protected]

On Wed, Nov 13, 2019, at 4:22 AM, Johannes Schindelin wrote:

The sdk init build-extra command returned immediately, but there was no change to the build-extra directory (which I assume there should have been).

I believe that I fixed this in git-for-windows/build-extra#269 https://github.com/git-for-windows/build-extra/pull/269. The Pacman packages are built and uploaded as we speak. If everything works out all right, in a couple of minutes you can call pacman -Sy && pacman -S --noconfirm git-extra and after that sdk cd installer should work.

If you do not want to wait that long, call sdk cd build-extra && git pull origin master && sdk cd installer.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTUBM32YT3SHVEIOXO3QTPWQRA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED56YQQ#issuecomment-553380930, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTRHK2ZVDE5KWNZT5HTQTPWQRANCNFSM4JJCLDQQ.

One clean way to simplify the setup is to skip a configuration page if any of the first four methods succeeds. It seems rational to me that you don't need to show the user the parameter page for a parameter they have already set it via other means. Making the 'skip' decision per page also has the nice benefit that if a new parameter is added, it will be shown even if all the others are set, without requiring any special logic.

The only issue I see with that is: how do you record and query, cleanly, whether a setting on a given page was set to the default value?

I guess you could extend the signature of ReplayChoice() to include a parameter wasSetToDefault:Boolean or some such, and then have an array with Boolean elements that grows together with every CreateFilePage() call where you store that information? I just do not see any elegant way to implement that, i.e. any way that wouldn't require a gazillion changes in install.iss.

An alternative may be to use a global Boolean and record, then re-set, it upon every call to CreateFilePage().

An alternative may be to use a global Boolean and record, then re-set, it upon every call to CreateFilePage().

Oh, I guess that that Boolean array to determine which page has settings that had not previously been set needs to be global anyway, so there _is_ an elegant way: use PrevPageID (as it is set in CreatePage()) and record it in ReplayChoice() if any default value was used.

And the more I think about it, the more I am convinced that it should not be an array. Unfortunately, our options as far as data structures in InnoSetup are concerned are pretty limited.

So the best thing might actually be something like this:

diff --git a/installer/install.iss b/installer/install.iss
index b68bf7bb7..95f1d1da0 100644
--- a/installer/install.iss
+++ b/installer/install.iss
@@ -372,6 +372,9 @@ var
     // The options chosen at install time, to be written to /etc/install-options.txt
     ChosenOptions:String;

+    // IDs of pages that have choices not seen in previous upgrades
+    PageIDsWithUnseenOptions:String;
+
     // Previous Git for Windows version (if upgrading)
     PreviousGitForWindowsVersion:String;

@@ -974,9 +977,17 @@ begin
         i:=InferredDefaultKeys.IndexOf(Key); // cannot use .Find because the list is not sorted
         if (i>=0) then
             Result:=InferredDefaultValues[i]
-        else
+        else begin
             // Restore the settings chosen during a previous install.
             Result:=GetPreviousData(Key,Default);
+
+            if (Result<>GetPreviousData(Key,'z'+Default)) then begin
+                if (PageIDsWithUnseenOptions='') then
+                    PageIDsWithUnseenOptions=',';
+                if (Pos(','+IntToStr(PrevPageID)+',',PageIDsWithUnseenOptions)=0) then
+                    PageIDsWithUnseenOptions:=PageIDsWithUnseenOptions+IntToStr(PrevPageID)+',';
+            end;
+        end;
     end;
 end;

I.e. we build a string of the form ,<pageID1>,<pageID2>,... where we can test via if (Pos(','+IntToStr(PageID)+',',PageIDsWithUnseenOptions)>0) whether a given PageID corresponds to a wizard page that offers a choice that the user had not yet seen.

I was thinking along the lines of setting a global variable in ReplayChoices, and using that to construct a list of pages in InitializeWizard. It does require adding two lines per page in InitializeWizard, but it makes the logic clearer (and allows for the possibility of pages that have different display logic).

I will code it up this way and see how it looks.

--
Denise Draper
[email protected]

On Mon, Nov 18, 2019, at 12:07 PM, Johannes Schindelin wrote:

An alternative may be to use a global Boolean and record, then re-set, it upon every call to CreateFilePage().

Oh, I guess that that Boolean array to determine which page has settings that had not previously been set needs to be global anyway, so there is an elegant way: use PrevPageID (as it is set in CreatePage() https://github.com/git-for-windows/build-extra/blob/db6a4c8259b8f4eba4112d83d668f6305aa1a082/installer/install.iss#L1072-L1079) and record it in ReplayChoice() if any default value was used.

And the more I think about it, the more I am convinced that it should not be an array. Unfortunately, our options as far as data structures in InnoSetup are concerned are pretty limited.

So the best thing might actually be something like this:

diff --git a/installer/install.iss b/installer/install.iss
index b68bf7bb7..95f1d1da0 100644
--- a/installer/install.iss
+++ b/installer/install.iss
@@ -372,6 +372,9 @@ var
// The options chosen at install time, to be written to /etc/install-options.txt
ChosenOptions:String;

  • // IDs of pages that have choices not seen in previous upgrades
  • PageIDsWithUnseenOptions:String;
    +
    // Previous Git for Windows version (if upgrading)
    PreviousGitForWindowsVersion:String;

@@ -974,9 +977,17 @@ begin
i:=InferredDefaultKeys.IndexOf(Key); // cannot use .Find because the list is not sorted
if (i>=0) then
Result:=InferredDefaultValues[i]
- else
+ else begin
// Restore the settings chosen during a previous install.
Result:=GetPreviousData(Key,Default);
+
+ if (Result<>GetPreviousData(Key,'z'+Default)) then begin
+ if (PageIDsWithUnseenOptions='') then
+ PageIDsWithUnseenOptions=',';
+ if (Pos(','+IntToStr(PrevPageID)+',',PageIDsWithUnseenOptions)=0) then
+ PageIDsWithUnseenOptions:=PageIDsWithUnseenOptions+IntToStr(PrevPageID)+',';
+ end;
+ end;
end;
end;

I.e. we build a string of the form ,<pageID1>,<pageID2>,... where we can test via if (Pos(','+IntToStr(PageID)+',',PageIDsWithUnseenOptions)>0) whether a given PageID corresponds to a wizard page that offers a choice that the user had not yet seen.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTU4BLG3PXHGX6JC2QTQULYYPA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEELXWUY#issuecomment-555187027, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTXLQAMVX6DHG3MXFJLQULYYPANCNFSM4JJCLDQQ.

I was thinking along the lines of setting a global variable in ReplayChoices, and using that to construct a list of pages in InitializeWizard. It does require adding two lines per page in InitializeWizard, but it makes the logic clearer (and allows for the possibility of pages that have different display logic).

I will be curious to see the result.

I will code it up this way and see how it looks.

Sounds good!

OK, I have a version running and with one exception it seems to do the right thing when I tested it on a Windows VM.
How would you like me to submit it?
I'm not sure how to do a pull request given your sdk setup.

thanks,

--
Denise Draper
[email protected]

On Mon, Nov 18, 2019, at 1:49 PM, Johannes Schindelin wrote:

I was thinking along the lines of setting a global variable in ReplayChoices, and using that to construct a list of pages in InitializeWizard. It does require adding two lines per page in InitializeWizard, but it makes the logic clearer (and allows for the possibility of pages that have different display logic).

I will be curious to see the result.

I will code it up this way and see how it looks.

Sounds good!

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTVZUUP4SS6VNLY6ZZLQUMEXFA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEMBACI#issuecomment-555225097, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTVLTMX7Q3UXUDS65BTQUMEXFANCNFSM4JJCLDQQ.

How would you like me to submit it?

As you made changes to the build-extra worktree, how about opening a PR at https://github.com/git-for-windows/build-extra?

(That is, fork that repository, add a remote to your fork at /usr/src/build-extra/, commit your changes and push them there, then open that PR.)

Done. However it gave me an error about signoff even though I had put my information in the request comments.
I did try to follow the instructions to do a signoff the 'official' way, but git commit --amend --signoff did not work on my machine (it hung).

Are you able to use the pull request/signoff as is, or do I need to correct it somehow?

--
Denise Draper
[email protected]

On Tue, Nov 19, 2019, at 12:52 PM, Johannes Schindelin wrote:

How would you like me to submit it?

As you made changes to the build-extra worktree, how about opening a PR at https://github.com/git-for-windows/build-extra?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTSJT2M4PGSJXYFH4TTQURGYZA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEPW4CI#issuecomment-555707913, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTSAF57JLUJWDRO2APTQURGYZANCNFSM4JJCLDQQ.

Done

For lurkers: it is https://github.com/git-for-windows/build-extra/pull/270. Let's continue the conversation over there (I will close this ticket to help move the focus)?

git commit --amend --signoff did not work on my machine (it hung).

That is strange. Maybe you have an editor configured that popped up in the background? You are supposed to review the commit message, save and close it.

That is strange. Maybe you have an editor configured that popped up in the background? You are supposed to review the commit message, save and close it.

I actually switched my config to the Vim editor to be sure that wasn't the issue. It behaved the same.

--
Denise Draper
[email protected]

On Wed, Nov 20, 2019, at 2:36 AM, Johannes Schindelin wrote:

Done

For lurkers: it is git-for-windows/build-extra#270 https://github.com/git-for-windows/build-extra/pull/270. Let's continue the conversation over there (I will close this ticket to help move the focus)?

git commit --amend --signoff did not work on my machine (it hung).

That is strange. Maybe you have an editor configured that popped up in the background? You are supposed to review the commit message, save and close it.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/git-for-windows/git/issues/2389?email_source=notifications&email_token=AAKAMTWPD37ETAKDIUUKFMDQUUHKLA5CNFSM4JJCLDQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEERQRUA#issuecomment-555944144, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKAMTX63DSMW5KZ6UOODD3QUUHKLANCNFSM4JJCLDQQ.

Maybe you have an editor configured that popped up in the background? You are supposed to review the commit message, save and close it.
I actually switched my config to the Vim editor to be sure that wasn't the issue. It behaved the same.

â˜šī¸

In that case, the only remedy might be git commit --amend --signoff --no-edit.

Was this page helpful?
0 / 5 - 0 ratings