summaryrefslogtreecommitdiffstats
path: root/tde-i18n-ru/docs/tdevelop/tdevelop/cvs.docbook
blob: a9ff376caa8edfdc52eeac172bcc45b908f04e2b (plain)
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
<chapter id="cvs">
<title
>Использование &CVS;</title>
<indexterm zone="cvs"
><primary
>CVS</primary
></indexterm>
<indexterm zone="cvs"
><primary
>контроль версий</primary
></indexterm>

<sect1 id="cvs-basics">
<title
>Основы &CVS;</title>

<para
>&CVS; &mdash; это система контроля версий, используемая большинством проектов с открытым исходным кодом, в т.ч. и &kde;. Она хранит весь исходный код в одном месте, называемом <emphasis
>репозиторием</emphasis
> (хранилищем). С помощью такого хранилища каждый может получить снимок исходного кода на определённый момент времени (и не обязательно на текущий). В отличии от других систем контроля версий, при работе над файлом разработчику не нужно его <emphasis
>блокировать</emphasis
>, что расширяет возможности параллельной разработки. </para>

<para
>После выполнения задачи разработчик <emphasis
>загружает</emphasis
> (<emphasis
>commit</emphasis
>) изменённые файлы в хранилище (со списком изменений). &CVS; может объединять изменения в одном файле, сделанные несколькими людьми. Конечно, может случиться так, что разработчики работали над одной и той же частью файла, что приведёт к конфликту (на практике такое случается редко и является результатом недостаточного обсуждения процесса разработки). В таком случае &CVS; отказывается принять конфликтный файл и разработчику придётся устранять конфликт самостоятельно. </para>

<para
>&CVS; может намного больше, например, вести несколько веток (branch) разработки (например &kde; 3.1.4 и &kde; 3.2 были разными ветками дерева разработки &kde;), перемещать изменения из одной ветки в другую, выводить различия между разными версиями файла, выводить историю изменений файла и т.д. </para>

<para
>&CVS; реализован как система клиент-сервер. Со стороны пользователя связь с хранилищем идёт через консольную программу &cvs;. Однако доступно также большое количество графических интерфейсов к ней, например &cervisia; (<ulink url="http://cervisia.sf.net"
></ulink
>) или <application
>TkCVS</application
> (<ulink url="http://tkcvs.sf.net"
></ulink
>). В &tdevelop; напрямую доступна лишь небольшая часть функциональности &cvs;, необходимая для каждодневной работы. </para>

<para
>Вам потребуется знание основ использования &CVS;, в частности, вы должны знать как загружать (checkout) проект из хранилища. Мы рекомендуем прочитать книгу <ulink url="http://cvsbook.red-bean.com/cvsbook.html"
>Open Source Development With CVS</ulink
>, написанную Карлом Фогелем (Karl Fogel), распространяемую бесплатно (кроме нетехнических глав). Кроме того, вы можете прочитать о &CVS; по-русски на сайте <ulink url="http://www.linux.org.ru/books/GNU/cvs_ru/"
>linux.org.ru</ulink
> </para>

</sect1
> <!-- cvs-basics -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="cvs-commands">
<title
>Команды &CVS; в &tdevelop;</title>

<para
>В обзоре файлов доступны такие пункты контекстного меню: </para>

<variablelist>
<varlistentry>
<term
>Добавить в хранилище</term>
<listitem>
<para
>Подготавливает отмеченные файлы к передаче их в хранилище. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Удалить из хранилища</term>
<listitem>
<para
>Подготавливает отмеченный файл к удалению из хранилища. При этом файл также удаляется на локальной файловой системе. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Обновить</term>
<listitem>
<para
>Выполняет команду <command
>cvs update</command
> для объединения изменений, сделанных другими пользователями. Если вы вызываете эту команду для каталога, обновление происходит рекурсивно, если только вы не отключили это в конфигурационном файле <filename
>.cvsrc</filename
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Передать на сервер</term>
<listitem>
<para
>Выполняет команду <command
>cvs commit</command
> для передачи изменений, сделанных вами в хранилище. Помните, что перед этим необходимо выполнить обновление. Иначе, если другой пользователь уже передал свои изменения до этого, может возникнуть конфликт. </para>
</listitem>
</varlistentry>
</variablelist>

<para
>Все эти команды запускаются как подпроцесс &tdevelop; без дополнительных ключей или переменных окружения. Это создаёт проблемы, например, когда вы работаете через соединение &ssh;, и вам нужно ввести пароль. Это необходимо, например, при работе с <filename
>sourceforge.net</filename
>. Работа над этой проблемой описана в FAQ &CVS;/SSH, который можно найти в разделе документации проекта SourceForge. </para>

</sect1
> <!-- cvs-basics -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="cvs-behind">
<title
>За кулисами</title>

<sect2 id="cvs-behind-workdir">
<title
>Что &CVS; записывает в рабочем каталоге</title>

<para
>(... в процессе написания ...) </para>
</sect2
> <!-- cvs-behind-workdir -->

</sect1
> <!-- cvs-behind -->

</chapter
> <!-- cvs -->