使用:VisualSVN服务器,TortoiseSVN,AnkhSVN
我使用TortoiseSVN为所有.NEt项目和支持的源/资源进行了初始存储库加载。
我打算将tortoiseSVN用于所有常规的源代码控制操作,并将AnkhSVN用于Visual Studio解决方案。
我的问题是我的存储库现在具有我不需要的特定于开发人员/计算机的文件/目录。
我知道,如果您从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
我如何才能做到而不必一一列举?
附加信息:
一个想法是Micha提出了HERE,但必须在转移到存储库之前进行。
我总是建议开发人员在使用VisualStudio项目时使用AnkhSVN,而不要使用TortoiseSVN。AnkhSVN不允许您将私人用户文件检入VIsualStudio项目。
要摆脱这些文件,您必须检出存储库才能删除单个文件。现在有解决此问题的方法。抱歉...
首先,您需要一个不应包含在Subversion存储库中的VisualStudio文件列表。
然后,您应该获得Subversion客户端的Windows命令行版本。您可以从SlikSVN获得此信息。基于命令行的Subverison客户端将允许您以编程方式删除不需要的文件,而无需一次处理一个。
例如,如果使用在Windows系统上提供类似GNU / Linux的环境的Cygwin,则可以执行以下操作:
$ 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
或者,您可以编写一个简短的Perl,Python甚至PowerShell程序来为您执行此操作。
如果您不了解PowerShell,那么在PowerShell中可能是第一个不错的项目。自XP以来的所有Windows版本均随附PowerShelL。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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句