FailedConsole Output

Skipping 397 KB.. Full Log
        # Branch.feature:23
    Given I have a repository                                                    # DefaultStepDefinitions.I_have_a_repository()
    And I run the command "branch newBranch"                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "no commits yet, branch cannot be created." # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                                   # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to create a branch off of master': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to rebuild a nonexistent index                              # RebuildIndex.feature:46
    Given I have a repository                                               # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                              # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "index rebuild --tree Points"                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "A matching index could not be found." # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the index for a non-existent attribute on a tree': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to view the common parent of 2 commits  # MergeBase.feature:6
    Given I have a repository                             # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                           # DefaultStepDefinitions.I_have_several_branches()
    And I run the command "merge branch1 -m MergeMessage" # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "merge-base HEAD HEAD~2"       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain 1 lines              # DefaultStepDefinitions.the_response_should_contain_x_lines(int)
    And it should exit with zero exit code                # DefaultStepDefinitions.it_should_exit_with_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to view the parent using a bad left commit reference': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to fetch from origin with pruning        # Fetch.feature:65
    Given I have a repository with a remote              # DefaultStepDefinitions.I_have_a_repository_with_a_remote()
    And I have a remote ref called "branch2"             # DefaultStepDefinitions.i_have_a_remote_ref_called(String)
    When I run the command "branch --all"                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "origin/branch2"    # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "fetch --prune"               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch --all"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "origin/master"     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/branch1"     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "origin/branch2" # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should contain "origin/HEAD"        # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to create a branch with a non-existent start point                         # Branch.feature:29
    Given I have a repository                                                              # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                             # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "branch newBranch nonexistent"                                   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "nonexistent does not resolve to a repository object" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to checkout a branch as soon as it is created': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I rebuild the index for an attribute on a tree                                # RebuildIndex.feature:52
    Given I have a repository                                                             # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                           # DefaultStepDefinitions.I_have_several_branches()
    And I run the command "index create --tree Points --extra-attributes sp"              # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                         # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"        # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"    # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:          # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "branch2:Points" should not have an index                        # DefaultStepDefinitions.noIndexAtCommit(String)
    And the repository's "branch1:Points" should not have an index                        # DefaultStepDefinitions.noIndexAtCommit(String)
    When I run the command "index rebuild --tree Points -a pp"                            # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "3 trees were rebuilt."                              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 3"                                             # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"        # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"    # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:          # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "HEAD~1:Points" index should track the extra attribute "sp"      # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD~1:Points" index should not track the extra attribute "ip"  # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD~1:Points" index should have the following features:        # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "branch2:Points" index should track the extra attribute "sp"     # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "branch2:Points" index should not track the extra attribute "ip" # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "branch2:Points" index should have the following features:       # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "branch1:Points" index should track the extra attribute "sp"     # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "branch1:Points" index should not track the extra attribute "ip" # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "branch1:Points" index should have the following features:       # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - A matching index could not be found.
