i'm new to the idea of VCSs and i was wondering if people here could help me have a better start at it. so far ive read about SVN and bazaar, tried tortoiseSVN with collabnet subversion edge, (just at home, used my pc as the server and laptop as the client), and tried bazaar with launchpad. and by tried i mean just checking out projects, editting a bit, checking how to update .. etc just the basic stuff. im doing this for a programming club we're doing at school so i guess what im asking now is, what do you think is better from ur experience? bazaar or svn? cuz the simple commands i tried don't rly show much of a difference, and the comaprisons i read were a bit confusing.
and another thing, do u think i should start with command line instead of GUIs? i used command line with bazaar, didn't find it so hard but was wondering why everone seems to use command line? how does it give开发者_如何学C more control?
Thanks in advance :)For small/personal projects it is easier to get going with a distributed version control system like Bazaar because you don't need to go through the hassle of setting up a server, although having a second site backup of your repository is generally a good idea - I never want to loose the hard work I did.
GUI's often lag a bit behind in functionality and don't necessarily implement all the obscure command-line options, but in general it helps you to learn the main concept in a more intuitive manner - you can see all the buttons and click on them to see what happens :). So I think gui's are a bit better for learning. You can try BzrExplorer which I find very nice, although I prefer the eclipse qbzr plugin because I already work in the IDE, luckily they use the same dialogs.
Use whichever you feel most comfortable with. I use SVN for personal projects, and at work so it is normally my first choice. If you really can't decide, pick the one with the nicer clients (e.g. TortoiseSVN vs the Bzr client) - a better client will most likely make it easier to use.
Bear in mind that SVN is a little more common and there are a lot of tools for it. Bazaar certainly has it's benefits, but if you are just starting out then either choice will give you a good intro to version control. You aren't making the decision for life, and you can switch if you decide that whatever you have chosen isn't right for you.
In terms of GUI vs command line, again go for what you are most comfortable with. Personally, I prefer to use TortoiseSVN to the command line as it is harder to screw things up with.
Ultimately there is no right or wrong answer, try all of your options and pick the one you like the most.
Your first port of call is Google. There's plenty of information available comparing VCSs.
I've used Source Safe (awful), SVN and Mercurial. My personal preference is Mercurial, which I use via TortoiseHg. Note, this is actually a DVCS rather than a VCS. I like the flexibility and speed it offers.
Personally I don't think learning the command line stuff in a must. I've never needed to use it. However I won't say that I'll never learn it. I can imagine scenarios where that knowledge would be useful.
I would suggest learning to use both gui and command line. One problem i came across was that i nedeed to checkout many repositories which would have taken a lot of time with the gui and dialog boxes. Luckily, a little scripting and command line svn installed solved the problem. I also noticed that you can t script with tortoise as dialog boxes will appear .
I suggest to use a GUI when learning how to use a VCS, since they make it visual understandable what is going on under the hood.
About the centralized versus distributed part: SVN is OK as long as you as you can place a reachable server somewhere (or use a public SVN hosting service). Also SVN is a must when you have unmergable files, when the lock-edit-commit workflow is needed (which non DVCS support). On the other hand DVCS have advantages:
- very fast information retrieval (log and annotate do not require a remote server)
- network connection only needed for clone, push and pull
- no central server needed (but possible when wanted), the repos can be connected ad-hoc
精彩评论