Skip to content

Commit f66820a

Browse files
committed
Enhance .gitignore capabilities test coverage
1 parent b9ba915 commit f66820a

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

‎LibGit2Sharp.Tests/IgnoreFixture.cs‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,39 @@ public void CanCheckIfAPathIsIgnoredUsingThePreferedPlatformDirectorySeparatorCh
8383
Assert.True(repo.Ignore.IsPathIgnored(string.Format(@"NewFolder{0}NewFolder{0}File.txt",Path.DirectorySeparatorChar)));
8484
}
8585
}
86+
87+
[Fact]
88+
publicvoidHonorDeeplyNestedGitIgnoreFile()
89+
{
90+
stringpath=InitNewRepository();
91+
using(varrepo=newRepository(path))
92+
{
93+
charpd=Path.DirectorySeparatorChar;
94+
95+
vargitIgnoreFile=string.Format("deeply{0}nested{0}.gitignore",pd);
96+
Touch(repo.Info.WorkingDirectory,gitIgnoreFile,"SmtCounters.h");
97+
98+
repo.Stage(gitIgnoreFile);
99+
repo.Commit("Add .gitignore",Constants.Signature,Constants.Signature);
100+
101+
Assert.False(repo.RetrieveStatus().IsDirty);
102+
103+
varignoredFile=string.Format("deeply{0}nested{0}SmtCounters.h",pd);
104+
Touch(repo.Info.WorkingDirectory,ignoredFile,"Content");
105+
Assert.False(repo.RetrieveStatus().IsDirty);
106+
107+
varfile=string.Format("deeply{0}nested{0}file.txt",pd);
108+
Touch(repo.Info.WorkingDirectory,file,"Yeah!");
109+
110+
varrepositoryStatus=repo.RetrieveStatus();
111+
Assert.True(repositoryStatus.IsDirty);
112+
113+
Assert.Equal(FileStatus.Ignored,repositoryStatus[ignoredFile].State);
114+
Assert.Equal(FileStatus.NewInWorkdir,repositoryStatus[file].State);
115+
116+
Assert.True(repo.Ignore.IsPathIgnored(ignoredFile));
117+
Assert.False(repo.Ignore.IsPathIgnored(file));
118+
}
119+
}
86120
}
87121
}

0 commit comments

Comments
(0)