protected override void Run(string filename)
 {
     using (SvnClientWrapper client = new SvnClientWrapper()) {
         string propertyValue = client.GetPropertyValue(Path.GetDirectoryName(filename), "svn:ignore");
         if (propertyValue != null)
         {
             ProjectWatcher watcher       = WatchProjects();
             string         shortFileName = Path.GetFileName(filename);
             StringBuilder  b             = new StringBuilder();
             using (StringReader r = new StringReader(propertyValue)) {
                 string line;
                 while ((line = r.ReadLine()) != null)
                 {
                     if (!string.Equals(line, shortFileName, StringComparison.OrdinalIgnoreCase))
                     {
                         b.AppendLine(line);
                     }
                 }
             }
             client.SetPropertyValue(Path.GetDirectoryName(filename), "svn:ignore", b.ToString());
             MessageService.ShowMessageFormatted("${res:AddIns.Subversion.ItemRemovedFromIgnoreList}", shortFileName);
             watcher.Callback();
         }
     }
 }