java.lang.IllegalStateException: A matching index could not be found.
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
	at org.locationtech.geogig.plumbing.index.BuildFullHistoryIndexOp._call(BuildFullHistoryIndexOp.java:78)
	at org.locationtech.geogig.plumbing.index.BuildFullHistoryIndexOp._call(BuildFullHistoryIndexOp.java:40)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.cli.porcelain.index.RebuildIndex.runInternal(RebuildIndex.java:47)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the index for an attribute on a non-existent tree': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to view the common parent with too many arguments           # MergeBase.feature:14
    Given I have a repository                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                               # DefaultStepDefinitions.I_have_several_branches()
    And I run the command "merge branch1 -m MergeMessage"                     # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "merge-base commit1 commit2 commit3"               # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Two commit references must be provided" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to view the parent using a bad right commit reference': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to fetch from unchanged remote': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to create a branch off of master                           # Branch.feature:35
    Given I have a repository                                              # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                             # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "branch newBranch master"                        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Created branch refs/heads/newBranch" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to create a branch off of master while not on master': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to rebuild the index for a non-existent attribute on a tree # RebuildIndex.feature:92
    Given I have a repository                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "index create --tree Points"                        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"             # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index rebuild --tree Points -a fakeAttrib"        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "A matching index could not be found."   # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the index for a non-existent attribute and tree': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to view the parent using a bad left commit reference          # MergeBase.feature:21
    Given I have a repository                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                 # DefaultStepDefinitions.I_have_several_branches()
    And I run the command "merge branch1 -m MergeMessage"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "merge-base badCommit HEAD"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "badCommit does not resolve to any object" # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: I try to view the parent using a bad right commit reference         # MergeBase.feature:28
    Given I have a repository                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                 # DefaultStepDefinitions.I_have_several_branches()
    And I run the command "merge branch1 -m MergeMessage"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "merge-base HEAD badCommit"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "badCommit does not resolve to any object" # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "rebuild-graph" command
    In order to fix a geogig repository
    As a Geogig User
    I want to rebuild the graph
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the graph': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to fetch a tag                                  # Fetch.feature:77
    Given I am in an empty directory                            # DefaultStepDefinitions.I_am_in_an_empty_directory()
    And there is a remote repository with a tag named "example" # DefaultStepDefinitions.there_is_a_remote_repository_with_a_tag_named(String)
    When I run the command "clone ${remoterepo} ${localrepo}"   # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "tag"                                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "example"                  # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to checkout a branch as soon as it is created # Branch.feature:41
    Given I have a repository                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "branch -c newBranch"               # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "branch"                           # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "* newBranch"            # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to create a branch with the same name as an existing branch': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to rebuild the index for an attribute on a non-existent tree # RebuildIndex.feature:100
    Given I have a repository                                                  # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                 # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "index create --tree Points"                         # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"              # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index rebuild --tree wrongTree -a pp"              # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Can't find feature tree"                 # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the index without specifying the tree param': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the graph with quiet argument': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to fetch from unchanged remote               # Fetch.feature:84
    Given I am in an empty directory                         # DefaultStepDefinitions.I_am_in_an_empty_directory()
    And there is a remote repository                         # DefaultStepDefinitions.there_is_a_remote_repository()
    And I run the command "clone ${remoterepo} ${localrepo}" # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "fetch origin"                    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Already up to date"    # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "pull" command
    In order to integrate changes from a remote repository to my working branch
    As a Geogig User
    I want to pull all new commits from that repository
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to pull from an empty directory': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to create a branch off of master while not on master               # Branch.feature:48
    Given I have a repository                                                      # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                                    # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit1"                                      # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch -c newBranch"                                    # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "lines1"                                                     # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit2"                                      # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "branch -c newestBranch master"                         # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "log"                                                    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Commit1"                                     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|localrepo|master}"        # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should not contain "Commit2"                                  # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain variable "{@ObjectId|localrepo|newBranch}" # DefaultStepDefinitions.checkResponseTextDoesNotContain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to list local branches': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to rebuild the index for a non-existent attribute and tree # RebuildIndex.feature:108
    Given I have a repository                                                # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                               # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "index create --tree Points"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"            # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index rebuild --tree fakeTree -a fakeAttrib"     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Can't find feature tree"               # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the index on an empty repository': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to rebuild the graph                                                                                        # RebuildGraph.feature:6
    Given I have a repository                                                                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                                                # DefaultStepDefinitions.I_have_several_commits()
    And the repository has a truncated graph database                                                                         # DefaultStepDefinitions.the_repository_has_a_truncated_graph_database()
    When I run the command "rebuild-graph"                                                                                    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "The following graph elements (commits) were incomplete or missing and have been fixed:" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain 4 lines                                                                                   # DefaultStepDefinitions.the_response_should_contain_x_lines(int)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to rebuild the graph when it is not broken': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to pull from origin': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to create a branch with the same name as an existing branch     # Branch.feature:62
    Given I have a repository                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                 # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch branch1"                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "A branch named 'branch1' already exists." # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                                  # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to list local branches with verbose option': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to rebuild the index without specifying the tree param        # RebuildIndex.feature:116
    Given I have a repository                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                  # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "index create --tree Points"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"               # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index rebuild"                                      # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "The following option is required: --tree" # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: I try to rebuild the index on an empty repository  # RebuildIndex.feature:124
    Given I have a repository                                  # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "index rebuild --tree Points"       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Can't find feature tree" # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "index update" command
    In order to modify the extra attributes stored on index trees
    As a Geogig User
    I want to update an index to change the extra attributes
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to update an index': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to rebuild the graph with quiet argument                    # RebuildGraph.feature:14
    Given I have a repository                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                # DefaultStepDefinitions.I_have_several_commits()
    And the repository has a truncated graph database                         # DefaultStepDefinitions.the_repository_has_a_truncated_graph_database()
    When I run the command "rebuild-graph --quiet"                            # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "3 graph elements (commits) were fixed." # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: I try to rebuild the graph when it is not broken                   # RebuildGraph.feature:21
    Given I have a repository                                                  # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                 # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "rebuild-graph"                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "No missing or incomplete graph elements" # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "rev-list" command
    In order to know the history of commits on a repository
    As a Geogig User
    I want to see a list of commits
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show only a range of commits.': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to pull from an empty directory                      # Pull.feature:6
    Given I am in an empty directory                                 # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "pull origin"                             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should start with "Not in a geogig repository" # DefaultStepDefinitions.the_response_should_start_with(String)

  Scenario: Try to list local branches          # Branch.feature:69
    Given I have a repository                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                 # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch"             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "* master" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "branch1"   # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "branch2"   # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to list remote branches only': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to update a nonexistent index': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show a range of commits and provide additional commits.': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to pull from origin after first pull': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to list local branches with verbose option # Branch.feature:77
    Given I have a repository                              # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                            # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch -v"                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "* master"            # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit5"              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "branch1"              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit4"              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "branch2"              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit3"              # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to update an index                                                     # UpdateIndex.feature:6
    Given I have a repository                                                          # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                         # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points"                                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                      # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"        # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "sp" # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip" # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:       # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    When I run the command "index update --tree Points --extra-attributes sp"          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index updated successfully"                      # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 3"                                          # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain the index ID for tree "Points"                     # DefaultStepDefinitions.the_response_contains_indexID(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"        # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"     # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip" # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:       # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to update an index with the full history': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show only a range of commits.    # RevList.feature:6
    Given I have a repository                       # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                      # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD~3..HEAD~1" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should not contain " Commit4" # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain "Commit1"   # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should contain "Commit2"       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit3"       # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show a log of a repository with a single commit.': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to pull from origin                                               # Pull.feature:11
    Given I have a repository with a remote                                       # DefaultStepDefinitions.I_have_a_repository_with_a_remote()
    When I run the command "pull origin --rebase"                                 # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "branch --all"                                         # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "origin/master"                              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/branch1"                              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/HEAD"                                 # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "log"                                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Commit5"                                    # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit4"                                     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|remoterepo|master~1}"    # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should not contain "Commit3"                                 # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain "Commit2"                                 # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should contain "Commit1"                                     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain variable "{@ObjectId|remoterepo|branch1}" # DefaultStepDefinitions.checkResponseTextDoesNotContain(String)
    And the response should contain "Commit1"                                     # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to list all branches': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to update a nonexistent index                                # UpdateIndex.feature:32
    Given I have a repository                                                # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                               # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index update --tree nonexistent"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Can't find feature tree 'nonexistent'" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to add attributes to an index': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show a range of commits and provide additional commits.                        # RevList.feature:15
    Given I have a repository                                                                     # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                    # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD~3..HEAD~1 HEAD~2"                                        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Only one value accepted when using <since>..<until> syntax" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show a log of a repository with several commits.': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to pull a certain depth from origin': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to list remote branches only         # Branch.feature:88
    Given I have a repository with a remote          # DefaultStepDefinitions.I_have_a_repository_with_a_remote()
    And I run the command "pull origin --rebase"     # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "branch -r"               # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "origin/master" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/branch1" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/HEAD"    # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "* master"   # DefaultStepDefinitions.the_response_should_not_contain(String)

  Scenario: Try to update an index with the full history                                      # UpdateIndex.feature:38
    Given I have a repository                                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                               # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "index create --tree Points"                                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                             # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"               # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "sp"        # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"        # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:              # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "branch1:Points" should not have an index                            # DefaultStepDefinitions.noIndexAtCommit(String)
    And the repository's "branch2:Points" should not have an index                            # DefaultStepDefinitions.noIndexAtCommit(String)
    When I run the command "index update --tree Points --extra-attributes sp --index-history" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index updated successfully"                             # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 3"                                                 # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 2"                                                 # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain the index ID for tree "Points"                            # DefaultStepDefinitions.the_response_contains_indexID(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"               # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"            # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"        # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:              # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "HEAD~1:Points" index should track the extra attribute "sp"          # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD~1:Points" index should not track the extra attribute "ip"      # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD~1:Points" index should have the following features:            # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "branch2:Points" index should track the extra attribute "sp"         # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "branch2:Points" index should not track the extra attribute "ip"     # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "branch2:Points" index should have the following features:           # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    And the repository's "branch1:Points" index should track the extra attribute "sp"         # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "branch1:Points" index should not track the extra attribute "ip"     # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "branch1:Points" index should have the following features:           # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to replace attributes of an index': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show a log of a repository with a single commit.         # RevList.feature:21
    Given I have a repository                                               # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                             # DefaultStepDefinitions.I_have_staged(String)
    And I have staged "points2"                                             # DefaultStepDefinitions.I_have_staged(String)
    And I have staged "lines1"                                              # DefaultStepDefinitions.I_have_staged(String)
    When I run the command "commit -m TestCommit"                           # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "3 features added"                     # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "rev-list HEAD"                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "TestCommit"                           # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|localrepo|master}" # DefaultStepDefinitions.checkResponseTextContains(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show a log of the commits that have changed the points feature': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to pull from origin after first pull              # Pull.feature:28
    Given I have a repository with a remote                       # DefaultStepDefinitions.I_have_a_repository_with_a_remote()
    When I run the command "pull origin"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "branch --all"                         # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "origin/master"              # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "pull origin"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "master already up to date." # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to delete a branch': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to add attributes to an index                                          # UpdateIndex.feature:82
    Given I have a repository                                                          # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                         # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                      # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"        # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "sp" # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "ip"     # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:       # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    When I run the command "index update --tree Points --extra-attributes sp --add"    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index updated successfully"                      # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 3"                                          # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain the index ID for tree "Points"                     # DefaultStepDefinitions.the_response_contains_indexID(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"        # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"     # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "ip"     # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:       # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to update the bounds of an index': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show a log of a repository with several commits. # RevList.feature:32
    Given I have a repository                                       # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                      # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD"                           # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Commit1"                      # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit2"                       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit3"                       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit4"                       # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show only the last two commits.': Using URIBuilder DefaultTestRepoURIBuilder
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - Depth operations can only be used on a shallow clone.
org.locationtech.geogig.cli.CommandFailedException: Depth operations can only be used on a shallow clone.
	at org.locationtech.geogig.cli.porcelain.Pull.runInternal(Pull.java:81)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor61.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

  Scenario: Try to pull a certain depth from origin                                          # Pull.feature:36
    Given I have a repository with a remote                                                  # DefaultStepDefinitions.I_have_a_repository_with_a_remote()
    When I run the command "pull origin --depth 3"                                           # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Depth operations can only be used on a shallow clone." # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "push" command
    In order to share my changes with a remote repository
    As a Geogig User
    I want to push my commits to that remote
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to push from an empty directory': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to list all branches                 # Branch.feature:97
    Given I have a repository with a remote          # DefaultStepDefinitions.I_have_a_repository_with_a_remote()
    And I run the command "pull origin --rebase"     # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "branch --all"            # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "origin/master" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/branch1" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "origin/HEAD"    # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "* master"       # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to delete a branch without specifying a name': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to replace attributes of an index                                         # UpdateIndex.feature:108
    Given I have a repository                                                             # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                            # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                         # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"           # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "sp"    # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "ip"        # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:          # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    When I run the command "index update --tree Points --extra-attributes sp --overwrite" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index updated successfully"                         # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 3"                                             # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain the index ID for tree "Points"                        # DefaultStepDefinitions.the_response_contains_indexID(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"           # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"        # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"    # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:          # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to update the bounds of an index with incorrect bounds parameter': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show a log of the commits that have changed the points feature # RevList.feature:41
    Given I have a repository                                                     # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                    # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD --path Points"                           # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Commit1"                                    # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit2"                                     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit4"                                     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|localrepo|master~3}"     # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should not contain "Commit3"                                 # DefaultStepDefinitions.the_response_should_not_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to get commits list without starting commit': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to push with no changes': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to delete a branch                               # Branch.feature:106
    Given I have a repository                                    # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                  # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch --delete branch1"             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Deleted branch 'branch1'." # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to delete multiple branches': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to update the bounds of an index                                                     # UpdateIndex.feature:134
    Given I have a repository                                                                        # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                       # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes sp --bounds -45,-45,45,45" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                                    # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index bounds should be "-45,-45,45,45"                        # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"                   # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"               # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:                     # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    When I run the command "index update --tree Points --bounds -20,-45,20,45"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index updated successfully"                                    # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 3"                                                        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain the index ID for tree "Points"                                   # DefaultStepDefinitions.the_response_contains_indexID(String)
    And the repository's "HEAD:Points" index bounds should be "-20,-45,20,45"                        # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"                   # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"               # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:                     # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to change existing attributes without specifying add or overwrite': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show only the last two commits.                            # RevList.feature:51
    Given I have a repository                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD -n 2"                                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should not contain " Commit1"                           # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain "Commit2"                             # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should contain "Commit3"                                 # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|localrepo|master~2}" # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should contain "Commit4"                                 # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show the log, skipping the last 2 commits': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to push from an empty directory                      # Push.feature:6
    Given I am in an empty directory                                 # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "push origin"                             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should start with "Not in a geogig repository" # DefaultStepDefinitions.the_response_should_start_with(String)

  Scenario: Try to delete a branch without specifying a name          # Branch.feature:112
    Given I have a repository                                         # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                       # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch --delete"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "no name specified for deletion" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                        # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to delete the branch you are on': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to update the bounds of an index with incorrect bounds parameter                                    # UpdateIndex.feature:160
    Given I have a repository                                                                                       # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                                      # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes sp --bounds -45,-45,45,45"                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                                                   # DefaultStepDefinitions.the_response_should_contain(String)
    And the repository's "HEAD:Points" index bounds should be "-45,-45,45,45"                                       # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should track the extra attribute "sp"                                  # DefaultStepDefinitions.verifyIndexExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"                              # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:                                    # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
    When I run the command "index update --tree Points --bounds -20,-45,20"                                         # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Invalid bbox parameter: '-20,-45,20'. Expected format: <minx,miny,maxx,maxy>" # DefaultStepDefinitions.the_response_should_contain(String)
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - Extra attributes already exist on index, specify add or overwrite to update.
java.lang.IllegalStateException: Extra attributes already exist on index, specify add or overwrite to update.
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:178)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:41)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.cli.porcelain.index.UpdateIndex.runInternal(UpdateIndex.java:77)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index without specifying a tree': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to get commits list without starting commit        # RevList.feature:61
    Given I have a repository                                      # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                     # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "No starting commit provided" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                     # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show the list of commits, with the changes introduced by each one': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to push to origin': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to delete multiple branches                     # Branch.feature:119
    Given I have a repository                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                 # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch --delete branch1 branch2"    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Deleted branch 'branch1'" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Deleted branch 'branch2'"  # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "branch"                             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "* master"                 # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "branch1"               # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain "branch2"               # DefaultStepDefinitions.the_response_should_not_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to rename a branch': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to change existing attributes without specifying add or overwrite                                   # UpdateIndex.feature:176
    Given I have a repository                                                                                       # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                                      # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"                                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                                                   # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --extra-attributes sp"                                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Extra attributes already exist on index, specify add or overwrite to update." # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index for a non-existent attribute': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show the log, skipping the last 2 commits                    # RevList.feature:68
    Given I have a repository                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                  # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD --skip 2"                              # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Commit1"                                  # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit2"                                   # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|localrepo|master~3}"   # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should not contain "Commit3"                               # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain "Commit4"                               # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain variable "{@ObjectId|localrepo|master}" # DefaultStepDefinitions.checkResponseTextDoesNotContain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to show a log from an empty directory': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to push with no changes                 # Push.feature:11
    Given I clone a remote repository                   # DefaultStepDefinitions.i_clone_a_remote_repository()
    When I run the command "push"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Nothing to push." # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to delete the branch you are on                            # Branch.feature:130
    Given I have a repository                                              # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                            # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "checkout branch1"                              # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch --delete branch1"                        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Cannot delete the branch you are on" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                             # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to rename a branch that you are on': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index without specifying a tree                 # UpdateIndex.feature:184
    Given I have a repository                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                  # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"               # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --extra-attributes sp"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "The following option is required: --tree" # DefaultStepDefinitions.the_response_should_contain(String)
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - A matching index could not be found.
java.lang.IllegalStateException: A matching index could not be found.
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:150)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:41)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.cli.porcelain.index.UpdateIndex.runInternal(UpdateIndex.java:77)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index leaving the extra-attribute param empty': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to show the list of commits, with the changes introduced by each one # RevList.feature:79
    Given I have a repository                                                        # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                       # DefaultStepDefinitions.I_have_several_commits()
    And I run the command "rev-list HEAD --changed"                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Commit1"                                       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit2"                                        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit3"                                        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit4"                                        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Points.1"                                       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Points.2"                                       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Lines.1"                                        # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to show a log from an empty directory                # RevList.feature:91
    Given I am in an empty directory                                 # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "rev-list HEAD"                           # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should start with "Not in a geogig repository" # DefaultStepDefinitions.the_response_should_start_with(String)
    And it should exit with non-zero exit code                       # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
