Feature: A Git reference can be provided as an argument to indicate where to start taking the range of commits from till HEAD to calculate the next semantic version. Scenario Outline: Given the repository "" is cloned and checked out at the commit "". When the argument --from-reference is provided as "". And the argument --from-version is provided as "". Then the returned version should be "". Examples: | repository | checkout_commit | from_reference | from_version | expected_version | | https://github.com/yargs/yargs.git | 95a4a0ac573cfe158e6e4bc8c8682ebd1644a198 | v16.0.3 | 16.0.3 | 16.0.5 | Scenario Outline: You can also provide the long name and partial names not just the short name. Given the repository "" is cloned and checked out at the commit "". When the argument --from-reference is provided as "". And the argument --from-version is provided as "". Then the returned version should be "". Given the arguments are reset. When the argument --from-reference is provided as "". And the argument --from-version is provided as "". Then the returned version should be "". Given the arguments are reset. When the argument --from-reference is provided as "". And the argument --from-version is provided as "". Then the returned version should be "". Examples: | repository | checkout_commit | from_full_reference | from_version | expected_version | from_partial_reference | from_short_reference | | https://github.com/Netflix/unleash.git | 238ce019c3a7b3302721fc1ae5b8ad2bdd50a706 | refs/tags/v2.0.0 | 2.0.0 | 2.0.1 | tags/v2.0.0 | v2.0.0 | Scenario Outline: When you provide an invalid reference a relevant error message is returned. Given the repository "" is cloned and checked out at the commit "". When the argument --from-reference is provided as "". And the argument --from-version is provided as "". Then their is a could not find reference "" error. Examples: | repository | checkout_commit | from_reference | from_version | | https://github.com/yargs/yargs.git | 95a4a0ac573cfe158e6e4bc8c8682ebd1644a198 | 16-0-3 | 16.0.3 |