New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installer: offer the builtin stash/rebase as experimental options #203

Merged
merged 1 commit into from Aug 28, 2018

Conversation

Projects
None yet
5 participants
@dscho
Member

dscho commented Aug 25, 2018

As nice as the speed-ups are, the patches in question are still in flux, and they are not battle-tested at all.

Let's use the scripted commands by default, and offer the new, fast, experimental builtins as options.

This gives us the best of both worlds: users who want the raw speed improvement we got through three Google Summer of Code projects working in parallel can have that, while others who are reluctant to play guinea pig by running only well-tested code can stay on the safe side.

Plus, it gives us a chance of battle-testing those patches :-)

Note: the code added in this PR will only kick in if bundling a Git built including the latest patches of git-for-windows/git#1800.

@dscho dscho requested review from derrickstolee, jamill and jeffhostetler Aug 25, 2018

@jamill

jamill approved these changes Aug 27, 2018

I like the idea of exposing these options to people who might be interested in trying them out. I haven't run the code, but the code changes look reasonable to me (on inspection).

My concern is that we are adding more options to a setup that already exposes a lot of options to users. If I wasn't already familiar with the options, I am not sure how I would make an informed decision about what option I should choose based on the information presented in this dialog.

@dscho

This comment has been minimized.

Show comment
Hide comment
@dscho

dscho Aug 27, 2018

Member

My concern is that we are adding more options to a setup that already exposes a lot of options to users. If I wasn't already familiar with the options, I am not sure how I would make an informed decision about what option I should choose based on the information presented in this dialog.

Any suggestions how to word it?

Member

dscho commented Aug 27, 2018

My concern is that we are adding more options to a setup that already exposes a lot of options to users. If I wasn't already familiar with the options, I am not sure how I would make an informed decision about what option I should choose based on the information presented in this dialog.

Any suggestions how to word it?

installer: when available, offer the experimental built-in stash/rebase
These are opt-ins, for now.

This gives us the best of both worlds: users who want the raw speed
improvement we got through three Google Summer of Code projects working
in parallel can have that, while others who are reluctant to play guinea
pig by running only well-tested code can stay on the safe side.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho

This comment has been minimized.

Show comment
Hide comment
@dscho

dscho Aug 28, 2018

Member

Screenshot:

image

Member

dscho commented Aug 28, 2018

Screenshot:

image

@jamill jamill merged commit 3dfa130 into git-for-windows:master Aug 28, 2018

dscho added a commit that referenced this pull request Aug 28, 2018

Mention New Feature in release notes
There are now *fast*, built-in versions of `git
stash` and `git rebase`, [available as experimental
options](#203).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

@dscho dscho deleted the dscho:offer-builtin-rebase-and-stash branch Aug 28, 2018

@bviktor

This comment has been minimized.

Show comment
Hide comment
@bviktor

bviktor Sep 13, 2018

Great work. How do we enable this via command line?

bviktor commented Sep 13, 2018

Great work. How do we enable this via command line?

@bviktor

This comment has been minimized.

Show comment
Hide comment
@bviktor

bviktor Sep 13, 2018

Nevermind :)

git config --global rebase.useBuiltin true
git config --global stash.useBuiltin true

bviktor commented Sep 13, 2018

Nevermind :)

git config --global rebase.useBuiltin true
git config --global stash.useBuiltin true
@Qartar

This comment has been minimized.

Show comment
Hide comment
@Qartar

Qartar Sep 14, 2018

Is it too late to change the wording on the setup page? "90% faster" is incredibly ambiguous.

Qartar commented Sep 14, 2018

Is it too late to change the wording on the setup page? "90% faster" is incredibly ambiguous.

@shiftkey

This comment has been minimized.

Show comment
Hide comment
@shiftkey

shiftkey Sep 14, 2018

Contributor

@Qartar the source for the wording is here if you'd like to submit some better wording:

#ifdef WITH_EXPERIMENTAL_BUILTIN_REBASE
// 2nd option
RdbExperimentalOptions[GP_BuiltinRebase]:=CreateCheckBox(ExperimentalOptionsPage,'Enable experimental, built-in rebase','<RED>(NEW!)</RED> Use the experimental built-in rebase (about 70% faster, but only'+#13+'lightly tested).',TabOrder,Top,Left);
// Restore the settings chosen during a previous install
RdbExperimentalOptions[GP_BuiltinRebase].Checked:=ReplayChoice('Enable Builtin Rebase','Auto')='Disabled';
#endif
#ifdef WITH_EXPERIMENTAL_BUILTIN_STASH
// 3rd option
RdbExperimentalOptions[GP_BuiltinStash]:=CreateCheckBox(ExperimentalOptionsPage,'Enable experimental, built-in stash','<RED>(NEW!)</RED> Use the experimental built-in stash (about 90% faster, but only'+#13+'lightly tested).',TabOrder,Top,Left);
// Restore the settings chosen during a previous install
RdbExperimentalOptions[GP_BuiltinStash].Checked:=ReplayChoice('Enable Builtin Stash','Auto')='Disabled';
#endif

Contributor

shiftkey commented Sep 14, 2018

@Qartar the source for the wording is here if you'd like to submit some better wording:

#ifdef WITH_EXPERIMENTAL_BUILTIN_REBASE
// 2nd option
RdbExperimentalOptions[GP_BuiltinRebase]:=CreateCheckBox(ExperimentalOptionsPage,'Enable experimental, built-in rebase','<RED>(NEW!)</RED> Use the experimental built-in rebase (about 70% faster, but only'+#13+'lightly tested).',TabOrder,Top,Left);
// Restore the settings chosen during a previous install
RdbExperimentalOptions[GP_BuiltinRebase].Checked:=ReplayChoice('Enable Builtin Rebase','Auto')='Disabled';
#endif
#ifdef WITH_EXPERIMENTAL_BUILTIN_STASH
// 3rd option
RdbExperimentalOptions[GP_BuiltinStash]:=CreateCheckBox(ExperimentalOptionsPage,'Enable experimental, built-in stash','<RED>(NEW!)</RED> Use the experimental built-in stash (about 90% faster, but only'+#13+'lightly tested).',TabOrder,Top,Left);
// Restore the settings chosen during a previous install
RdbExperimentalOptions[GP_BuiltinStash].Checked:=ReplayChoice('Enable Builtin Stash','Auto')='Disabled';
#endif

@Qartar

This comment has been minimized.

Show comment
Hide comment
@Qartar

Qartar Sep 14, 2018

Thanks, but I'm not sure what the intended value is, e.g. is it almost twice as fast or is it ten times faster?

Qartar commented Sep 14, 2018

Thanks, but I'm not sure what the intended value is, e.g. is it almost twice as fast or is it ten times faster?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment