What are Source Code Control(SCC) and Subversion(SVN)?
When you work with other people, you need to either share your code or modify your code with them. SCC will be the good tool for doing this. For instance, you are working on A part and your partner is working on B part of the code. SCC system will merge your work and your partner work automatically. SVN is the one of the SCC tool.
What benefits we have with SVN?
1. Time saving
When I worked on iteration 2, I had quiz and assignments from other classes. I was busy, so I couldn't see partner many times unlike when I worked on iteration 1. However, we finished iteration2 successfully by using SVN. Since I can do it anytime, when I have a time, I could do my part without meeting with my partner.
2. Easy to modify and combine
As I mentioned on the top, when you work on project with other people, SVN helps that you and your team members work on it individually. If someone doesn't like your part, he or she can simply change and commit that.
If I can work with my partner all the time, that might be the best way to speed up. Actually, when I work on iteration1, I spent many times with my partner, so when I have some problem, I could figure that out fast. However, it takes longer to finish iteration2 since I couldn't meet him many times. I think SVN can be the alternative way for people who work on project, but don't have enough time to meet their team members.
4. Save your gas
You can do your part and leave comment, so your partner can know what is going on and help you if you make some mistake. That means you don't have to see your partner when you need to ask something. I'm not saying simple problem. Sometimes you need to show your whole code to ask. In that case, you need to see your partner. I live out of campus, for example, so if I have something to ask, I have to drive to campus. After using SVN, my partner can simply check code at home.
What disadvantages we might have with SVN?
Writing assignment 2 gave me horrible memory. After finishing writing, I made folder blog_02, put preview file, and added and committed them. I thought I am done, but I realized that the folder name is blog_2 not blog_02. I knew it is not big deal, but it is not hard to change either. I renamed my blog_02 to blog_2 and a night mare was started. It took about two hours to solve that.
2. Uncomfortable for the first time
I used to use MSN messenger for doing team project. I think it was good enough for my level. I mean team project asked some parts of the whole code. It was not long code. I felt like I'm working on it with my team member. When I use SVN for the first time, I missed direct feedback from team member like when I used messenger and I had to spend some time especially when I made mistake.
I think this is good to know when people use SVN. (This is useful information from lecture slide)
Subversion merge and conflict resolution
There is the opportunity for conflicts between changes
made by different team.
We'll enact a simple scenario to show what can go right
and what can go wrong when different team members
commit altered versions of the same file.
You can try similar experiments on your own to
understand this process.
% svn resolved Number.txt
We need to tell Subversion that a conflict it detected has been
Once resolved, we can commit the change.