使用Git在夜间散发到建立一个工作室 [英] Using Git to distribute nightly builds to a studio

查看:110
本文介绍了使用Git在夜间散发到建立一个工作室的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

短版



需要分发每晚构建以70+的人每天早晨,想用的混帐进行负载平衡的转移,并想知道,如果有提示,陷阱,或瑕疵的想法之前,我开始设计系统。



龙版



每个早上,我们需要将我们每晚构建分发到的70+人(艺术家,测试人员,程序员,生产等)工作室。到现在为止,我们已经复制生成到服务器,并写了一个的同步的程序,获取它(使用的的Robocopy 的下面);即使设置反射镜的传输速度与它占用到一个小时或更长的时间在高峰时间同步处理太慢(非高峰时间是约15分钟),它指向为硬件I / O瓶颈。



有一个辉煌的(虽然肯定不是原来的)想法,我是整个工作室分配负载。调查使用臭名昭著的比特激流协议编写客户端后,又一想发生,我认为我可以只使用混帐:由设计它将给我们的是额外的好处分发版本和修订管理服务器更少。



问题




  1. 怎么办你开始使用Git的开始?我有喜欢的 Perforce公司的位于市中心的源代码控制系统的经验和 SVN 的。阅读文档,似乎所有你需要做的就是运行 git的初始化path\\to\folder 键,然后在另一台机器上运行混帐克隆网址


  2. 我在哪里的网址对上述 git的克隆命令?我可以定义?我发现有一个网址奇怪的git的没有中央服务器的概念 - 或者不是吗?例如类似于位洪流跟踪?


  3. 什么是更好的选择,以确定构建,使用变更号码或标签?


  4. 是否有可能限制存储修订版本的数量?因为除了每晚构建我们也有几个CI构建整个我们要分发的一天这将是有益的,但它没有意义有无穷多个版本徘徊在。在 Perforce公司的,你可以通过设置属性限制的修订。



解决方案

我不认为git会成为真正的帮助你情况。是的,它是分布式的,而不是在分配的东西越来越多的人越好的情况。它不会帮助你减少带宽负荷,也将有一个额外的负载,如果你会使用git通过ssh。可能是你应该退一步,再给一次机会,以BitTorrent协议。


Short version

Need to distribute nightly builds to 70+ people each morning, would like to use git to load balance the transfer, and would like to know if there are tips, pitfalls, or flaws with the idea before I start designing the system.

Long version

Each morning we need to distribute our nightly build to the studio of 70+ people (artists, testers, programmers, production etc). Up until now we have copied the build to a server and have written a sync program that fetches it (using Robocopy underneath); even with setting up mirrors the transfer speed is unacceptably slow with it taking up-to an hour or longer to sync at peak times (off-peak times are roughly 15 minutes) which points to being hardware I/O bottleneck.

A brilliant (though definitely not original) idea that I had was to distribute the load throughout the studio. After investigating writing a client using the infamous bit-torrent protocol, another thought occurred to me that I could just use git as by design it would give us distributing the build and revision management with the added benefit of being server less.

Questions

  1. How do you get started using git? I have experience with centrally located source-control systems like Perforce and SVN. Reading the documentation, it appears that all you need to do is run git init path\\to\folder and then on another machine run git clone url?

  2. Where do I get the url for the above git clone command? Can I define? I find concept of having a url strange as the git does not have a central server - or does it? e.g. similar to a bit-torrent tracker?

  3. What would be the better option to identify builds, use changelist numbers or labels?

  4. Is it possible to limit the number of revisions stored? This would be useful as in addition to the nightly builds we also have several CI builds throughout the day that we want to distribute, however it does not make sense to have infinite number revisions lingering around. In Perforce you can limit the revisions by setting a property.

解决方案

I don't think that git will be really helpful in your situation. Yes, it is distributed, but not in case of "distributing something to more people as possible". It does not help you to reduce bandwith load, also there will be an additional load if you will use git over ssh. May be you should take step back and give another chance to bittorrent protocol.

这篇关于使用Git在夜间散发到建立一个工作室的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