Feature: "rev-parse" command
    As a Geogig User
    I want to determine if I am in a repository
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to print out the repository location"': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to push a symbolic reference': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to rename a branch                                                      # Branch.feature:138
    Given I have a repository                                                           # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                         # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch --rename branch1 superAwesomeBranch"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "renamed branch 'branch1' to 'superAwesomeBranch'" # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "branch -v"                                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "* master"                                         # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "superAwesomeBranch"                                # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit4"                                           # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "branch1"                                       # DefaultStepDefinitions.the_response_should_not_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to rename a branch that you are on to a name that already exists': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index for a non-existent attribute             # UpdateIndex.feature:192
    Given I have a repository                                                  # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                 # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"              # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --attribute fakeAttrib" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "A matching index could not be found."    # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index for a non-existent extra-attribute': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I check if I am in a repository': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to push to origin                                            # Push.feature:16
    Given I clone a remote repository                                        # DefaultStepDefinitions.i_clone_a_remote_repository()
    When I modify and add a feature                                          # DefaultStepDefinitions.I_modify_and_add_a_feature()
    And I run the command "commit -m Commit6"                                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Committed, counting objects"           # DefaultStepDefinitions.the_response_should_contain(String)
    And I run the command "push"                                             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Applying changes of refs/heads/master" # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to rename a branch that you are on                                      # Branch.feature:149
    Given I have a repository                                                           # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                         # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "checkout branch1"                                           # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch --rename superAwesomeBranch"                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "renamed branch 'branch1' to 'superAwesomeBranch'" # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "branch -v"                                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "master"                                           # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "* superAwesomeBranch"                              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit3"                                           # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "branch1"                                       # DefaultStepDefinitions.the_response_should_not_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to rename a branch without being in a repository': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index leaving the extra-attribute param empty              # UpdateIndex.feature:200
    Given I have a repository                                                              # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                             # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"              # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                          # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --extra-attributes"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Expected a value after parameter --extra-attributes" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to overwrite a non-existent extra-attribute': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to print out the repository location"     # RevParse.feature:5
    Given I have a repository                               # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "rev-parse --resolve-geogig-uri" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "localrepo"            # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to check if I'm in a repository when in an empty directory': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to push when the remote has changes': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to rename a branch that you are on to a name that already exists                                      # Branch.feature:161
    Given I have a repository                                                                                         # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                                                                       # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "checkout branch1"                                                                         # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch --rename branch2"                                                                   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Cannot rename branch to 'branch2' because a branch by that name already exists" # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "branch --rename --force branch2"                                                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "renamed branch 'branch1' to 'branch2'"                                          # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "branch -v"                                                                                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "master"                                                                         # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "* branch2"                                                                       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Commit3"                                                                         # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "branch1"                                                                     # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should not contain "Commit4"                                                                     # DefaultStepDefinitions.the_response_should_not_contain(String)

  Scenario: I try to update the index for a non-existent extra-attribute                         # UpdateIndex.feature:208
    Given I have a repository                                                                    # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                   # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"                    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                                # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --extra-attributes fakeAttrib"            # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "FeatureType Points does not define attribute 'fakeAttrib'" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index for the full history when there is only one commit': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to rename a branch without specifying a name': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I check if I am in a repository                  # RevParse.feature:10
    Given I have a repository                                # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "rev-parse --is-inside-work-tree" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "true"                  # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to print the repository location when in an empty directory': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to push a symbolic reference                                 # Push.feature:24
    Given I clone a remote repository                                        # DefaultStepDefinitions.i_clone_a_remote_repository()
    When I modify and add a feature                                          # DefaultStepDefinitions.I_modify_and_add_a_feature()
    And I run the command "commit -m Commit6"                                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Committed, counting objects"           # DefaultStepDefinitions.the_response_should_contain(String)
    And I run the command "push origin HEAD"                                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then it should answer "Push failed: Cannot push to a symbolic reference" # DefaultStepDefinitions.it_should_answer_exactly(String)

  Scenario: I try to overwrite a non-existent extra-attribute                                     # UpdateIndex.feature:216
    Given I have a repository                                                                     # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                                    # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                                 # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --extra-attributes fakeAttrib --overwrite" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "FeatureType Points does not define attribute 'fakeAttrib'"  # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index without updating anything': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to rename a branch without being in a repository  # Branch.feature:176
    Given I am in an empty directory                              # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "branch --rename branch2"              # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Not in a geogig repository" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to rename a branch to the same name': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to check if I'm in a repository when in an empty directory # RevParse.feature:15
    Given I am in an empty directory                                         # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "rev-parse --is-inside-work-tree"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Not in a geogig repository"            # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: Try to push when the remote has changes                                   # Push.feature:32
    Given I clone a remote repository                                                 # DefaultStepDefinitions.i_clone_a_remote_repository()
    And the remote repository has changes                                             # DefaultStepDefinitions.the_remote_repository_has_changes()
    And I modify and add a feature                                                    # DefaultStepDefinitions.I_modify_and_add_a_feature()
    When I run the command "commit -m modified"                                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "1 changed"                                      # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "push"                                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Push failed: The remote repository has changes" # DefaultStepDefinitions.the_response_should_contain(String)

