summaryrefslogtreecommitdiffstats
path: root/tde-i18n-ru/docs/tdevelop/tdevelop/cvs.docbook
blob: 57da00e0b848ccc66730577692749f26c1a89ebf (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
<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 -->