首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >svn签出/更新,不删除磁盘上现有的(版本)文件

svn签出/更新,不删除磁盘上现有的(版本)文件
EN

Stack Overflow用户
提问于 2017-06-15 20:03:30
回答 1查看 183关注 0票数 2

我正在执行许多python脚本,所有脚本都使用相同(大)框架的一部分。我使用这个框架的不同版本,都在版本控制下,因为每次测试都使用它的不同部分,我决定只签出我需要的部分会更快。换句话说,我希望使用稀疏结帐。我的意图是一步一步地签出一个空的工作副本,然后一次又一次地更新,以便随着时间的推移收集(几乎)完整的框架。我使用python脚本和modulefinder来决定每个项目需要框架的哪些部分。因此,我得到了以下结论:

项目Foo,框架树:

代码语言:javascript
复制
\R100
   \Framework
     \Module_1
       \Submodule_1
       \Submodule_5
     \Module_2
     \Module_3

结帐例程:

代码语言:javascript
复制
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

项目栏:

代码语言:javascript
复制
\R100
   \Framework
     \Module_1
       \Submodule_1
       \Submodule_2
     \Module_2
     \Module_3

结帐例程:

代码语言:javascript
复制
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项目:

代码语言:javascript
复制
\R100
   \Framework
     \Module_1
       \Submodule_1
       \Submodule_3
     \Module_6
     \Module_9

结帐例程:

代码语言:javascript
复制
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客户端“好吧,这些文件和文件夹不再在签出的范围内,但既然它们已经在这里,无论如何都要保留它们”。

EN

回答 1

Stack Overflow用户

发布于 2017-06-17 05:43:42

你决定遵循的方法不会很好地工作,我预计这样的工作副本会带来很多痛苦。SVN提供了在设计时考虑到这些情况的工具。

在我看来,您特别缺少vendor branchessvn:externals。您可以在SVN存储库中研究和实现这些特性中的一个或两个:

  • 使用vendor branches维护依赖于外部代码的自定义代码库。
  • 使用svn:externals和SVN中的标记构建多个项目或签出的工作副本。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44567016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档