30 Scenarios (30 passed)
205 Steps (205 passed)
1080m46.638s

Tests run: 235, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 64,849.433 sec - in org.locationtech.geogig.cli.test.functional.RunRemoteFunctionalTest
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to use a refspec with another argument': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index for the full history when there is only one commit # UpdateIndex.feature:224
    Given I have a repository                                                            # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                                          # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m "point1 added"                                      # DefaultStepDefinitions.I_run_the_command_X(String)
    When I run the command "index create --tree Points --extra-attributes ip"            # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                        # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --index-history --overwrite"      # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index updated successfully"                        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Size: 1"                                            # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain the index ID for tree "Points"                       # DefaultStepDefinitions.the_response_contains_indexID(String)
    And the repository's "HEAD:Points" index bounds should be "-90,-180,90,180"          # DefaultStepDefinitions.verifyIndexBounds(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "sp"   # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should not track the extra attribute "ip"   # DefaultStepDefinitions.verifyIndexNotExtraAttributes(String,String)
    And the repository's "HEAD:Points" index should have the following features:         # DefaultStepDefinitions.verifyIndexContents(String,DataTable)
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - Nothing to update...
java.lang.IllegalStateException: Nothing to update...
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:200)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:41)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.cli.porcelain.index.UpdateIndex.runInternal(UpdateIndex.java:77)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index with the same extra attribute': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to rename a branch without specifying a name                # Branch.feature:181
    Given I have a repository                                               # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                             # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch --rename"                                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "You must specify a branch to rename." # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                              # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()

  Scenario: Try to rename a branch to the same name          # Branch.feature:188
    Given I have a repository                                # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                              # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "branch --rename branch1 branch1" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Done"                  # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "checkout" command
  In order to view an alternate version of the data
  As a Geogig User
  I want to be able to checkout out branches
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Create a new branch and check it out': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to print the repository location when in an empty directory # RevParse.feature:20
    Given I am in an empty directory                                          # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "rev-parse --resolve-geogig-uri"                   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Not in a geogig repository"             # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to use a refspec with a bad ref': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index without updating anything               # UpdateIndex.feature:241
    Given I have a repository                                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"             # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Nothing to update..."                   # DefaultStepDefinitions.the_response_should_contain(String)
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - Nothing to update...
java.lang.IllegalStateException: Nothing to update...
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:200)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:41)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.cli.porcelain.index.UpdateIndex.runInternal(UpdateIndex.java:77)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index by adding the same extra attribute': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to checkout something while not in a repository': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to use a refspec with another argument                         # RevParse.feature:25
    Given I have a repository                                                    # DefaultStepDefinitions.I_have_a_repository()
    And I stage 6 features                                                       # DefaultStepDefinitions.I_stage_6_features()
    When I run the command "rev-parse STAGE_HEAD/Points.1 --is-inside-work-tree" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "if refSpec is given"                       # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to resolve the geogig uri when not in a repository': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index with the same extra attribute                       # UpdateIndex.feature:249
    Given I have a repository                                                             # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                            # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes ip"             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                         # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --extra-attributes ip --overwrite" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Nothing to update..."                               # DefaultStepDefinitions.the_response_should_contain(String)
