about summary refs log tree commit diff
path: root/usth/ICT2.7/P1L4 Version Control Subtitles/8 - "Don'ts" in VCS - lang_en_vs5.srt
blob: f5d27fbe4e2b316b064dc2b9f0894ac20ebf27b3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
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.