单人开发团队中的版本控制、部署和持续测试(.NET 平台)
我是公司中唯一的开发人员,因此我控制着从部署到错误修复再到新功能的一切。我选择的工具是 VS2010,我主要在 ASP.NET 中编写新功能,并使用经典 ASP(叹息)来修复错误。我只有 VS2010 Pro,无法访问任何 MS Team 软件。
现在,随着我们的搬迁,我们正在建立一个新的生产环境,因此我想养成一些新的惯例和习惯。我目前直接在生产代码中进行了很多错误修复。不太好。
我们的应用程序及其朋友非常适合进行某种持续集成。但是,由于我自己做所有事情,因此当报告错误时我可能正在做其他工作,因此我的代码库尚未准备好部署。
我目前正在尝试利用 GIT 来达到此目的,使用它的分支等,大多数时候这都可以,但有点乏味。
谁能推荐一本好书或一些处理这些问题的好链接?我意识到这整个问题有点令人困惑,但我认为你读完它后可以扣除一分:)
我当前的开发环境由运行 VS2010 的 Windows 7 和用于 GIT 的 cygwin 组成。
I am the only developer in my company, and as such I control everything from deployment to bugfix to new features. My tool of choice is VS2010 and I code primarily in ASP.NET for new features and Classic ASP (sigh) for the bugfixes. I only have VS2010 Pro and I do not have access to any of the MS Team software.
Now we are setting up a new production environment as we are moving and therefore I want to get into some new routines and habits. I currently do a lot of the bugfix directly in production code.. Not so good.
Our application and it's friends are very good candidates for some kind of continuous integration. However, since I do everything myself, I might be doing other work when a bug gets reported, and so my codebase is not ready for deployment.
I am currently trying to utilize GIT for this purpouse, using it's branches and such, and this works kind of ok most of the time, but it's a bit tedious.
Can anyone recommend a good book or some good links that deal with these issues? I realize that this whole question got kind of obfuscated, but I think you can deduct a point after reading it :)
My current devenvironment consists of Windows 7 running VS2010 and cygwin for GIT.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
从你的问题来看,你似乎缺少一个 CI(持续集成)流程来防止回归错误。
我建议使用 TeamCity 服务器 - 它易于安装和维护,您应该可以立即启动并运行。
开发过程的一部分应该是编写测试 - 您可以使用与 VS 捆绑在一起的单元测试框架 - 称为 MSTest,TeamCity 可以在每次提交时运行该框架以确保没有任何问题。
From you question is seems that you're missing a CI (Continuous Integration) process in palce to guard you against regression bugs.
I suggest using TeamCity server - it's easy to install and maintain and you should be up and running in no time.
Part of your development process should be writing tests - you can use the unit testing framework that is bundled with VS - called MSTest which TeamCity can run on each commit to make sure that nothing was broken.
您还可以使用 CruiseControl.NET 进行持续集成过程。
使用 CC.Net,您始终可以查看实际统计数据、代码覆盖率、单元测试结果、通过电子邮件接收信息等。
有关 git 分支的一些信息 - 此处
Also you can use CruiseControl.NET for continuous integration process.
With CC.Net you can always see the actual statistics, code coverage, unit tests results, receive an information by email, etc.
Something about git branches - here
毫无疑问...我会选择 Hudson 来满足您的 CI 需求。我可以继续谈论它与巡航控制相比的优点,但我只能说下载它(开源)并亲自看看。
启动和运行根本不需要时间,而且所有东西都有插件。
我第一次使用 Hudson 时,大约 10 分钟就完成了构建和运行。
Hands down... I would go with Hudson for your CI needs. I could go on and on about the virtues of it compared with Cruise Control, but all I can say is download it (open source) and see for yourself.
It takes no time at all to get up and running, and there are plugins for everything
The first time I ever used Hudson I had a build up and running in about 10 minutes.
Los Techies 为 Windows 开发人员提供了一些很好的 GIT 帖子。
还有此截屏视频。
当您这样做时,我还建议持续集成。其中之一是哈德森。专为 Java 设计,但也适用于 .NET。还有 Jetbrains Team City,达到一定数量的项目是免费的。虽然不确定任何 CI 如何与普通 ASP 一起工作。我确信有关于它的话题。
Los Techies Has some good GIT posts for windows developers.
There is also this screencast.
While you are at it I'd also suggest Continuous Integration. This one is with Hudson. Made for and in Java but works with .NET too. There is also Jetbrains Team City which is free up to a certain amount of projects. Though Not sure how any CI will work with plain ASP. I'm sure there are topics out there about it.
Tekpub 有一个完整的 Git 系列:掌握 Git。
我阅读您的文章的方式是,这并不是关于部署和持续集成的问题,而是更多关于如何确保我拥有适当的版本来进行热修复/推送更改/运行持续集成。所有这一切,同时仍在正常进行长期变化。
Tekpub has a full series for Git: Mastering Git.
The way I read your post was that is not so much about issues with deployment and continuous integration, but more on how to make sure I have the appropriate version(s) to do hot fixes / push changes / run continuous integration against. All that, while still working normally on longer term changes.