Learning Version Control, and learning it well [cl

2020-02-08 08:35发布

Where should I start learning about version control systems? I've used SVN, Team Foundation, and Sourcesafe in the past but I don't really feel like I grasp it completely, and my team doesn't seem to grasp it either.

Which points are the most important to master? I realise this differs from VCS to VCS, but for the sake of this question we can assume that Subversion is the VCS I'm the most interested in learning about.

Also, if you could, please recommend any books on the subject that you find useful.

13条回答
该账号已被封号
2楼-- · 2020-02-08 08:35

There are a couple of free ebooks on the subject. Try:

Version Control With Subversion: Version Control with Subversion

Subversion Version Control (PDF): Subversion Version Control

I have read and would recommend the former. Haven't read "Subversion Version Control", but it looks pretty in-depth.

查看更多
Rolldiameter
3楼-- · 2020-02-08 08:36

I am not sure how much experience you have with version control systems, but for someone who has no prior knowledge about the concept I recommend reading the first few chapters of the Subversion book. Some of the things described there are specific to Subversion, but many of the concepts are "universal" for version control systems and how to work with them.

I think it's very important that people make an effort in trying to understand the main concepts and rationales behind version control systems before starting to use them. All too often I see developers only using a small subset of their system's features because they don't understand the underlying concepts and therefore either don't see the point in using what they consider "advanced" or "unnecessary" features, or they are simply afraid to do so in fear of breaking something or causing problems for the project.

Having experienced this phenomenon with many developers in the past, I recently wrote up a summary of what I consider best practices for version control on my blog.

查看更多
何必那么认真
5楼-- · 2020-02-08 08:45

I think the most important points one has to learn regarding source control systems are the following:

  • the value of small, frequent check-ins/commits
  • tagging, branching and merging
  • rollbacks
  • conflict resolution
  • exclusive vs. non-exclusive checkout
  • continuous integration
  • Test-driven development & automated unit tests vis-a-vis source control systems
  • forking

If you've got these major concepts covered, that's pretty much most of the things you'll ever need to know for source control :)

查看更多
疯言疯语
6楼-- · 2020-02-08 08:45
老娘就宠你
7楼-- · 2020-02-08 08:49

To answer your question re: Which are the most important points to master I would suggest that after you get through the whole checking in and out process, rolling back to old versions and performing diffs you should take a look at branching. Branching can help you deal with the pain of being in the middle of a large change and suddenly needing to perform a bug fix and deploy it to production without the mixing in the half done stuff you are working on.

查看更多
登录 后发表回答