1 00:00:00,100 --> 00:00:02,020 Before getting to the demo, I want to say a few 2 00:00:02,020 --> 00:00:06,550 more things. In particular, I discuss the main don'ts in VCS. So, 3 00:00:06,550 --> 00:00:09,110 what are some things that you don't want to do, and 4 00:00:09,110 --> 00:00:12,687 you should not do, when you're using a version control system? And 5 00:00:12,687 --> 00:00:15,382 I'm going to mention two, in particular, because these are two 6 00:00:15,382 --> 00:00:18,028 that I witnessed several times when I was teaching this class and 7 00:00:18,028 --> 00:00:21,820 also when collaborating with other people. So, there are two kinds 8 00:00:21,820 --> 00:00:25,460 of resources that you don't want to add to a VCS normally. 9 00:00:25,460 --> 00:00:29,070 One is derived files. For example an executable that is 10 00:00:29,070 --> 00:00:31,930 derived by compiling a set of source files, where the 11 00:00:31,930 --> 00:00:34,480 source files all already in the repository. At that point, 12 00:00:34,480 --> 00:00:37,680 there is no reason to also add the executable file in 13 00:00:37,680 --> 00:00:41,150 the repository. So in general, any executable file should not 14 00:00:41,150 --> 00:00:44,570 be added to repository. The second class of files that I 15 00:00:44,570 --> 00:00:47,760 want to mention is these bulky binary files. If you 16 00:00:47,760 --> 00:00:50,600 have one such file, it is normally not a good idea 17 00:00:50,600 --> 00:00:53,430 to store them under a version control system, to store them 18 00:00:53,430 --> 00:00:56,670 in the repository. There might be exceptions to these rules, but in 19 00:00:56,670 --> 00:00:59,070 general, these are the kind of files that you want to 20 00:00:59,070 --> 00:01:02,540 keep local, and you don't want to put in the VCS repository. 21 00:01:02,540 --> 00:01:06,500 Another typical mistake, and that happens all the time, especially to 22 00:01:06,500 --> 00:01:10,650 novice users of VCS. Is that you get your file from VCS 23 00:01:10,650 --> 00:01:13,120 and so you get your local copy of the file that 24 00:01:13,120 --> 00:01:16,270 was in the VCS, and you want to make some changes, and 25 00:01:16,270 --> 00:01:20,090 before making the changes you decided, no, no let me actually save 26 00:01:20,090 --> 00:01:22,410 a local copy of the file, and I'm going to work on 27 00:01:22,410 --> 00:01:24,950 that one. Or let me save it before I modify it, or 28 00:01:24,950 --> 00:01:28,350 let take a snap shot of a whole tree of files. Just because 29 00:01:28,350 --> 00:01:30,830 I don't really trust the fact that VCS is going to be 30 00:01:30,830 --> 00:01:33,170 able to help and is going to be able to recover from possible 31 00:01:33,170 --> 00:01:36,980 mistakes. Never ever do that. I have seen that done many times, 32 00:01:36,980 --> 00:01:41,570 and it always leads to disasters. First of all it is useless, and 33 00:01:41,570 --> 00:01:44,000 second it's risky. Because then what happens is that at 34 00:01:44,000 --> 00:01:46,610 the time in which you have to turn in your assignment, 35 00:01:46,610 --> 00:01:48,330 in the case you are doing an assignment, but even in 36 00:01:48,330 --> 00:01:50,740 more serious situation, when you have to turn in your code, 37 00:01:50,740 --> 00:01:54,620 for example to your colleagues. You always end up being confused 38 00:01:54,620 --> 00:01:59,010 about which is the version that you're really using. So absolutely 39 00:01:59,010 --> 00:02:03,262 no local copies. No local redundancy when you're using a version 40 00:02:03,262 --> 00:02:06,798 control system. Trust the version control system, and trust the version 41 00:02:06,798 --> 00:02:09,280 control system to be able to manage your versions. You 42 00:02:09,280 --> 00:02:13,350 can always save it, commit it, retrieve previous versions, and you'll 43 00:02:13,350 --> 00:02:15,530 be able to do everything that you can do by copying 44 00:02:15,530 --> 00:02:19,240 the file yourself, and even more. So again, try the VCS.