Mac 上的版本控制
我是一名学生,我对源代码控制的使用主要是学术性的(硬件作业、2-4 人项目等)。
到目前为止,我一直在使用 google 代码中托管的 Subversion,并使用 eclipse 插件来管理我的存储库。
最近我听说了 git,据我了解每次两个协作之间需要同步,还有一个叫做 Mercurial 的东西。
所以基本上我的问题有 3 个部分:
推荐哪种源代码控制系统以及 git 提供什么好处?值得学习吗?
哪一个好的免费主机可以支持这个系统?
管理我的存储库的最佳工具是什么?使用命令行是否比 Eclipse 插件更好?或者有其他推荐的软件吗?
如果我的问题含糊不清,请发表评论,我很乐意修改。
I am a student and my uses of source control are mostly academic (HW assignments, 2-4 person projects and so on).
Until now I have been using Subversion hosted in google code, and used the eclipse plugin to manage my repository.
Recently I heard of git, which to my understanding needs to be synced between each two collaborates each time, and something called Mercurial.
So basically my question has 3 parts:
Which source control system is recommended and what benefits does git offer? Is it worth learning it?
Which is a good free host that will support this system?
What is the best tool to manage my repository? Is using the command line better in any way than the Eclipse plugin? or is there some other software that is recommended?
If my question is to vague please comment and I'll be glad to revise it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Git 和 Mercurial 是分布式 SCM,这意味着没有中央服务器(实际上人们同意有一个,但基础设施并不需要它)。
这就是 SCM 的发展方向,所以是的,值得学习。
对于 git 托管,请查看 github,对于 Mercurial,请查看 Kiln(不是免费的),尽管有许多免费的 也是如此。
至于询问命令行是否比插件/GUI更好?这取决于您喜欢如何工作。
Git and Mercurial are distrubuted SCMs, meaning there is not central server (in practice people agree on one, but the infrastructure doesn't require it).
It is the way SCMs are going, so yes, worth learning.
For git hosting look at github, for Mercurial, look at Kiln (not free), though there are many free ones as well.
As for asking if command line is better than a plugin/GUI? It depends on how you like to work.
我更喜欢与我的 IDE 集成的工具,所以我推荐这条路线,但很多人都对使用 git 命令行及其棒极了。我认为他们只是比我想要的更顽固。
git 和 Mercurial 彼此非常相似,因此您选择哪一个几乎没有什么区别,特别是如果您是 DVCS 的新手。选择具有适合您的设置的工具的工具。
I prefer tooling that integrates with my IDE so I recommend that route but many people rave about using the command line for git and how awesome it is. I think they're just more hard core than I want to be.
git and mercurial are similar enough to each other that it makes very little difference which one you choose especially if you are new to DVCS. Choose the one that has tools that work well with your setup.
使用您最熟悉的版本,
与SVN相比,
- svn 是 CVS 的后代,保留了它的大部分结构和错误。
- 有 1 个故障点(中央存储库)有点糟糕。分布式 SCM 也可以在中央存储库模型上工作。
- 分布式 SCM 在本地保留存储库副本。您可以推送和拉取到远程服务器,从而允许您在不干扰“中央”存储库的情况下进行本地版本控制,然后允许您根据需要进行分支。
- 在中央存储库模型上,人们有点不愿意分支和分支然后合并(颠覆上的合并可能是一项耗时的任务)。
- subersion 的问题在于,您无法授予每个目录访问权限,它是在存储库级别完成的。
- Subersion 不跟踪合并。
我在工作中使用 subversion,人们常常不知道如何管理它,如果不需要中央存储库,分布式 SCM 可以减少管理员的需求。
Use the one that you are the most comfortable with,
Compared to SVN,
- svn is a descendant of CVS and keep most of its structures and fault.
- Having 1 point of failure ( central repository ) is somewhat bad. Distributed SCM could also work on a central repository model.
- Distibuted SCM keep a repository copy in local. you push and pull to the remote server, allowing you to do a local versioning without disturbing the "central" repository, then allowing you to branch as much as you like.
- On central repository model, people are somewhat reluctant to branch and branch then merge (Merge on subversion can be a consuming task).
- Trouble with subersion, is that you cannot give per directory access right, it done at the repository level.
- Subersion do not keep track of merges.
I use subversion at work and people are often ignorant on how to manage it, distributed SCM reduce the need of an administrator if you don't need a central repository.