@@ -19,7 +19,8 @@ describe GitVersion do
1919
2020 version = git.get_new_version
2121
22- version.should eq(" 1.0.1" )
22+ # no commit since latest tag, expect no version bump
23+ version.should eq(" 1.0.0" )
2324
2425 tmp.exec %( git checkout -b dev)
2526 tmp.exec %( git commit --no-gpg-sign --allow-empty -m "2")
@@ -132,7 +133,8 @@ describe GitVersion do
132133
133134 version = git.get_new_version
134135
135- version.should eq(" 1.0.1" )
136+ # no new commit in master, expect no version bump
137+ version.should eq(" 1.0.0" )
136138
137139 tmp.exec %( git merge my-fancy.branch)
138140
@@ -148,7 +150,8 @@ describe GitVersion do
148150
149151 version = git.get_new_version
150152
151- version.should eq(" 2.0.1" )
153+ # no new commit in master, expect no version bump
154+ version.should eq(" 2.0.0" )
152155
153156 tmp.exec %( git merge --ff-only my-fancy.branch2)
154157
@@ -164,7 +167,8 @@ describe GitVersion do
164167
165168 version = git.get_new_version
166169
167- version.should eq(" 3.0.1" )
170+ # no new commit in master, expect no version bump
171+ version.should eq(" 3.0.0" )
168172
169173 tmp.exec %( git merge --no-gpg-sign --no-ff my-fancy.branch3)
170174
@@ -737,6 +741,44 @@ describe GitVersion do
737741 tmp.cleanup
738742 end
739743 end
744+
745+ it " should not bump version if no commit matches log-path filter" do
746+ tmp = InTmp .new
747+
748+ begin
749+ git = GitVersion ::Git .new(" dev" , " master" , " feature:" , " breaking:" , tmp.@tmpdir , " dir1-" , " dir1/" )
750+
751+ tmp.exec %( git init)
752+ tmp.exec %( git checkout -b master)
753+
754+ # Create dir1 and tag dir1-1.0.0
755+ base_dir = " dir1"
756+ tmp.exec %( mkdir #{ base_dir } && touch #{ base_dir } /dummy_file)
757+ tmp.exec %( git add #{ base_dir } /)
758+ tmp.exec %( git commit --no-gpg-sign -m "feature: 1")
759+ tmp.exec %( git tag "dir1-1.0.0")
760+
761+ # Create dir2 and tag dir2-1.0.0
762+ base_dir = " dir2"
763+ tmp.exec %( mkdir #{ base_dir } && touch #{ base_dir } /dummy_file)
764+ tmp.exec %( git add #{ base_dir } /)
765+ tmp.exec %( git commit --no-gpg-sign -m "feature: 2")
766+ tmp.exec %( git tag "dir2-1.0.0")
767+
768+ # Commit feature in dir2
769+ base_dir = " dir2"
770+ tmp.exec %( mkdir -p #{ base_dir } && touch #{ base_dir } /dummy_file_2)
771+ tmp.exec %( git add #{ base_dir } /)
772+ tmp.exec %( git commit --no-gpg-sign -m "feature: 3")
773+
774+ # git-version should not bump version for dir1
775+ version = git.get_new_version
776+ version.should eq(" dir1-1.0.0" )
777+ ensure
778+ tmp.cleanup
779+ end
780+ end
781+
740782 it " should truncate long branch names in tags" do
741783 tmp = InTmp .new
742784
@@ -750,7 +792,13 @@ describe GitVersion do
750792
751793 version = git.get_new_version
752794 hash = git.current_commit_hash
753- version.should eq(" 100.100.101-veryveryveryverylongbranchname.0.#{ hash } " )
795+ version.should eq(" 100.100.100-veryveryveryverylongbranchname.0.#{ hash } " )
796+
797+ tmp.exec %( git commit -m "commit" --allow-empty)
798+
799+ version = git.get_new_version
800+ hash = git.current_commit_hash
801+ version.should eq(" 100.100.101-veryveryveryverylongbranchname.1.#{ hash } " )
754802 ensure
755803 tmp.cleanup
756804 end
0 commit comments