[main] ERROR org.locationtech.geogig.cli.GeogigCLI - Nothing to update...
java.lang.IllegalStateException: Nothing to update...
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:200)
	at org.locationtech.geogig.porcelain.index.UpdateIndexOp._call(UpdateIndexOp.java:41)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.cli.porcelain.index.UpdateIndex.runInternal(UpdateIndex.java:77)
	at org.locationtech.geogig.cli.AbstractCommand.run(AbstractCommand.java:68)
	at org.locationtech.geogig.cli.GeogigCLI.executeInternal(GeogigCLI.java:532)
	at org.locationtech.geogig.cli.GeogigCLI.execute(GeogigCLI.java:368)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:159)
	at org.locationtech.geogig.cli.test.functional.CLIContext.runCommand(CLIContext.java:153)
	at org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions.I_run_the_command_X(DefaultStepDefinitions.java:214)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:37)
	at cucumber.runtime.Timeout.timeout(Timeout.java:13)
	at cucumber.runtime.Utils.invoke(Utils.java:31)
	at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
	at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
	at cucumber.runtime.Runtime.runStep(Runtime.java:299)
	at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
	at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to update the index in an empty repository': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Create a new branch and check it out                           # Checkout.feature:6
    Given I have a repository                                              # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                             # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "branch newBranch"                              # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Created branch refs/heads/newBranch" # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "checkout newBranch"                            # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "status"                                         # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "# On branch newBranch"               # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to checkout without specifying a path': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to use a refspec with a bad ref                # RevParse.feature:31
    Given I have a repository                                    # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                   # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "rev-parse bad_ref"                   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "fatal: ambiguous argument" # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: I try to resolve the geogig uri when not in a repository # RevParse.feature:37
    Given I am in an empty directory                                 # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "rev-parse"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Not in a geogig repository"    # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "show-ref" command
    In order to know the branches in a geogig repository
    As a Geogig User
    I want list all references
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'List all references': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to update the index by adding the same extra attribute            # UpdateIndex.feature:257
    Given I have a repository                                                       # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                                      # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "index create --tree Points --extra-attributes sp,ip"    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Index created successfully"                   # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "index update --tree Points --extra-attributes ip --add" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Nothing to update..."                         # DefaultStepDefinitions.the_response_should_contain(String)

  Scenario: I try to update the index in an empty repository            # UpdateIndex.feature:265
    Given I have a repository                                           # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "index update --tree Points"                 # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Can't find feature tree 'Points'" # DefaultStepDefinitions.the_response_should_contain(String)

