Pergunta

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.

Foi útil?

Solução

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

Outras dicas

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top