我正在执行许多python脚本,所有这些脚本都使用相同(大)框架的部分。我使用这个框架的各种版本,都在版本控制之下,并且由于每个测试使用不同的部分,我决定只检查我需要的部分会更快。换句话说,我期待使用稀疏结账。我的目的是逐步检查一个空的工作副本,并通过更新更新以随时间收集(几乎)完整的框架。我正在使用带有modulefinder的python脚本来决定每个项目所需的框架部分。所以我得到了以下内容:
Project Foo,框架树:
\R100
\Framework
\Module_1
\Submodule_1
\Submodule_5
\Module_2
\Module_3
结账常规:
svn checkout repo.url/Framework@100 local\R100\Framework --depth empty
svn update \local\R100\Framework --depth immediates --revision 100
svn update \local\R100\Framework\Module_1 --depth immediates --revision 100
svn update \local\R100\Framework\Module_1\Submodule_1 --depth immediates --revision 100
svn update \local\R100\Framework\Module_1\Submodule_5 --depth immediates --revision 100
svn update \local\R100\Framework\Module_2 --depth immediates --revision 100
svn update \local\R100\Framework\Module_3 --depth immediates --revision 100
项目栏:
\R100
\Framework
\Module_1
\Submodule_1
\Submodule_2
\Module_2
\Module_3
结账常规:
svn checkout repo.url/Framework@100 local\R100\Framework --depth empty
svn update \local\R100\Framework --depth immediates --revision 100
svn update \local\R100\Framework\Module_1 --depth immediates --revision 100
svn update \local\R100\Framework\Module_1\Submodule_1 --depth immediates --revision 100
svn update \local\R100\Framework\Module_1\Submodule_2 --depth immediates --revision 100
svn update \local\R100\Framework\Module_2 --depth immediates --revision 100
svn update \local\R100\Framework\Module_3 --depth immediates --revision 100
项目Moo:
\R100
\Framework
\Module_1
\Submodule_1
\Submodule_3
\Module_6
\Module_9
结账常规:
svn checkout repo.url/Framework@100 local\R100\Framework --depth empty
svn update \local\R100\Framework --depth immediates --revision 100
svn update \local\R100\Framework\Module_1 --depth immediates --revision 100
svn update \local\R100\Framework\Module_1\Submodule_1 --depth immediates --revision 100
svn update \local\R100\Framework\Module_1\Submodule_3 --depth immediates --revision 100
svn update \local\R100\Framework\Module_6 --depth immediates --revision 100
svn update \local\R100\Framework\Module_9 --depth immediates --revision 100
问题是,每次连续更新都会从删除现有文件开始,而不是仅检出此工作副本文件的新内容。有没有办法克服这个问题?我意识到设置更新/结帐深度是原因,但我想克服这个告诉svn客户端“很好,那些文件和文件夹不再在结账范围内,但因为它们已经在这里,所以无论如何都要保留它们”
答案 0 :(得分:0)
你决定遵循的方法不会很好地工作,我期待很多痛苦这样的工作副本。 SVN提供了考虑到这些案例而设计的工具。
在我看来,你特别想念vendor branches或svn:externals。您可以在SVN存储库中研究和实现这些功能之一或两者:
svn:externals
来构建多个项目或结帐的工作副本。