简体   繁体   English

Web开发中的源代码控制系统

[英]Source Code Control Systems in Web Development

We are just beginning the process of looking for a source code control system. 我们刚刚开始寻找源代码控制系统。 I realize we are behind, but better late than never. 我意识到我们落后了,但迟到总比没有好。 None of the members on our team have experience with any systems in their past so I was hoping I could find out some basic things to look for as we begin investigating different tools. 我们团队中的所有成员都没有过去任何系统的经验,所以我希望在我们开始研究不同的工具时能找到一些基本的东西。 Here is a little background on our team: 以下是我们团队的一些背景知识:

  • Our group consists of developers and designers 我们的团队由开发人员和设计师组成
  • We work primarily on PC's with one or two on Mac's 我们主要在PC上使用Mac上的一个或两个
  • Many are not comfortable with command line based systems 许多人对基于命令行的系统不满意
  • The majority of our development is for the web 我们的大部分发展都是针对网络的
  • We develop in ASP.NET, ColdFusion, and PHP 我们在ASP.NET,ColdFusion和PHP中开发

A few we plan on looking into: 我们计划研究一些:

Any experiences with any of these would be helpful to hear about. 任何这些经历都有助于了解。

Do not use Source Safe! 不要使用Source Safe! It's not only bad for source control it's just bad for the world. 它不仅对源代码控制不利,对全世界都是坏事。

I use Subversion with Tortoise. 我使用Subversion和Tortoise。 I love it. 我喜欢它。 Rather easy to get up and running. 相当容易起床和运行。 Branching/Merging can still be a nightmare though. 分支/合并仍然是一个噩梦。

Visual SVN is good too. Visual SVN也很好。

If you havent had a single sourcecontrolsystem so far, I rather doubt you can see the improvements of GIT etc. 如果你到目前为止还没有一个源控制系统,我相信你可以看到GIT等的改进。

Start simple and with a lot of support: use Subversion as Server and Tortoise as Client. 从简单和大量支持开始:使用Subversion作为Server和Tortoise作为Client。

Its a easy setup and easy to use. 它易于安装且易于使用。

Subversion is especially suitable for web development because of the 'differencing' algorithm it uses for binary files. Subversion特别适用于Web开发,因为它用于二进制文件的“差分”算法。 Web development isn't just about code. Web开发不仅仅与代码有关。 Binary resources come into play a lot (images, PDFs, etc). 二进制资源发挥了很大作用(图像,PDF等)。

Subversion tracks the differences between files and records those. Subversion跟踪文件之间的差异并记录这些差异。 Contrast that with CVS, which essentially stores another copy of the binary file, and the benefit becomes apparent as your binary resources and check-ins increase. 与CVS形成对比,CVS本质上存储了二进制文件的另一个副本,并且随着二进制资源和签入的增加,这种好处变得明显。

I use the TortoiseSVN plug-in, which is decent enough for me. 我使用TortoiseSVN插件,这对我来说足够了。 As you specifically tag asp .net, you might want to look into VisualSVN, which does a great job in mitigating the biggest problem in version control - a colleague forgetting to add a file to the repository. 当您专门标记asp .net时,您可能需要查看VisualSVN,它可以很好地缓解版本控制中的最大问题 - 一位同事忘记将文件添加到存储库。

I also used Visual Sourcesafe back in the day. 我当天也使用了Visual Sourcesafe。 Don't know if it's still the same now, but its exclusive checkout per user was a complete nightmare in a team of multiple devs. 不知道它现在是否仍然相同,但是每个用户的独家结账是一个由多个开发团队组成的完整噩梦。 Constantly had to remind people to check stuff back in or, alternatively, convince a friendly admin to log me in under their credentials whenever someone was out of office. 不断提醒人们重新检查内容,或者说服一位友好的管理员在有人不在办公室时根据他们的凭据登录我。

You may want to take a look at Perforce. 你可能想看看Perforce。 http://www.perforce.com/perforce/products.html http://www.perforce.com/perforce/products.html

You should go with subversion, or maybe git or mercurial. 你应该使用颠覆,或者git或mercurial。

It's clearly not worth it for you to buy anything, I think you can remove commercial solutions from your list right away. 您购买任何东西显然都是不值得的,我认为您可以立即从列表中删除商业解决方案。

Also, you should probably get some 3rd party hosting instead of running your own server. 此外,你可能应该得到一些第三方托管而不是运行自己的服务器。