57 Scenarios (57 passed)
496 Steps (496 passed)
1149m17.516s

Tests run: 553, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 68,958.708 sec - in org.locationtech.geogig.cli.test.functional.RunIndexFunctionalTest

  Scenario: Try to checkout something while not in a repository   # Checkout.feature:15
    Given I am in an empty directory                              # DefaultStepDefinitions.I_am_in_an_empty_directory()
    When I run the command "checkout noBranch"                    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Not in a geogig repository" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                    # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to checkout multiple things at once': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: List all references                                              # ShowRef.feature:6
    Given I have a repository                                                # DefaultStepDefinitions.I_have_a_repository()
    And I have several branches                                              # DefaultStepDefinitions.I_have_several_branches()
    When I run the command "show-ref"                                        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain 3 lines                                 # DefaultStepDefinitions.the_response_should_contain_x_lines(int)
    And the response should contain "master"                                 # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "branch1"                                # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "branch2"                                # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain variable "{@ObjectId|localrepo|master}"  # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should contain variable "{@ObjectId|localrepo|branch1}" # DefaultStepDefinitions.checkResponseTextContains(String)
    And the response should contain variable "{@ObjectId|localrepo|branch2}" # DefaultStepDefinitions.checkResponseTextContains(String)
Feature: "verify-patch" command
    In order to ensure I have a valid patch
    As a Geogig User
    I want to verify the patch
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to verify a patch without specifying a file': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to checkout without specifying a path               # Checkout.feature:21
    Given I have a repository                                       # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "checkout"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "no branch or paths specified" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                      # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to checkout a branch that doesn't exist': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to verify multiple files': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to checkout multiple things at once       # Checkout.feature:27
    Given I have a repository                             # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "branch newBranch"             # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch noBranch"               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "checkout noBranch newBranch"   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "too many arguments" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code            # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to make a change but don't commit and then checkout a different branch without forcing': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to verify a patch without specifying a file  # VerifyPatch.feature:6
    Given I have a repository                                  # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "verify-patch"                      # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "No patch file specified" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to verify a patch with a bad file path': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to checkout a branch that doesn't exist                   # Checkout.feature:35
    Given I have a repository                                             # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "checkout noBranch"                            # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "'noBranch' not found in repository" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                            # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to make a change but don't commit and then checkout a different branch with forcing': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to verify multiple files                                 # VerifyPatch.feature:11
    Given I have a repository                                              # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "verify-patch file1 file2"                      # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Only one single patch file accepted" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I have a patch file that contains rejects': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to make a change but don't commit and then checkout a different branch without forcing                          # Checkout.feature:41
    Given I have a repository                                                                                                   # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                                                                                 # DefaultStepDefinitions.I_have_staged(String)
    When I run the command "commit -m Commit1"                                                                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch newBranch"                                                                                    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Created branch refs/heads/newBranch"                                                      # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "checkout newBranch"                                                                                 # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have unstaged "points2"                                                                                               # DefaultStepDefinitions.I_have_unstaged(String)
    And I run the command "checkout master"                                                                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Working tree and index are not clean. To overwrite local changes, use the --force option" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                                                                                  # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to make a change to a feature and revert back to an old version using path filtering': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to verify a patch with a bad file path          # VerifyPatch.feature:16
    Given I have a repository                                     # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "verify-patch file1"                   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Patch file cannot be found" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I have a patch file that is valid': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to make a change but don't commit and then checkout a different branch with forcing # Checkout.feature:53
    Given I have a repository                                                                       # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                                                     # DefaultStepDefinitions.I_have_staged(String)
    When I run the command "commit -m Commit1"                                                      # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch newBranch"                                                        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Created branch refs/heads/newBranch"                          # DefaultStepDefinitions.the_response_should_contain(String)
    When I run the command "checkout newBranch"                                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have unstaged "points2"                                                                   # DefaultStepDefinitions.I_have_unstaged(String)
    And I run the command "checkout -f master"                                                      # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "status"                                                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should not contain "# Changes not staged for commit:"                         # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should contain "# On branch master"                                            # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to get rid of changes that I have made with path filtering with multiple paths': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I have a patch file that contains rejects              # VerifyPatch.feature:21
    Given I have a repository                                      # DefaultStepDefinitions.I_have_a_repository()
    And I have a patch file                                        # DefaultStepDefinitions.I_have_a_patch_file()
    When I run the command "verify-patch ${currentdir}/test.patch" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Patch cannot be applied"     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain 10 lines                       # DefaultStepDefinitions.the_response_should_contain_x_lines(int)

  Scenario: I have a patch file that is valid                      # VerifyPatch.feature:28
    Given I have a repository                                      # DefaultStepDefinitions.I_have_a_repository()
    And I stage 6 features                                         # DefaultStepDefinitions.I_stage_6_features()
    And I have a patch file                                        # DefaultStepDefinitions.I_have_a_patch_file()
    When I run the command "verify-patch ${currentdir}/test.patch" # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Patch can be applied"        # DefaultStepDefinitions.the_response_should_contain(String)
