Reputation: 5918
Code
using (var svnClient = new SvnClient())
{
Collection<SvnLogEventArgs> svnLogEntries;
svnClient.GetLog(new Uri("https://DbDiff.svn.codeplex.com/svn"), out svnLogEntries);
foreach (var svnLogEntry in svnLogEntries)
{
foreach (var changedPath in svnLogEntry.ChangedPaths)
{
Debug.WriteLine("NodeKind: " + changedPath.NodeKind + ", Path: " + changedPath.Path);
}
}
}
Output
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/SqlCommand11.xml
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/SqlCommand9.xml
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/SqlCommand11.xml
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/SqlCommand7.xml
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/SqlCommand8.xml
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/SqlCommand9.xml
NodeKind: Unknown, Path: /DbDiffCommon/Model/DatabaseConnectString.cs
NodeKind: Unknown, Path: /DbDiffCommon/Helper/Enums.cs
NodeKind: Unknown, Path: /DbDiffWinClient/Forms/frmRegisterServer.resx
NodeKind: Unknown, Path: /DbDiffWinClient/Forms/frmConnectDb.resx
NodeKind: Unknown, Path: /DbDiffWinClient/Forms/frmRegisterServer.cs
NodeKind: Unknown, Path: /DbDiffWinClient/Forms/frmConnectDb.cs
NodeKind: Unknown, Path: /DbDiffCommon/Model/RegisteredServer.cs
NodeKind: Unknown, Path: /DbDiffWinClient/ChangeLog.txt
NodeKind: Unknown, Path: /DbDiffWinClient/Forms/DbItems/ucTableDiffInfo.cs
NodeKind: Unknown, Path: /DbDiffCommon/DataAccess/DatabaseDataSets.cs
...
Why is changedPath.NodeKind
always "Unknown"? I would expect it to be "File" for the output above..
Upvotes: 1
Views: 915
Reputation: 5918
Looks like I can get the correct NodeKind using SvnClient.GetInfo but calling this for every changed path is very slow..
using (var svnClient = new SvnClient())
{
Collection<SvnLogEventArgs> svnLogEntries;
string repoUri = "https://DbDiff.svn.codeplex.com/svn";
svnClient.GetLog(new Uri(repoUri), out svnLogEntries);
foreach (var svnLogEntry in svnLogEntries)
{
foreach (var changedPath in svnLogEntry.ChangedPaths)
{
SvnInfoEventArgs svnInfo;
svnClient.GetInfo(new SvnUriTarget(repoUri + changedPath.Path, svnLogEntry.Revision), out svnInfo);
Debug.WriteLine("NodeKind: " + svnInfo.NodeKind + ", Path: " + changedPath.Path);
}
}
}
Upvotes: 1
Reputation: 8968
Not all servers send nodeKind for "log" request. See this discussion: http://old.nabble.com/SVNNodeKind-%3D-UNKNOWN-td34018265.html#a34018265
Upvotes: 2