2011-02-07 51 views
2

一年后采用Kiln后,我一直坚持每个Visual Studio项目都有一个源代码控制项目的惯例。虽然我发现这使得提交很好而且简单,并且源代码管理项目非常集中,但它开始导致很多提交,实质上是一个改变。解决方案中的多个项目与源代码管理中的多个项目

实施例: 我的一个视觉工作室的解决方案是设置这样的:

  • App.Core(服务层)
  • App.Core.Tests(测试层)
  • App.Web。核心(控制器)
  • App.Web.UI(浏览量/ JS /等)
  • App.Web.Admin(用于Web管理网站)
  • App.Web.Tests(T esting层)
  • App.ChromeExtension

最终我将加入的Andriod和iphone视图层以及(可能的MonoTouch/monodriod)

说我添加一个功能上的服务层侧需要对界面进行更新,然后我必须通过各种网络方法,甚至是Chrome扩展来宣传这种更改。这非常直截了当,但这可能意味着我必须完成7个不同的提交,才能实现单一的“更改”。这也意味着当我切换到/从我的笔记本电脑时,为其他开发人员或我自己拉了很多变化。

能处理大项目的人能评论什么是“最好”的方法吗?我是否坚持使用多个源代码控制项目,以便每个提交树都非常简洁并处理开销?为了简单起见,我是否将所有内容都放在单个源控制项目中?我是否会混合使用任何与Web相关的项目,以及与其他项目相关的任何服务?或者是其他东西?

仅供参考:该项目由UX开发人员和我自己维护,但未来很容易更改。

(也:我不知道这是否是程序员或计算器值得的,并决定在这里,而不是去如果国防部希望将它移到我没有异议。)

谢谢!

回答

2

只要你有相互依赖的组件(组文件,这里的解决方案),其中一个变化到一个模块已经到传播到其他人,你可以考虑"system" approach(即一个存储库,与一切它):
这是有道理的,如果你认为你不能在一个模块上设置标签而不在所有其他标签上设置标签。

如果这些组件可以独立开发一个从另一个,你可以通过脚本他们,like in this script 'git-submodule-recur.sh:'(这里GIT)减轻提交的数目:

#!/bin/sh 

case "$1" in 
     "init") CMD="submodule update --init" ;; 
     *) CMD="$*" ;; 
esac 

git $CMD 
git submodule foreach "$0" $CMD 

一个命令,然后将在每个子模块承诺:

git-submodule-recur commit -a -m "some comment" 
+0

感谢您的反馈意见。系统方法是一个很好的阅读。 – TheRightChoyce

相关问题