问题
Using SharpSvn, how can I get a list of files that need to be committed (the list that you would see if you right click on a folder with tortoisesvn and hit commit)
I tried this:
SharpSvn.SvnClient client = new SharpSvn.SvnClient();
Collection<SvnListChangeListEventArgs> list;
bool result = client.GetChangeList(@"C:\MyProjectPath", out list);
But it seems to be returning a list of every file in the project instead of just the modified ones.
回答1:
The function you're using is for the changelist feature. To see what files are changed use the GetStatus or Status calls. In this case you want to check the LocalContentStatus
and LocalPropertyStatus
回答2:
Sander is correct, here is a more complete example of listing modified files:
var statusArgs = new SvnStatusArgs();
statusArgs.Depth = SvnDepth.Infinity;
statusArgs.RetrieveAllEntries = true;
Collection<SvnStatusEventArgs> statuses;
svnClient.GetStatus(@"C:\SVN\stuff\", statusArgs, out statuses);
foreach (SvnStatusEventArgs statusEventArgs in statuses)
{
if (statusEventArgs.LocalContentStatus == SvnStatus.Modified)
Console.WriteLine("Modified file: " + statusEventArgs.Path);
}
来源:https://stackoverflow.com/questions/4502211/how-to-get-list-of-uncommitted-files-from-sharpsvn