Search code examples
c#svnsharpsvn

How to detect that a file is ignored?


Using SharpSvn, I am trying to get an accurate representation of the status of a file.

When I execute svnClient.Status on a versioned file without local changes, I get no status back.
When I execute svnClient.Status on a non-versioned, ignored file, I also get no status back.

How to tell those two apart? How do I find out that a certain file is ignored?


Solution

  • Setting options.RetrieveAllEntries to true solves this, if - and only if - options.RetrieveRemoteStatus is set to false. Otherwise, I don't get a status for ignored files.

    It will return status "Normal" for versioned, non-modified files and status "Ignored" for non-versioned, ignored files.

    var options = new SvnStatusArgs();
    Collection<SvnStatusEventArgs> statuses;
    options.RetrieveRemoteStatus = onlineMode;
    options.RetrieveAllEntries = true;
    
    client.GetStatus(file, options, out statuses);