Feature: "walk-graph" command
    In order to walk through objects in the history tree
    As a Geogig User
    I want to see the object information of each object in the tree
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to walk the graph with no arguments': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to make a change to a feature and revert back to an old version using path filtering # Checkout.feature:66
    Given I have a repository                                                                        # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                                                      # DefaultStepDefinitions.I_have_staged(String)
    When I run the command "commit -m Commit1"                                                       # DefaultStepDefinitions.I_run_the_command_X(String)
    And I modify a feature                                                                           # DefaultStepDefinitions.I_modify_a_feature()
    And I run the command "checkout -p Points/Points.1"                                              # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "status"                                                                   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "nothing to commit"                                             # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to bring a feature from a different branch into this branch': Using URIBuilder DefaultTestRepoURIBuilder
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to walk the graph with bad arguments': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to get rid of changes that I have made with path filtering with multiple paths # Checkout.feature:75
    Given I have a repository                                                                  # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                                                # DefaultStepDefinitions.I_have_staged(String)
    When I run the command "commit -m Commit1"                                                 # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "lines1"                                                                 # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit2"                                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    And I modify a feature                                                                     # DefaultStepDefinitions.I_modify_a_feature()
    And I have unstaged "lines2"                                                               # DefaultStepDefinitions.I_have_unstaged(String)
    And I run the command "checkout -p Lines Points/Points.1"                                  # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "status"                                                             # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "nothing to commit"                                       # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to revert using both --ours and --theirs': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to walk the graph with no arguments         # WalkGraph.feature:6
    Given I have a repository                                 # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "walk-graph"                       # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Reference not provided" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to walk the graph': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to bring a feature from a different branch into this branch # Checkout.feature:87
    Given I have a repository                                               # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points1"                                             # DefaultStepDefinitions.I_have_staged(String)
    When I run the command "commit -m Commit1"                              # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "points2"                                             # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit2"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "points3"                                             # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit3"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "branch -c newBranch"                             # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "lines1"                                              # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit4"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "lines2"                                              # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit5"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I have staged "lines3"                                              # DefaultStepDefinitions.I_have_staged(String)
    And I run the command "commit -m Commit6"                               # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "checkout master"                                 # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "checkout newBranch -p Lines/Lines.1"             # DefaultStepDefinitions.I_run_the_command_X(String)
    And I run the command "status"                                          # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Lines/Lines.1"                        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "added"                                 # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "# Changes not staged for commit:"      # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to revert a feature where the version you want doesn't exist': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to walk the graph with bad arguments         # WalkGraph.feature:12
    Given I have a repository                                  # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                                 # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "walk-graph garbage"                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Can't resolve reference" # DefaultStepDefinitions.the_response_should_contain(String)
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'I try to walk the graph with verbose enabled': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to revert using both --ours and --theirs                   # Checkout.feature:109
    Given I have a repository                                              # DefaultStepDefinitions.I_have_a_repository()
    When I run the command "checkout -p Points/Points.1 --ours --theirs"   # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "Cannot use both --ours and --theirs" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                             # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to revert an unmerged feature': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: I try to walk the graph               # WalkGraph.feature:18
    Given I have a repository                     # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                    # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "walk-graph master"    # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "TREE"       # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "FEATURETYPE" # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "FEATURE"     # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should not contain "Points"  # DefaultStepDefinitions.the_response_should_not_contain(String)
    And the response should contain 12 lines      # DefaultStepDefinitions.the_response_should_contain_x_lines(int)

  Scenario: I try to walk the graph with verbose enabled # WalkGraph.feature:28
    Given I have a repository                            # DefaultStepDefinitions.I_have_a_repository()
    And I have several commits                           # DefaultStepDefinitions.I_have_several_commits()
    When I run the command "walk-graph -v master"        # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "TREE"              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "FEATURETYPE"        # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "FEATURE"            # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Points"             # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain "Lines"              # DefaultStepDefinitions.the_response_should_contain(String)
    And the response should contain 12 lines             # DefaultStepDefinitions.the_response_should_contain_x_lines(int)

