python、svn、使用共享代码部署应用程序

python、svn、使用共享代码部署应用程序,python,svn,version-control,deployment,Python,Svn,Version Control,Deployment,我有一些相关的应用程序要部署到不同的计算机上。他们每个人都共享大量的通用代码,并且有一些独特的东西。例如,我有一个服务器和一个客户机,它们使用许多公共类相互通信。我还有更多的服务器和客户机使用一些相同的类,但彼此不相关 简单的解决方案是将它们都放在相同的目录结构中,这样它们就可以使用它们需要的任何模块,并且无论何时部署服务器或客户机,我都会将它们放入整个代码库中。然而,代码库相当大,一些组件使用的数据文件大小只有几兆字节 理想情况下,我能够让它们共享相同的代码,但能够准确地部署每个组件需要的文件

我有一些相关的应用程序要部署到不同的计算机上。他们每个人都共享大量的通用代码,并且有一些独特的东西。例如,我有一个服务器和一个客户机,它们使用许多公共类相互通信。我还有更多的服务器和客户机使用一些相同的类,但彼此不相关

简单的解决方案是将它们都放在相同的目录结构中,这样它们就可以使用它们需要的任何模块,并且无论何时部署服务器或客户机,我都会将它们放入整个代码库中。然而,代码库相当大,一些组件使用的数据文件大小只有几兆字节

理想情况下,我能够让它们共享相同的代码,但能够准确地部署每个组件需要的文件。。。它们都将连接到同一个版本控制。所以它应该是这样的:

在一台计算机上:
svn签出客户端1
。在另一台上:
svn签出服务器1
。另一方面:
svn checkout client2
。然后,如果我修改了client2和client1之间共享的一些client2代码,当我执行
svn update
时,这两个代码都将被更新。同样理想的是,我不必手动挑选我需要的文件,因为这可能会很烦人,但我可以处理


其他人有这个问题吗?它有更好的定义名称吗?我可以使用什么解决方案来解决它?

当它可以分解为模块时,使用所有“基本”代码进行回购/分支,并在实际项目中,将它们作为
svn:externals
(同一个存储库或另一个存储库并不重要)。通过这种方式,您可以独立地更新/处理模块,将某些项目固定到该模块的某些修订版上,或将其保留在前端

一个新项目可能需要一个已经设置了大多数外部的基础项目的分支,或者手动添加所需的外部。一个简单的shell脚本可以轻松地设置您所需的确切外部