I work at a client where they use TortoiseSVN as the client and installed VisualSVN (Subversion) as the server component. 我在客户端工作,他们使用TortoiseSVN作为客户端,并安装VisualSVN(Subversion)作为服务器组件。 At one point we had this master plan to use nANT and CruiseControl to keep 3 different environments for a .NET website in sync, but we haven't gotten approval on that yet (shock). 有一次,我们有这个总计划使用nANT和CruiseControl为.NET网站保持3个不同的环境同步,但我们还没有获得批准(震惊)。 So until then, we use our Subversion server to hold all the source code and keep the different environments in sync manually. 所以在那之前,我们使用我们的Subversion服务器来保存所有源代码并手动保持不同的环境同步。 Its not the best scenario in the world but it gives everyone access to the code and our development group is small enough that its easy enough for everyone to know what is being worked on. 它不是世界上最好的场景,但它让每个人都可以访问代码,而我们的开发小组足够小,每个人都可以轻松了解正在处理的内容。

Subversion作为服务器,而tovise svn作为客户端,可以很好地满足您的要求,虽然我听说GIT更新并且有很多改进。

I'd second using Tortoise SVN, avoiding SourceSafe and add another to the list: 我第二次使用Tortoise SVN,避免使用SourceSafe并在列表中添加另一个:

Perforce - This what was used at one of my former workplaces. Perforce - 这是我以前的一个工作场所使用的。 It wasn't bad though the merges were painful to do in that it took 1-2 developers a day to get the code merged to move from one environment to other,eg dev->test, test->staging. 虽然合并是痛苦的,但每天需要1-2个开发人员才能将代码合并以从一个环境转移到另一个环境,例如dev-> test,test-> staging。

Tortoise SVN has a lot of built-in windows explorer options that can be used instead of the command line so I rarely use the command line with Subversion. Tortoise SVN有很多内置的Windows资源管理器选项,可以用来代替命令行,所以我很少使用Subversion的命令行。

If you do go with SourceSafe do beware that there is an admin tool to analyze the DB to see that should be run periodically and can be a little annoying as I don't think anyone is supposed to be using SS when the analyser is running. 如果您使用SourceSafe,请注意有一个管理工具来分析数据库以查看应该定期运行并且可能有点烦人,因为我不认为任何人应该在分析仪运行时使用SS。 The branching in VSS is kind of weak, especially in contrast to seeing how well things work in SVN. VSS中的分支有点弱,特别是与SVN中的工作情况相比。

Another point is to consider if you have a bug-tracking system and want to have an integration between the two. 另一点是要考虑你是否有一个错误跟踪系统,并希望在两者之间进行整合。

i personally use git with cygwin. 我个人使用git和cygwin。 i prefer it over svn because of the pain that svn has caused me in the past with merges. 我比svn更喜欢它,因为svn在过去合并时给我带来的痛苦。 git was designed with making merges painless and it does a very effective job at adhering to that. git的设计使得合并无痛,并且它在坚持这方面做了非常有效的工作。

if cygwin isn't your cup of tea and you need to have windows explorer integration, please check out the ToroiseGit project. 如果cygwin不是你的一杯茶,你需要与windows explorer集成,请查看ToroiseGit项目。 It has the look and feel of ToroiseSVN so it's easy to pickup. 它具有ToroiseSVN的外观和感觉,因此很容易拾取。 you can even run ToroitseGit and TortoiseSVN side by side if you desire. 如果你愿意,你甚至可以并排运行ToroitseGit和TortoiseSVN。

also TortoiseGit has built in support for SVN repos so you can check out an svn repo and get all the benefits of local branches and what have you. TortoiseGit也内置了对SVN repos的支持,因此你可以查看一个svn repo并获得当地分支机构的所有好处以及你有什么。

It true that VSS should not be considered - it is a dead product and just plain bad. 确实不应该考虑VSS - 它是一个死产品而且非常糟糕。 However, Team Foundation Server - especially 2010 should be given a look. 但是,Team Foundation Server - 尤其是2010应该看看。 It not only does source code control but it has a work item tracking system, CI and build server and has some really great tools for testing. 它不仅具有源代码控制功能,而且还具有工作项跟踪系统,CI和构建服务器,并且具有一些非常好的测试工具。 For example, it will run automated scripts and record the session in an mpeg movie so that you can actually see what the screen looked like when/if the test failed. 例如,它将运行自动脚本并在mpeg电影中记录会话,以便您可以实际查看当测试失败时屏幕的样子。

If that's more than what you want, go with SVN. 如果这比您想要的更多,请使用SVN。

Git with GitHub for Windows和/或TortoiseGit

First advice: Don't use SourceSafe . 第一条建议: 不要使用SourceSafe It's a nightmare. 这是一场噩梦。 I think even Microsoft developers don't use it internally! 我认为即使微软开发人员也不在内部使用它!

You could go with SVN using TortoiseSVN as a front-end for the people not comfortable with the command line. 您可以使用TortoiseSVN作为前端,让不熟悉命令行的人使用SVN。 But you will have to host your own Subversion server or to find an hosting provider for your repositories . 但您必须拥有自己的Subversion服务器或查找存储库的托管服务提供商