66 Scenarios (66 passed)
408 Steps (408 passed)
1349m22.752s

Tests run: 474, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 80,964.052 sec - in org.locationtech.geogig.cli.test.functional.RunPlumbingFunctionalTest

  Scenario: Try to revert a feature where the version you want doesn't exist                # Checkout.feature:115
    Given I have a repository                                                               # DefaultStepDefinitions.I_have_a_repository()
    And I have staged "points2"                                                             # DefaultStepDefinitions.I_have_staged(String)
    When I modify a feature                                                                 # DefaultStepDefinitions.I_modify_a_feature()
    And I run the command "checkout -p Points/Points.1"                                     # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "'Points/Points.1' didn't match a feature in the tree" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                                              # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to revert a feature to the --theirs version and fix the conflict': Using URIBuilder DefaultTestRepoURIBuilder

  Scenario: Try to revert an unmerged feature                           # Checkout.feature:123
    Given I have a repository                                           # DefaultStepDefinitions.I_have_a_repository()
    And I have a merge conflict state                                   # DefaultStepDefinitions.I_have_a_merge_conflict_state()
    When I run the command "checkout -p Points/Points.1"                # DefaultStepDefinitions.I_run_the_command_X(String)
    Then the response should contain "path Points/Points.1 is unmerged" # DefaultStepDefinitions.the_response_should_contain(String)
    And it should exit with non-zero exit code                          # DefaultStepDefinitions.it_should_exit_with_non_zero_exit_code()
[main] INFO org.locationtech.geogig.cli.test.functional.DefaultStepDefinitions - 'Try to checkout a remote branch': Using URIBuilder DefaultTestRepoURIBuilder