Translation by Artem Sereda with my minor changes
[kde-ru.git] / docs / kdevelop / kdevelop / cvs.docbook
blobe4c2985ab8b33d1c4f422a328a980ee4a375ae36
1 <chapter id="cvs">
2 <title
3 >Использование &CVS;</title>
4 <indexterm zone="cvs"
5 ><primary
6 >CVS</primary
7 ></indexterm>
8 <indexterm zone="cvs"
9 ><primary
10 >контроль версий</primary
11 ></indexterm>
13 <sect1 id="cvs-basics">
14 <title
15 >Основы &CVS;</title>
17 <para
18 >&CVS; &mdash; это система контроля версий, используемая большинством проектов с открытым исходным кодом, в т.ч. и &kde;. Она хранит весь исходный код в одном месте, называемом <emphasis
19 >репозиторием</emphasis
20 > (хранилищем). С помощью такого хранилища каждый может получить снимок исходного кода на определённый момент времени (и не обязательно на текущий). В отличии от других систем контроля версий, при работе над файлом разработчику не нужно его <emphasis
21 >блокировать</emphasis
22 >, что расширяет возможности параллельной разработки. </para>
24 <para
25 >После выполнения задачи разработчик <emphasis
26 >загружает</emphasis
27 > (<emphasis
28 >commit</emphasis
29 >) изменённые файлы в хранилище (со списком изменений). &CVS; может объединять изменения в одном файле, сделанные несколькими людьми. Конечно, может случиться так, что разработчики работали над одной и той же частью файла, что приведёт к конфликту (на практике такое случается редко и является результатом недостаточного обсуждения процесса разработки). В таком случае &CVS; отказывается принять конфликтный файл и разработчику придётся устранять конфликт самостоятельно. </para>
31 <para
32 >&CVS; может намного больше, например, вести несколько веток (branch) разработки (например &kde; 3.1.4 и &kde; 3.2 были разными ветками дерева разработки &kde;), перемещать изменения из одной ветки в другую, выводить различия между разными версиями файла, выводить историю изменений файла и т.д. </para>
34 <para
35 >&CVS; реализован как система клиент-сервер. Со стороны пользователя связь с хранилищем идёт через консольную программу &cvs;. Однако доступно также большое количество графических интерфейсов к ней, например &cervisia; (<ulink url="http://cervisia.sf.net"
36 ></ulink
37 >) или <application
38 >TkCVS</application
39 > (<ulink url="http://tkcvs.sf.net"
40 ></ulink
41 >). В &kdevelop; напрямую доступна лишь небольшая часть функциональности &cvs;, необходимая для каждодневной работы. </para>
43 <para
44 >Вам потребуется знание основ использования &CVS;, в частности, вы должны знать как загружать (checkout) проект из хранилища. Мы рекомендуем прочитать книгу <ulink url="http://cvsbook.red-bean.com/cvsbook.html"
45 >Open Source Development With CVS</ulink
46 >, написанную Карлом Фогелем (Karl Fogel), распространяемую бесплатно (кроме нетехнических глав). Кроме того, вы можете прочитать о &CVS; по-русски на сайте <ulink url="http://www.linux.org.ru/books/GNU/cvs_ru/"
47 >linux.org.ru</ulink
48 > </para>
50 </sect1
51 > <!-- cvs-basics -->
53 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
55 <sect1 id="cvs-commands">
56 <title
57 >Команды &CVS; в &kdevelop;</title>
59 <para
60 >В обзоре файлов доступны такие пункты контекстного меню: </para>
62 <variablelist>
63 <varlistentry>
64 <term
65 >Добавить в хранилище</term>
66 <listitem>
67 <para
68 >Подготавливает отмеченные файлы к передаче их в хранилище. </para>
69 </listitem>
70 </varlistentry>
72 <varlistentry>
73 <term
74 >Удалить из хранилища</term>
75 <listitem>
76 <para
77 >Подготавливает отмеченный файл к удалению из хранилища. При этом файл также удаляется на локальной файловой системе. </para>
78 </listitem>
79 </varlistentry>
81 <varlistentry>
82 <term
83 >Обновить</term>
84 <listitem>
85 <para
86 >Выполняет команду <command
87 >cvs update</command
88 > для объединения изменений, сделанных другими пользователями. Если вы вызываете эту команду для каталога, обновление происходит рекурсивно, если только вы не отключили это в конфигурационном файле <filename
89 >.cvsrc</filename
90 >. </para>
91 </listitem>
92 </varlistentry>
94 <varlistentry>
95 <term
96 >Передать на сервер</term>
97 <listitem>
98 <para
99 >Выполняет команду <command
100 >cvs commit</command
101 > для передачи изменений, сделанных вами в хранилище. Помните, что перед этим необходимо выполнить обновление. Иначе, если другой пользователь уже передал свои изменения до этого, может возникнуть конфликт. </para>
102 </listitem>
103 </varlistentry>
104 </variablelist>
106 <para
107 >Все эти команды запускаются как подпроцесс &kdevelop; без дополнительных ключей или переменных окружения. Это создаёт проблемы, например, когда вы работаете через соединение &ssh;, и вам нужно ввести пароль. Это необходимо, например, при работе с <filename
108 >sourceforge.net</filename
109 >. Работа над этой проблемой описана в FAQ &CVS;/SSH, который можно найти в разделе документации проекта SourceForge. </para>
111 </sect1
112 > <!-- cvs-basics -->
114 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
116 <sect1 id="cvs-behind">
117 <title
118 >За кулисами</title>
120 <sect2 id="cvs-behind-workdir">
121 <title
122 >Что &CVS; записывает в рабочем каталоге</title>
124 <para
125 >(... в процессе написания ...) </para>
126 </sect2
127 > <!-- cvs-behind-workdir -->
129 </sect1
130 > <!-- cvs-behind -->
132 </chapter
133 > <!-- cvs -->