Find files not added to subversion

孤者浪人 提交于 2019-11-27 22:02:39

You could use SharpSvn for this, and write something like:

SvnClient client = GetClient();

client.Status(workingCopyPath, (o, e) =>
{
    if(e.LocalContentStatus == SvnStatus.NotVersioned)
    {
        Console.WriteLine("Not versioned: " + e.FullPath);
    }
});

Edit: this will also respect your ignore file and svn:ignore properties.

svn status | grep -e ^?

It's unix command, but I'm pretty sure, than if you execute commit from Tortoise, you are able to see new files with question mark, that are files which are not under svn control

Jaime Soto

This question is tagged as tortoisesvn so I assume your team is using TortoiseSVN as a client. As @Joe Enos suggested, TortoiseSVN displays the unversioned files that do not match the entries in svn:ignore. I wonder if adding another tool may help since the team should already be checking for unversioned files with TortoiseSVN.

Otherwise, a C# program seems like overkill for finding unversioned files in an SVN working directory. As @Josh Kelley suggested, you can just use a command-line SVN client (CollabNet or Slik SVN, for example) and grep.

You can also use the findstr command available in the Windows command line:

svn status | findstr "^?"

The code is compiled and deployed (sorry, no QA team)

Isn't this the real problem here? If you're shipping untested code to a client, then of course the first person to discover any problems will be the client. Perhaps (in addition to fixing this particular problem) what you need to do is add at least some basic automated (or manual) functionality testing into your build process, sometime between when the code is compiled and when it is handed over to the client.

You could install the CollabNet Subversion Command-Line Client, then run its svn command as a subprocess, pipe its input into your program, and search for lines that have ? as their first character (indicating unknown / not checked into Subversion and not ignored). You can use CollabNet's command-line client along with TortoiseSVN.

That's the same thing that svn status | grep -e ^? does, but it doesn't depend on Unix tools.

Alternatively, you could just install Cygwin and have the full range of Unix tools at your disposal.

Also you can change one settings which will show folders having new added files as modified.

Settings->Icon Overlays->Show overlay for unversioned item

Right-click in folder, then navigate TortoiseSVN - Settings. Click on 'Icon Overlays'. On right-side check - 'Unversioned files mark parent folder as modified'

This works on windows7, not tried with other OS

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!