开发者

SVN Delete with wildcard?

开发者 https://www.devze.com 2022-12-27 05:22 出处:网络
I\'m migrating a VSS repository to SVN and inadvertently included all of the _vti_cnf, *.scc files in the first check-in. I\'d like to remove these from SVN. (Not 开发者_JAVA技巧permanently, of course

I'm migrating a VSS repository to SVN and inadvertently included all of the _vti_cnf, *.scc files in the first check-in. I'd like to remove these from SVN. (Not 开发者_JAVA技巧permanently, of course - just in the HEAD). The application in question is quite large, and finding and deleting these files on a folder-by-folder basis will take forever.

Suggestions? There must be some obvious way to do this, but the proximity of the weekend is interfering with my higher brain functions.


Jonas' answer should woirk fine. Maybe you are getting conflicts because you're deleting them on file system level, bypassing Subversion's control?

If you can use TortoiseSVN, the following works for me (=I get the necessary commands in the context menu):

  • Open a search window
  • Search for all the unwanted files
  • Select them in the list
  • Right-click
  • Select "TortoiseSVN" > "Delete"
  • Commit the changes

Done!

Usual disclaimer when giving version control advice, be careful, have backups, I'm not taking any responsibility etc. etc.


In a windows command prompt you can perform a recursive file search with 'for' and invoke 'svn delete' for each matching file,

C:\> for /r %i in (abc*def.sql) do svn delete %i

NB: Remember that in a batch file you'll need to replace %i with %%i.

To find out about all the other flags you can use with 'for' (it's the swiss army knife of searching and parsing) use the help command,

C:\> help for


If you are running linux or Mac OS, you could go with find, like

$ find . -type d -name "_vti_cnf" -exec svn delete {} \;

I'm no more a SVN user (and never used VSS) though, so you may want to modify the command line and/or try with -print first.


Can't you just grep (or some other operation that finds files) the *.scc files in a checked out version, delete them, and then commit?


Or use PowerShell:

Foreach ($file in Get-Childitem * -include "*.txt")
{
    svn del $file.name
}

where *.txt is the wildcard and * specifies current directory where to look for the files to be deleted

0

精彩评论

暂无评论...
验证码 换一张
取 消