Tortoisesvn 签出/更新而不删除磁盘上的现有(版本控制)文件



我正在执行许多python脚本,所有脚本都使用同一(大)框架的一部分。我使用这个框架的各种版本,都在版本控制下,由于每个测试都使用它的不同部分,我决定只签出我需要的部分会更快。换句话说,我期望使用稀疏结帐。我的目的是逐步签出一个空的工作副本,并逐个更新以随着时间的推移收集(几乎)完整的框架。我正在使用带有modulefinder的python脚本来决定每个项目需要框架的哪些部分。所以我得到以下:

Foo项目,框架树:

R100
Framework
Module_1
Submodule_1
Submodule_5
Module_2
Module_3

结帐程序:

svn checkout repo.url/Framework@100 localR100Framework --depth empty
svn update localR100Framework --depth immediates --revision 100
svn update localR100FrameworkModule_1 --depth immediates --revision 100
svn update localR100FrameworkModule_1Submodule_1 --depth immediates --revision 100
svn update localR100FrameworkModule_1Submodule_5 --depth immediates --revision 100
svn update localR100FrameworkModule_2 --depth immediates --revision 100
svn update localR100FrameworkModule_3 --depth immediates --revision 100

项目栏:

R100
Framework
Module_1
Submodule_1
Submodule_2
Module_2
Module_3

结帐程序:

svn checkout repo.url/Framework@100 localR100Framework --depth empty
svn update localR100Framework --depth immediates --revision 100
svn update localR100FrameworkModule_1 --depth immediates --revision 100
svn update localR100FrameworkModule_1Submodule_1 --depth immediates --revision 100
svn update localR100FrameworkModule_1Submodule_2 --depth immediates --revision 100
svn update localR100FrameworkModule_2 --depth immediates --revision 100
svn update localR100FrameworkModule_3 --depth immediates --revision 100

穆计划:

R100
Framework
Module_1
Submodule_1
Submodule_3
Module_6
Module_9

结帐程序:

svn checkout repo.url/Framework@100 localR100Framework --depth empty
svn update localR100Framework --depth immediates --revision 100
svn update localR100FrameworkModule_1 --depth immediates --revision 100
svn update localR100FrameworkModule_1Submodule_1 --depth immediates --revision 100
svn update localR100FrameworkModule_1Submodule_3 --depth immediates --revision 100
svn update localR100FrameworkModule_6 --depth immediates --revision 100
svn update localR100FrameworkModule_9 --depth immediates --revision 100

问题是,每次连续更新都从删除现有文件开始,而不是只签出此工作副本文件的新文件。有什么办法可以克服吗?我意识到设置更新/签出深度是原因,但我想克服这一点,告诉 svn 客户端"很好,这些文件和文件夹不再在签出范围内,但由于它们已经在这里,无论如何都要保留它们">

您决定遵循的方法不会很好地工作,我希望这样的工作副本会有很多痛苦的女巫。 SVN提供了针对这种情况而设计的工具。

在我看来,您特别缺少供应商分支或 svn:externals。您可以在SVN存储库中研究和实现这些功能之一或两者兼而有之:

  • 使用供应商分支维护依赖于外部代码的自定义代码库。
  • 在SVN中使用带有标签的svn:externals来构建多个项目或签出的工作副本。

最新更新