e4r*_*dog 5 svn tortoisesvn ankhsvn visualsvn-server
使用:VisualSVN服务器,TortoiseSVN,AnkhSVN
我使用TortoiseSVN为我所有的.NEt项目和我想要保留的源/资源创建初始存储库.
我计划在Visual Studio解决方案中使用tortoiseSVN进行所有常规源控制操作和AnkhSVN.
我的问题是我的存储库现在有我不需要的开发人员/机器特定的文件/目录.
我知道,如果您从Visual Studio中将解决方案添加到存储库,则使用Microsoft的SCC API不会包含Ankhsvn.
所以我现在需要的是从svn存储库批量删除必要的文件/目录.
这些包括(但我可以添加更多):
thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk *.msi* .res *.pch *.suo *.exp *.*~ *.~* ~*.* cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj Generated Logs *.csproj.user *.user
Run Code Online (Sandbox Code Playgroud)
我怎么能一个接一个地去做呢?
附加信息:
一个想法是Micha在这里提出的建议,但必须在迁移到存储库之前进行.
我总是建议开发人员在使用 VisualStudio 项目时使用 AnkhSVN 而不是使用 TortoiseSVN。AnkhSVN 不允许您将私人用户文件签入您的 VIsualStudio 项目。
要删除这些文件,您必须签出存储库才能删除单个文件。现在有办法解决这个问题。对不起...
首先,您需要一个不应位于 Subversion 存储库中的VisualStudio 文件列表。
然后,您应该获得 Windows 命令行版本的 Subversion 客户端。您可以从SlikSVN获取此信息。基于命令行的 Subverison 客户端将允许您以编程方式删除不需要的文件,而无需一次删除一个文件。
例如,如果您使用Cygwin,它在 Windows 系统上提供类似 GNU/Linux 的环境,您可以执行以下操作:
$ svn checkout $repo-project $workdir
$ find $workdir \( -name "*.suo" -o -name "*.csproj.user" \) -exec svn delete {} \;
$ svn commit -m"Removing all VisualStudio private files from repo" $workdir
Run Code Online (Sandbox Code Playgroud)
或者您可以编写一个简短的 Perl、Python 甚至 PowerShell 程序来为您完成此操作。
如果您不了解 PowerShell,那么这可能是在 PowerShell 中完成的第一个项目。自 XP 以来的所有 Windows 版本都附带 PowerShellL。PowerShell 是一种非常强大的脚本语言——比 Windows Batch 强大得多,甚至比 Bash shell 脚本更强大。哎呀,它的脚本编写能力相当于 Python 或 Perl。我根本不明白为什么它很少在基于 Windows 的开发站点中使用。然而,如果您确实学习了它,您会发现它是处理各种 Windowy 内容的强大工具。PowerShell 与 Windows 注册表、IIS 和各种系统服务集成。
删除所有这些用户文件后,您可以使用此 Subversion预提交将它们永远保留在您的 Subversion 存储库之外。控制文件条目将是这样的:
[FILE You cannot add private user files into a VisualStudio project]
match = VSproject/.*/\.(suo|user|webinfo|dll|exe)$
access = no-add
users = @ALL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |