小型实验室的版本控制系统?
我是电气工程专业的研究生,我的实验室有各种与超声波相关的项目。我们有很多代码来执行模拟,但现在我们的情况是任何给定的脚本都有大约 5 个不同的版本。此外,一个人可能会开发代码来模拟波传播,而另一个人则需要该代码来执行不同的模拟。这会导致代码被频繁地通过电子邮件来回发送。
我向我的顾问建议版本控制,她说她喜欢它,但没有时间管理 VCS,因此必须以需要尽可能少维护的方式进行设置。显然,我们不会向公众发布软件,因此内部结构是否非常规也没关系。
实验室中的大多数人都不是专业编码员,但我们都需要编写 MATLAB 代码以及其他一些东西。所以,我不希望用户对干净提交等有那么好,所以每个人都有自己的“工作场所”或类似的东西是有好处的。但说实话,我只同时为 3 个人使用过版本控制,所以我不知道如何设置。
所以我问什么是最好的方法来做到这一点。我只使用过 Subversion,但我想知道这是否是正确的选择。我们需要一个系统(按重要性降序排列):
- 需要很少的维护
- 易于使用和学习,因为不是每个人都使用过版本控制
- 具有 shell 集成(我们都使用 Windows XP)
- 易于设置权限并为每个人提供权限自己的工作区
- 易于设置和运行
因此,(1) 什么 VCS 是最佳选择,以及 (2) 我们应该如何构建它。感谢您的帮助。
I'm a grad student in Electrical Engineering, and my lab has various projects related to ultrasonics. We have lots of code to perform simulations, but right now our situation is such that any given script has ~5 different versions. In addition, one person might develop code to simulate wave propagation, while another needs that code to perform a different simulation. This results in code being emailed back and forth quite a bit.
I suggested version control to my advisor, and she says that she likes it, but doesn't have time to manage a VCS, so it would have to be set up in such a way as to require as little maintenance as possible. Obviously, we're not releasing software to the public, so it doesn't matter if the internal structure is unconventional.
Most of the lab are not professional coders, but we all need to write MATLAB code as well as some other stuff. So, I don't expect the users to be so good about clean commits and the like, so it would be good for everyone to have their own "workplace" or something like that. But to be honest, I've only ever used version control for 3 people at once, so I'm not sure how to set this up.
So I am asking what is the best way to do this. I have only used Subversion, but I wonder if that is the right choice. We need a system that would (sorted by importance, descending):
- require little maintenance
- be easy to use and learn, since not everyone has used version control
- have shell integration (we all use Windows XP)
- be easy to set permissions and give everyone their own workspace
- be easy to set up and get running
So, (1) What VCS is the best choice, and (2) how should we structure it. Thanks for the help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我们使用 subversion 并喜欢它,因为它简单、易于使用、集成进入 shell 环境的能力不仅是版本、代码,还有规范文档 pdf 和我们拥有的其他资源。
至于构建它,请尝试尽可能接近地使用您的逻辑结构。保持简单:)
We use subversion and love it, for its simplicity, easy of use, integration into the shell environment and the ability to not just version, code, but also specification documents pdf's and other resources we have.
As for structuring it, try and use your logical structure, as close as possible. Keep it simple :)
我认为您没有理由应该进一步远离 Subversion。虽然,对于额外的少量维护,您可以检查 GitHub(因为它是托管解决方案,因此不必担心备份、服务器等),但也有托管的 Subversion 存储库。
特别是如果您已经熟悉它,那么您可以让其他人加快速度并获得额外的积分:)
I see no reason why you should look further from Subversion. Although, for extra little maintenance you could check GitHub (since it is hosted solution, so no worrying about backup, servers etc) but there are hosted Subversion repos as well.
Especially if you're already familiar with it, so you can bring others up to speed and get extra credit :)
一旦完全设置好 subversion 就需要很少的维护,它的模型很容易理解,它集成在 shell 中,它支持工作得很好的 ACL,并且它的设置有很好的文档记录。
您可以在网络服务器中设置 subversion,如果需要,将其与 Windows 域集成以进行身份验证(否则您必须添加/删除用户,更改 svn 服务器上的密码)
您也可以采用分布式 vcs 方式,使用托管解决方案,无需设置服务器,但是要让用户明白这一点将比 svn 困难得多。更不用说先把它放在你自己的脑海里了。
除非你有复杂、快节奏、并行的开发模型,否则我不会推荐 dvcs,我会坚持使用 SVN
Once completely setup subversion should require very little maintenance, it's model is simple to apprehend, it is integrated in the shell, it supports ACLs which work just fine and it's setup is well documented.
you can setup subversion in a webserver, integrate it with a windows domain for auth if needed (otherwise you have to add/remove users, change passwords on the svn server)
You could also go the distributed vcs way, with hosted solutions no server setup, but to get that across your user's mind is gonna be way more difficult than svn. Not to mention getting it across your own head first.
Unless you have complex, fast-paced, parallel development models, I wouldn't recommend dvcs, I would stick to SVN
我同意颠覆是一个非常好的选择。
但您也可以考虑 mercurial:它更简单,而且还有一个 Tortoise 集成界面。
I agree that subversion is a very good choice.
But you can also consider mercurial: it's easier and it also has a tortoise integrated interface.
我推荐 www.assembla.com。他们提供付费订阅,但对于学术项目,您可以申请免费的专业帐户。
我已将它用于我的学术项目,并且对它的易于维护性、正常运行时间和简单性感到 100% 满意
I would recommend www.assembla.com. They offer paid subscriptions but for academic projects you can apply for a free pro account.
I have used it for my academic projects and was 100% satisfied by the ease of maintenance, up-time and simplicity
最简单的方法是使用 Subversion。但要让它以最简单的方式工作(在 Windows 下),您绝对应该使用 TortoiseSVN。
安装后,它可以在资源管理器中正常运行,只需右键单击即可使用。也许你们中的一个人应该更深入地研究一下整个文档,以便在需要时提供帮助。所有其他人都应该查看日常使用指南首先开始。
另外,您还应该注意如何
The far easiest way is to use Subversion. But to get it to work the most easiest way (under Windows) you should definitely use TortoiseSVN.
After installation it works right within the explorer is just one right click away from usage. Maybe one of your guys should take a deeper look into the whole documentation to give help if needed. All other guys should take a look into the Daily Usage Guide for a first start.
Also you should take care about how you structure your repository!
Subversion 对于“永远在线+中央服务器”模式有太多限制。
我强烈建议使用分布式版本控制系统。
来自三个主要的Git、Mercurial、Bazaar;根据我的经验,Bazaar 是迄今为止最容易使用和设置的。
Subversion has too many limitations related to the "always online + central server" model.
I would strongly recommend using a distributed version control system.
From the three main ones Git, Mercurial, Bazaar; in my experience Bazaar is by far the easiest one to use and setup.