Also, there is SVN plugins for the most used IDE out there. 此外,还有最常用的IDE的SVN插件。

Another +1 to Subversion. Subversion的另一个+1。 Have used with a variety of languages, including ColdFusion. 已经使用过各种语言,包括ColdFusion。 Tortoise is great for windows, the best graphical clients for Mac are not free, however. Tortoise非常适合Windows,但Mac的最佳图形客户端并不是免费的。

Would also recommend against Rational Clearcase. 还建议不要使用Rational Clearcase。 Their client is kludgy and there aren't near as many plugins for different ide/platforms. 他们的客户是kludgy,并没有尽可能多的插件用于不同的ide /平台。

I'm currently working with Rational ClearCase and I cannot complain (at least, 'till now). 我目前正在使用Rational ClearCase,我不能抱怨(至少,'到现在为止)。

Before that we used ChangeMan Dimensions, that's a regular CVS tool with many resources but in my opinion, it makes source control become very burocratic, to say the least: it features the infamous exclusive checkout. 在此之前我们使用ChangeMan Dimensions,这是一个有许多资源的常规CVS工具,但在我看来,它使源控制变得非常古怪,至少可以说:它具有臭名昭着的独家结账。 I also don't like the design. 我也不喜欢这个设计。

ClearCase has a Windows-Explorer look and once you get used to it, it becomes very simple to use. ClearCase具有Windows-Explorer外观,一旦您习惯了它,它就变得非常简单易用。 It also has a nice and easy integration with MS Visual Studio. 它还可以与MS Visual Studio轻松集成。

SourceGear Vault is a great tool. SourceGear Vault是一个很棒的工具。 Its interface is similar to VSS, but it doesn't have all the problems. 它的界面类似于VSS,但它没有所有问题。

If you use .net and visual studio or are in a heavily MS environment you may really like TFS. 如果您使用.net和visual studio,或者处于高MS环境中,您可能非常喜欢TFS。 It has very good integration with Visual Studio. 它与Visual Studio的集成非常好。 It also has lots of other functions like tracking tasks, bugs, etc. and automating builds. 它还具有许多其他功能,如跟踪任务,错误等,以及自动化构建。 It is expensive, especially in the world of SCMs where you can get a lot for free (svn, git). 昂贵的,特别是在SCM的世界里,你可以免费获得很多(svn,git)。 Since you mentioned .net though it may be worth a look. 既然你提到.net虽然值得一看。

You need to make a decision as to whether you want to pay for it or have one for free. 您需要决定是要支付还是免费支付。 I know SVN and CVS are free and there are great UI clients and IDE plugins also available for free. 我知道SVN和CVS是免费的,有很棒的UI客户端和IDE插件也可以免费使用。

We started off with CVS and then transitioned to SVN a few years ago. 我们从CVS开始,然后几年前转换到SVN。 The advantages we had were that a. 我们的优点是a。 SVN repo was smaller, b. SVN回购较小,b。 It was accessible over the net through both http and https, c. 它可以通过http和https,c在网上访问。 Had great client UI tools (i use SmartSVN), there are also great plugins for eclipse and intelliJ. 有很棒的客户端UI工具(我使用SmartSVN),还有很棒的eclipse和intelliJ插件。 d. d。 transitioning from using CVS to SVN was very easy as a user. 作为用户,从使用CVS过渡到SVN非常容易。

I've used QVCS by link text they have fair and much cheaper prices, for different versions. 对于不同版本,我已经使用链接文本使用QVCS,它们具有公平且便宜的价格。

I've used and tried subversion, and I personally do not like it, but if people like it and use, that's awesome for them. 我已经习惯并试过颠覆,我个人不喜欢它,但如果人们喜欢它并使用它,那对他们来说真棒。

I say you should find one that has the features you need, and price range that is reasonable, and has a good support system.. 我说你应该找到一个具有你需要的功能,价格范围合理,并有一个良好的支持系统..

The hard part is getting everyone on your team to use it, and use it wisely... 困难的部分是让团队中的每个人都使用它,并明智地使用它......

Personally, I really like Subversion and the tortoiseSvn client as many have already noted. 就个人而言,我真的很喜欢Subversion和许多人已经注意到的togoiseSvn客户端。 One site I found that I really like is http://www.springloops.com . 我发现我真正喜欢的一个网站是http://www.springloops.com They offer cheap SVN hosting, but they also integrate with BaseCamp which I love for managing projects. 他们提供廉价的SVN托管,但他们也与BaseCamp集成,我喜欢管理项目。 If you like Basecamp and also use Svn, its worth a look 如果您喜欢Basecamp并且也使用Svn,那值得一看

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM