[svnbook commit] r1437 - in trunk/src/ru: . book
dmitriy
svnbook-dev at red-bean.com
Sat Jun 11 06:04:08 CDT 2005
Author: dmitriy
Date: Sat Jun 11 06:04:07 2005
New Revision: 1437
Added:
trunk/src/ru/sync.py (contents, props changed)
Modified:
trunk/src/ru/LAST_UPDATED
trunk/src/ru/Makefile
trunk/src/ru/TRANSLATION-STATUS
trunk/src/ru/book/ch02.xml
trunk/src/ru/book/ch03.xml
Log:
Are translated 40% of ch03.xml and added new script for
synchronisation with en/
* TRANSLATION-STATUS
change status for ch03.xml
* sync.py
New script for synchronisation
* LAST_UPDATED
Was deleted empty line
* book/ch02.xml
'-' was replaced with '—'
* book/ch03.xml
40% are translated
* Makefile
Rule 'sync' was removed, now for this are used 'sync.py'
Modified: trunk/src/ru/LAST_UPDATED
==============================================================================
--- trunk/src/ru/LAST_UPDATED (original)
+++ trunk/src/ru/LAST_UPDATED Sat Jun 11 06:04:07 2005
@@ -1 +1 @@
-1420
+1420
\ No newline at end of file
Modified: trunk/src/ru/Makefile
==============================================================================
--- trunk/src/ru/Makefile (original)
+++ trunk/src/ru/Makefile Sat Jun 11 06:04:07 2005
@@ -16,19 +16,5 @@
echo '<!ENTITY svn.version "">' > $(BOOK_VERSION_SOURCE); \
fi
-sync:
- mkdir sync.LOCK
- svn update
- svn status -q
- @echo
- @echo Note local changes and press ENTER...
- @read
- svnversion . > HEADREV
- svn merge -r$$(cat LAST_UPDATED):$$(cat HEADREV) \
- https://svn.red-bean.com/svnbook/trunk/src/en/
- @echo
- mv HEADREV LAST_UPDATED
- rmdir sync.LOCK
-
dist-html-chunk:
../tools/book-dist.py --html-chunk --name svnbook-html-chunk-ru
Modified: trunk/src/ru/TRANSLATION-STATUS
==============================================================================
--- trunk/src/ru/TRANSLATION-STATUS (original)
+++ trunk/src/ru/TRANSLATION-STATUS Sat Jun 11 06:04:07 2005
@@ -14,7 +14,7 @@
2.1.1 Urgent needs
book/ch00.xml:
- - Properly escape -- in @ENGLISH comments in
+ - Properly escape -- in @ENGLISH comments in
svn.preface.new-1-1.
- Finish translation of svn.preface.acks, somewhat depends on
ru/ProperNames.
@@ -39,7 +39,7 @@
These files are partially translated and work is continued by the
specified commiter, or they are in process of being updated.
- book/ch03.xml dmitriy 0%
+ book/ch03.xml dmitriy 40%
book/ch09.xml Maverick.Crank.GRey 0% [Initial translation]
2.1.5. Forsaken
Modified: trunk/src/ru/book/ch02.xml
==============================================================================
--- trunk/src/ru/book/ch02.xml (original)
+++ trunk/src/ru/book/ch02.xml Sat Jun 11 06:04:07 2005
@@ -30,7 +30,7 @@
@ ENGLISH }}} -->
<para>Несмотря на то, что примеры в этой главе показывают людей
делящих между собой набор исходников программы, помните, что
- Subversion может управлять набором файлов любого типа - она не
+ Subversion может управлять набором файлов любого типа — она не
ограничивается помощью компьютерным программистам.</para>
</simplesect>
@@ -56,7 +56,7 @@
<para>Subversion является централизованной системой для разделения
информации. В ее основе хранилище, являющееся центром хранения
данных. Хранилище хранит информацию в форме
- <firstterm>дерева файлов</firstterm> - типичном
+ <firstterm>дерева файлов</firstterm> — типичном
представлении файлов и директорий. Любое количество
<firstterm>клиентов</firstterm> подключается к хранилищу и
читает или записывает эти файлы. Записывая данные, клиент
@@ -85,7 +85,7 @@
<para>Почему мы заостряем на этом внимание? Пока это звучит как
определение типичного файл-сервера. И действительно, хранилище
<emphasis>является</emphasis> разновидностью файл-сервера, однако не
- совсем обычного. Что делает хранилище Subversion особенным - это то,
+ совсем обычного. Что делает хранилище Subversion особенным — это то,
что он <emphasis>запоминает каждое внесенное изменение</emphasis>:
любое изменение любого файла, равно как изменения в самом дереве
директорий такие как добавление, удаление и реорганизация файлов и
@@ -182,9 +182,9 @@
(так как система помнит каждое изменение) внесенные Гарри изменения
<emphasis>не будут </emphasis>отражены в новой версии файла Сэлли,
потому что, начиная, она, не видела изменения Гарри. Работа Гарри
- фактически потеряна - или, по крайней мере, отсутствует в последней
- версии файла - по случайности. Как раз этой ситуации мы и хотим
- избежать!</para>
+ фактически потеряна — или, по крайней мере, отсутствует в
+ последней версии файла — по случайности. Как раз этой ситуации
+ мы и хотим избежать!</para>
<figure id="svn.basic.vsn-models.problem-sharing.dia-1">
<title>Проблема потери изменений</title>
@@ -224,7 +224,7 @@
Блокирование файла это как взятие книги в библиотеке; если
Гарри заблокировал файл то Салли ни как не сможет его изменить.
Хранилище отклонит запрос, если она попытается заблокировать файл.
- Все что ей остается - это читать файл и ждать когда Гарри закончит
+ Все что ей остается — это читать файл и ждать когда Гарри закончит
свои изменения и снимет блокировку. После того как Гарри разблокирует
файл, он возвращает его обратно и теперь Салли может получить его,
заблокировать и редактировать. <xref
@@ -321,7 +321,7 @@
файл В. Но допустим, что А и В зависят друг от друга и
сделанные в каждом изменения семантически не совместимы.
Неожиданно А и В больше не работают вместе. Блокирующая система
- бессильна в предотвращении проблемы - вместо этого она
+ бессильна в предотвращении проблемы — вместо этого она
обеспечила ложное чувство безопасности. Для Гарри и Салли
просто вообразить, что, блокируя файлы каждый начинает безопасную
изолированную задачу и не беспокоиться в начале об обсуждении их
@@ -355,7 +355,7 @@
<firstterm>копирование-изменение-слияние</firstterm> в качестве
альтернативы блокированию. В этой модели каждый пользовательский
клиент связывается с хранилищем проекта и создает персональную
- <firstterm>рабочую копию</firstterm> - локальное отражение
+ <firstterm>рабочую копию</firstterm> — локальное отражение
файлов и директорий хранилища. После этого пользователи работают
параллельно, изменяя свои личные копии. В конце концов, личные копии
сливаются в новую, финальную версию. Обычно система управления
@@ -438,7 +438,7 @@
сделать между ними выбор. Помните, что ПО не может автоматически
разрешать конфликты; только человек способен к пониманию и выполнению
осмысленного выбора. Разрешив вручную перекрывающиеся изменения -
- возможно, после обсуждения с Салли - он может безопасно сохранить
+ возможно, после обсуждения с Салли — он может безопасно сохранить
объединенный файл обратно в хранилище.</para>
<!-- @ENGLISH {{{
@@ -508,9 +508,9 @@
@ ENGLISH }}} -->
<para>Модель копирование-изменение-слияние основывается на
предположении о том, что файлы контекстно объединяемы: это так
- если большинство файлов в хранилище - основаные на строках текстовые
- файлы (такие как исходный код программы). Но для файлов бинарных
- форматов, таких как графические или звуковые, как правило
+ если большинство файлов в хранилище — основаные на строках
+ текстовые файлы (такие как исходный код программы). Но для файлов
+ бинарных форматов, таких как графические или звуковые, как правило
не возможно объединить конфликтующие изменения. В таких ситуациях
пользователям действительно необходимо быть внимательными при
изменении файла. Без раздельного доступа кто-то может впустую
@@ -997,11 +997,11 @@
в Subversion относятся <emphasis>ко всем</emphasis>, а не только к
отдельно взятым файлам. Каждый номер правки соответствует целому
дереву, отдельному состоянию хранилища после зафиксированного
- изменения. Иначе говоря - правка N представляет состояние файловой
- системы хранилища после выполнения N-ой фиксации. Когда
+ изменения. Иначе говоря — правка N представляет состояние
+ файловой системы хранилища после выполнения N-ой фиксации. Когда
пользователи Subversion говорят о <quote>правке 5 <filename>foo.c
</filename></quote>, на самом деле речь идет о <quote><filename>
- foo.c</filename> входящем в правку 5</quote>. Замете, что, в общем
+ foo.c</filename> входящем в правку 5</quote>. Замете, что, в общем
случае, правки N и M файла <emphasis>не обязательно</emphasis>
будут отличаться. Так как CVS используется пофайловая нумерация
правок, пользователи CVS могут обратиться за более подробной
@@ -1250,10 +1250,6 @@
воспользуйтесь командой <command>svn status</command>. За более
подробной информацией об этой команде обратитесь к <xref
linkend="svn.tour.cycle.examine.status" />.</para>
- <para>This may sound like a lot to keep track of, but the
- <command>svn status</command> command will show you the state
- of any item in your working copy. For more information on
- that command, see <xref linkend="svn.tour.cycle.examine.status" />.</para>
</sect2>
Modified: trunk/src/ru/book/ch03.xml
==============================================================================
--- trunk/src/ru/book/ch03.xml (original)
+++ trunk/src/ru/book/ch03.xml Sat Jun 11 06:04:07 2005
@@ -9,6 +9,7 @@
<simplesect>
+ <!-- @ENGLISH {{{
<para>Now we will go into the details of using Subversion. By the
time you reach the end of this chapter, you will be able to
perform almost all the tasks you need to use Subversion in a
@@ -17,7 +18,17 @@
changes. You'll also see how to bring changes made by others
into your working copy, examine them, and work through any
conflicts that might arise.</para>
+ @ ENGLISH }}} -->
+ <para>Теперь перейдем к более тесному использованию Subversion.
+ Ко времени когда вы достигнете конца этой главы, вы сможете
+ выполнить практически все задачи, возникающие при использовании
+ Subversion в течении обычного рабочего дня. Вы начнете с
+ первоначального создания рабочей копии вашего кода и пойдете
+ через внесение изменений и проверку этих изменений. Вы познакомитесь
+ с тем, как внедрить изменения сделанные другими в вашу рабочую копию,
+ проверить их и решить любые возникшие конфликты.</para>
+ <!-- @ENGLISH {{{
<para>Note that this chapter is not meant to be an exhaustive list
of all Subversion's commands—rather, it's a conversational
introduction to the most common Subversion tasks you'll
@@ -25,6 +36,14 @@
<xref linkend="svn.basic"/> and are familiar with the general
model of Subversion. For a complete reference of all commands,
see <xref linkend="svn.ref"/>.</para>
+ @ ENGLISH }}} -->
+ <para>Обратите внимание на то, что эта глава не ставит цели быть
+ всеобъемлющим списком всех команд Subversion — скорее это
+ описательное введение в наиболее вероятные задачи с которыми вы можете
+ столкнуться. Эта глава предполагает, что вы прочитали и поняли <xref
+ linkend="svn.basic"/> и хорошо разобрались с общей моделью Subversion.
+ За подробным описанием всех команд обратитесь в <xref
+ linkend="svn.ref"/>.</para>
</simplesect>
@@ -32,15 +51,25 @@
<!-- ======================== SECTION 1 ============================== -->
<!-- ================================================================= -->
<sect1 id="svn.tour.help">
+ <!-- @ENGLISH {{{
<title>Help!</title>
+ @ ENGLISH }}} -->
+ <title>Читайте справку!</title>
-
+ <!-- @ENGLISH {{{
<para>Before reading on, here is the most important command you'll
ever need when using Subversion: <command>svn help</command>.
The Subversion command-line client is
self-documenting—at any time, a quick <command>svn help
<subcommand></command> will describe the syntax, switches,
and behavior of the <command>subcommand</command>.</para>
+ @ ENGLISH }}} -->
+ <para>Перед тем как продолжить, приведем самую главную из всех команду
+ при использовании Subversion: <command>svn help</command>.
+ Клиент для командной строки в Subversion является самодокуметируемым -
+ в любой момент быстрый запуск <command>svn help
+ <subcommand></command> покажет описание синтаксиса, параметров и
+ поведения подкоманды <command>subcommand</command>.</para>
</sect1>
@@ -48,14 +77,24 @@
<!-- ======================== SECTION 2 ============================== -->
<!-- ================================================================= -->
<sect1 id="svn.tour.import">
+ <!-- @ENGLISH {{{
<title>Import</title>
+ @ ENGLISH }}} -->
+ <title>Импорт</title>
+ <!-- @ENGLISH {{{
<para>You use <command>svn import</command> to import a new
project into a Subversion repository. While this is most likely
the very first thing you will do when you set up your Subversion
server, it's not something that happens very often. For a
detailed description of import, see <xref
linkend="svn.tour.other.import"/> later in this chapter.</para>
+ @ ENGLISH }}} -->
+ <para>Для импортированния нового проекта в Subversion-хранилище
+ вы используете <command>svn import</command>. В то время как
+ вероятно, это первое, что вы делаете при настройке Subversion-сервера
+ выполняется это не так и часто. Подробное описание импорта см.
+ <xref linkend="svn.tour.other.import"/> далее в этой главе.</para>
</sect1>
@@ -63,32 +102,60 @@
<!-- ======================== SECTION 3 ============================== -->
<!-- ================================================================= -->
<sect1 id="svn.tour.revs">
+ <!-- @ENGLISH {{{
<title>Revisions: Numbers, Keywords, and Dates, Oh My!</title>
+ @ ENGLISH }}} -->
+ <title>Правки: Номера, Ключевые слова и Даты, Oh My!</title>
+ <!-- @ENGLISH {{{
<para>Before we go on, you should know a bit about how to identify
a particular revision in your repository. As you learned in
<xref linkend="svn.basic.in-action.revs"/>, a revision is a
<quote>snapshot</quote> of the repository at a particular moment
in time. As you continue to commit and grow your repository,
you need a mechanism for identifying these snapshots.</para>
+ @ ENGLISH }}} -->
+ <para>Перед тем как продолжить, вам нужно немного узнать о том, как
+ идентифицировать отдельную правку в хранилище. Как вы узнали в
+ <xref linkend="svn.basic.in-action.revs"/> правка представляет собой
+ <quote>снимок</quote> хранилища в конкретный момент времени.
+ Помере продолжения фиксаций и увеличения хранилища вам потребуется
+ механизм для идентифицирования этих снимков.</para>
+ <!-- @ENGLISH {{{
<para>You specify these revisions by using the
- <option>--revision</option> (<option>-r</option>) switch plus
- the revision you want (<command>svn --revision REV</command>) or
+ <option>–-revision</option> (<option>-r</option>) switch plus
+ the revision you want (<command>svn –-revision REV</command>) or
you can specify a range by separating two revisions with a colon
- (<command>svn --revision REV1:REV2</command>). And Subversion
+ (<command>svn –-revision REV1:REV2</command>). And Subversion
lets you refer to these revisions by number, keyword, or
date.</para>
-
+ @ ENGLISH }}} -->
+ <para>Для указания этих правок используется ключ
+ <option>--revision</option> (<option>-r</option>) плюс нужная
+ правка либо можно указать диапазон разделяя две правки двоеточием
+ (<command>svn --revision REV1:REV2</command>). Subversion
+ позволяет обращаться к правкам по номеру, ключевому слову или
+ дате.</para>
+
<sect2 id="svn.tour.revs.numbers">
+ <!-- @ENGLISH {{{
<title>Revision Numbers</title>
-
+ @ ENGLISH }}} -->
+ <title>Номера правок</title>
+
+ <!-- @ENGLISH {{{
<para>When you create a new Subversion repository, it begins its
life at revision zero and each successive commit increases the
revision number by one. After your commit completes, the
Subversion client informs you of the new revision
number:</para>
-
+ @ ENGLISH }}} -->
+ <para>Когда вы создаете новое хранилище Subversion, свою жизнь оно
+ начинает с правки ноль и каждая последующая фиксация увеличивает
+ номер правки на единицу. После завершения фиксации, Subversion
+ клиент сообщает вам новый номер правки:</para>
+
<screen>
$ svn commit --message "Corrected number of cheese slices."
Sending sandwich.txt
@@ -96,23 +163,40 @@
Committed revision 3.
</screen>
+ <!-- @ENGLISH {{{
<para>If at any point in the future you want to refer to that
revision (we'll see how and why we might want to do that later
in this chapter), you can refer to it as
<quote>3</quote>.</para>
+ @ ENGLISH }}} -->
+ <para>В будущем, в любой момент если вам нужно будет сослаться
+ на эту правку (как и почему может возникнуть такая необходимость
+ будет видна дальше по тексту) вы можете сослаться на нее как на
+ <quote>3</quote>.</para>
</sect2>
-
+
<sect2 id="svn.tour.revs.keywords">
+ <!-- @ENGLISH {{{
<title>Revision Keywords</title>
-
+ @ ENGLISH }}} -->
+ <title>Ключевые слова правок</title>
+
+ <!-- @ENGLISH {{{
<para>The Subversion client understands a number of
<firstterm>revision keywords</firstterm>. These keywords
can be used instead of integer arguments to the
- <option>--revision</option> switch, and are resolved into
+ <option>–-revision</option> switch, and are resolved into
specific revision numbers by Subversion:</para>
+ @ ENGLISH }}} -->
+ <para>Subversion клиент понимает определенное количество
+ <firstterm>ключевых слов правок</firstterm>. Эти ключевые слова
+ моогут буть использованы в место цифровых аргументов в параметре
+ <option>--revision</option> и будут преобразованы Subversion
+ в конкретные номера правок:</para>
<note>
+ <!-- @ENGLISH {{{
<para>Each directory in your working copy contains an
administrative subdirectory called
<filename>.svn</filename>. For every file in a directory,
@@ -124,97 +208,178 @@
refer to this file as the <firstterm>pristine
copy</firstterm> or <firstterm>text-base</firstterm> version
of your file, and it's always an exact byte-for-byte copy of
- the file as it exists in the repository.</para>
+ the file as it exists in the repository.</para>
+ @ ENGLISH }}} -->
+ <para>Каждая директория рабочей копии содержит административную
+ поддиректорию <filename>.svn</filename>. Для каждого файла в
+ директории, Subversion сохраняет копию этого файла в
+ административной папке. Эта копия является не модифицированной
+ (без раскрытия ключевых слов, без преобразования концовок строк,
+ без чего-либо другого) копией файла какой он есть в последней
+ правке (названой <quote>BASE</quote>) до которой вы обновили
+ его в вашей рабочей копии. Мы обращаемся к этому файлу, как
+ к <firstterm>первоисточнику</firstterm> или
+ <firstterm>базовой</firstterm> версии вашего файла и он всегда
+ является точной по байтовой копией того файла который находится в
+ хранилище.</para>
</note>
-
+
<variablelist>
-
+
<varlistentry>
<term>HEAD</term>
<listitem>
+ <!-- @ENGLISH {{{
<para>The latest revision in the repository.</para>
+ @ ENGLISH }}} -->
+ <para>Последняя правка хранилища</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>BASE</term>
<listitem>
+ <!-- @ENGLISH {{{
<para>The <quote>pristine</quote> revision of an item in a
working copy.</para>
+ @ ENGLISH }}} -->
+ <para><quote>Исходная</quote> правка элемента в рабочей
+ копии.</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>COMMITTED</term>
<listitem>
+ <!-- @ENGLISH {{{
<para>The last revision in which an item changed before (or
at) <literal>BASE</literal>.</para>
+ @ ENGLISH }}} -->
+ <para>Последняя правка в которой элемент изменялся в диапазоне до
+ (или включая) <literal>BASE</literal>.</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>PREV</term>
<listitem>
+ <!-- @ENGLISH {{{
<para>The revision just <emphasis>before</emphasis> the last
revision in which an item changed. (Technically,
<literal>COMMITTED</literal> - 1.)</para>
+ @ ENGLISH }}} -->
+ <para>Ревизия, <emphasis>предшествующая</emphasis> последней
+ ревизии, в которой элемент менялся. (Технически, <literal>
+ COMMITTED</literal> - 1.)</para>
</listitem>
</varlistentry>
-
+
</variablelist>
<note>
+ <!-- @ENGLISH {{{
<para><literal>PREV</literal>, <literal>BASE</literal>, and
<literal>COMMITTED</literal> can be used to refer to local
paths, but not to URLs.</para>
+ @ ENGLISH }}} -->
+ <para><literal>PREV</literal>, <literal>BASE</literal> и
+ <literal>COMMITTED</literal> могут использоваться при обращении по
+ локальным путям, но не по URL.</para>
</note>
-
+
+ <!-- @ENGLISH {{{
<para>Here are some examples of revision keywords in action.
Don't worry if the commands don't make sense yet; we'll be
explaining these commands as we go through the chapter:</para>
-
+ @ ENGLISH }}} -->
+ <para>Вот несколько примеров использования ключевых слов правок.
+ Не волнуйтесь, если смысл команд пока не понятен; по мере дальнейшего
+ продвижения мы объясним эти команды:</para>
+
<screen>
$ svn diff --revision PREV:COMMITTED foo.c
+<!-- @ENGLISH {{{
# shows the last change committed to foo.c
+@ ENGLISH }}} -->
+# показать последнее изменение зафиксированное для foo.c
$ svn log --revision HEAD
+<!-- @ENGLISH {{{
# shows log message for the latest repository commit
+@ ENGLISH }}} -->
+# показать лог для последней фиксации хранилища
$ svn diff --revision HEAD
+<!-- @ENGLISH {{{
# compares your working file (with local mods) to the latest version
# in the repository.
+@ ENGLISH }}} -->
+# сравнение вашего рабочего файла (с учетом локальных изменений)
+# с последней правкой в хранилище
$ svn diff --revision BASE:HEAD foo.c
-# compares your <quote>pristine</quote> foo.c (no local mods) with the
+<!-- @ENGLISH {{{
+# compares your <quote>pristine</quote> foo.c (no local mods) with the
# latest version in the repository
+@ ENGLISH }}} -->
+# сравнение вашего <quote>исходного</quote> foo.c (без учета локальных
+# изменений) с последней версией в хранилище
$ svn log --revision BASE:HEAD
+<!-- @ENGLISH {{{
# shows all commit logs since you last updated
+@ ENGLISH }}} -->
+# показ всех логов фиксаций со времени вашего последнего обновления
$ svn update --revision PREV foo.c
+<!-- @ENGLISH {{{
# rewinds the last change on foo.c.
# (foo.c's working revision is decreased.)
+@ ENGLISH }}} -->
+# откат последних изменений в foo.c.
+# (рабочая ревизия foo.c понижается.)
</screen>
-
+
+ <!-- @ENGLISH {{{
<para>These keywords allow you to perform many common (and
helpful) operations without having to look up specific
revision numbers or remember the exact revision of your
working copy.</para>
-
+ @ ENGLISH }}} -->
+ <para>Эти ключевые слова позволят вам выполнять многие часто
+ используемые (и полезные) операции без необходимости обращаться к
+ конкретным номерам ревизий или точно помнить ревизию своей рабочей
+ копии.</para>
+
</sect2>
-
+
<sect2 id="svn.tour.revs.dates">
+ <!-- @ENGLISH {{{
<title>Revision Dates</title>
-
+ @ ENGLISH }}} -->
+ <title>Даты правок</title>
+
+ <!-- @ENGLISH {{{
<para>Anywhere that you specify a revision number or revision
keyword, you can also specify a date
inside curly braces <quote>{}</quote>. You can even access
a range of changes in the repository using both dates and
revisions together!</para>
-
+ @ ENGLISH }}} -->
+ <para>Везде, где вы указываете номер правки или ключевое слово,
+ вы так же можете использать и дату, указав ее в фигурных скобках
+ <quote>{}</quote>. Вы даже можете получить доступ к диапазону
+ изменений в хранилище, указывая даты и номера
+ ревизий одновременно!</para>
+
+ <!-- @ENGLISH {{{
<para>Here are examples of the date formats that Subversion
accepts. Remember to use quotes around any date that contains
spaces.</para>
+ @ ENGLISH }}} -->
+ <para>Вот примеры форматов, используемых для указания даты,
+ которые принимает Subversion. Не забывайте использовать кавычки
+ при написании даты содержащей пробелы.</para>
<screen>
$ svn checkout --revision {2002-02-17}
@@ -230,21 +395,29 @@
$ svn checkout --revision {20020217T1530-0500}
…
</screen>
-
+
+ <!-- @ENGLISH {{{
<para>When you specify a date as a revision, Subversion finds
the most recent revision of the repository as of that
date:</para>
-
+ @ ENGLISH }}} -->
+ <para>Когда вы указываете в качестве правки дату, Subversion
+ найдет правку наиболее соответствующую запрошенной дате:</para>
+
<screen>
$ svn log --revision {2002-11-28}
------------------------------------------------------------------------
r12 | ira | 2002-11-27 12:31:51 -0600 (Wed, 27 Nov 2002) | 6 lines
…
</screen>
-
+
<sidebar>
+ <!-- @ENGLISH {{{
<title>Is Subversion a Day Early?</title>
-
+ @ ENGLISH }}} -->
+ <title>Is Subversion a Day Early?</title>
+
+ <!-- @ENGLISH {{{
<para>If you specify a single date as a revision without
specifying a time of day (for example
<literal>2002-11-27</literal>), you may think that Subversion
@@ -257,28 +430,54 @@
<literal>2002-11-27</literal>, Subversion assumes a time of
00:00:00, so looking for the most recent revision won't
return anything on the day of the 27th.</para>
+ @ ENGLISH }}} -->
+ <para>Указав при обращении к правке только дату, без указания
+ времени (например, <literal>2002-11-27</literal>), наверное,
+ вы подумаете, что Subversion выдаст вам последнюю правку за 27
+ ноября. А вместо этого можете получить правку за 26 число или
+ даже более раннюю. Помните, что Subversion будет искать
+ <emphasis>наиболее отвечающую</emphasis> указанной вами дате
+ правку хранилища. Если вы укажите дату без указания времени,
+ например <literal>2002-11-27</literal>, Subversion примет за
+ временную метку 00:00:00 и таким образом поиск ближайшей к 27
+ числу ревизии не даст ничего относящегося к 27 ноября.</para>
+ <!-- @ENGLISH {{{
<para>If you want to include the 27th in your search, you can
either specify the 27th with the time (<literal>{"2002-11-27
23:59"}</literal>), or just specify the next day
(<literal>{2002-11-28}</literal>).</para>
-
+ @ ENGLISH }}} -->
+ <para>Если вам необходимо учесть при поиске 27 число вы можете либо
+ указать 27 число с временной меткой (<literal>{"2002-11-27
+ 23:59"}</literal>) либо просто использовать в запросе следующий
+ день (<literal>{2002-11-28}</literal>).</para>
+
</sidebar>
-
+
+ <!-- @ENGLISH {{{
<para>You can also use a range of dates. Subversion will find
all revisions between both dates, inclusive:</para>
-
+ @ ENGLISH }}} -->
+ <para>Кроме того, вы можете использовать диапазоны дат. Subversion
+ найдет все правки между обеими датами включительно:</para>
+
<screen>
$ svn log --revision {2002-11-20}:{2002-11-29}
…
</screen>
-
+
+ <!-- @ENGLISH {{{
<para>As we pointed out, you can also mix dates and revisions:</para>
-
+ @ ENGLISH }}} -->
+ <para>Как мы уже говорили, вы можете использовать даты и номера
+ ревизий одновременно:</para>
+
<screen>
$ svn log --revision {2002-11-20}:4040
</screen>
+ <!-- @ENGLISH {{{
<para>Users should be aware of a subtlety that can become quite
a stumbling-block when dealing with dates in Subversion. Since
the timestamp of a revision is stored as a property of the
@@ -287,24 +486,42 @@
complete falsifications of true chronology, or even removed
altogether. This will wreak havoc on the internal
date-to-revision conversion that Subversion performs.</para>
-
+ @ ENGLISH }}} -->
+ <para>Пользователи должны осознавать тонкость, которая может стать
+ камнем преткновения при работе с Subversion. Так как временная метка
+ правки сохраняется как свойство правки — как не отслеживаемое,
+ изменяемое свойство правки — временная метка может
+ быть изменена, что приведет к искажению истинной хронологии, или даже
+ полной ее потере. Такие действия нарушат работу внутреннего механизма
+ перевода даты в номер правки используемого Subversion.</para>
+
</sect2>
-
+
</sect1>
<!-- ================================================================= -->
<!-- ======================== SECTION 4 ============================== -->
<!-- ================================================================= -->
<sect1 id="svn.tour.initial">
+ <!-- @ENGLISH {{{
<title>Initial Checkout</title>
+ @ ENGLISH }}} -->
+ <title>Создание рабочей копии</title>
+ <!-- @ENGLISH {{{
<para>Most of the time, you will start using a Subversion
repository by doing a <firstterm>checkout</firstterm> of your
project. Checking out a repository creates a copy of it on your
local machine. This copy contains the <literal>HEAD</literal>
(latest revision) of the Subversion repository that you specify
on the command line:</para>
-
+ @ ENGLISH }}} -->
+ <para>Как правило использование хранилища Subversion начинается с
+ <firstterm>создания рабочей копии</firstterm> вашего проекта.
+ При создании рабочей копии на вашей локальной машине создается копия
+ хранилища. Эта копия содержит <literal>HEAD</literal> (последнюю
+ ревизию) указаного вами в командной строке хранилища:</para>
+
<screen>
$ svn checkout http://svn.collab.net/repos/svn/trunk
@@ -316,22 +533,37 @@
…
Checked out revision 2499.
</screen>
-
+
<sidebar>
+ <!-- @ENGLISH {{{
<title>Repository Layout</title>
+ @ ENGLISH }}} -->
+ <title>Структура хранилища</title>
+ <!-- @ENGLISH {{{
<para>If you're wondering what <literal>trunk</literal> is all
about in the above URL, it's part of the way we recommend
you lay out your Subversion repository which we'll talk a lot
more about in <xref linkend="svn.branchmerge"/>.</para>
+ @ ENGLISH }}} -->
+ <para>Если вас удивляет почему в приведенном выше URL встречается
+ <literal>trunk</literal> — это часть рекомендуемой нами
+ структуры хранилища Subversion, о ней мы поговорим более подробно в
+ <xref linkend="svn.branchmerge"/>.</para>
</sidebar>
+ <!-- @ENGLISH {{{
<para>Although the above example checks out the trunk directory,
you can just as easily check out any deep subdirectory of a
repository by specifying the subdirectory in the checkout
URL:</para>
-
+ @ ENGLISH }}} -->
+ <para>Хотя в приведенном примере рабочая копия создается на
+ основе корневой директории вы можете легко создать рабочую копию на
+ основе поддиректории любой степени вложенности, указав в URL при
+ создании рабочей копии поддиректорию:</para>
+
<screen>
$ svn checkout http://svn.collab.net/repos/svn/trunk/doc/book/tools
A tools/readme-dblite.html
@@ -342,7 +574,8 @@
…
Checked out revision 2499.
</screen>
-
+
+ <!-- @ENGLISH {{{
<para>Since Subversion uses a <quote>copy-modify-merge</quote>
model instead of <quote>lock-modify-unlock</quote> (see <xref
linkend="svn.basic"/>), you're already able to start making
@@ -351,8 +584,18 @@
directories on your system. You can edit and change them, move
them around, you can even delete the entire working copy and
forget about it.</para>
+ @ ENGLISH }}} -->
+ <para>Так как Subversion использует модель
+ <quote>копирование-изменение-слияние</quote> вместо модели
+ <quote>блокирование-изменение-разблокирование</quote> (см.
+ <xref linkend="svn.basic"/>) вы уже можете начинать вносить
+ изменения в файлы и директории своей рабочей копии. Ваша рабочая
+ копия ничем не отличается от любого другого набора файлов на вашей
+ системе. Вы можете редактировать и менять их, перемещать, вы даже
+ можете полностью удалить рабочую копию и забыть о ней.</para>
<note>
+ <!-- @ENGLISH {{{
<para>While your working copy is <quote>just like any other
collection of files and directories on your system</quote>,
you need to let Subversion know if you're going to be
@@ -362,15 +605,34 @@
move</command> instead of the copy and move commands
provided by your operating system. We'll talk more about
them later in this chapter.</para>
+ @ ENGLISH }}} -->
+ <para>Не смотря на то что рабочая копия выглядит <quote>как и любой
+ другой набор файлов на вашей системе</quote> вы должны поставить в
+ известность Subversion если вы будете что либо реорганизовывать в
+ рабочей копии. Если вы хотите скопировать или переместить элемент в
+ рабочей копии вы должны использовать команду <command>svn
+ copy</command> или <command>svn move</command> вместо аналогичных
+ команд предлагаемых операционной системой. Мы поговорим о них
+ позже в этой главе.</para>
</note>
+ <!-- @ENGLISH {{{
<para>Unless you're ready to commit a new file or directory, or
changes to existing ones, there's no need to further notify the
Subversion server that you've done anything.</para>
+ @ ENGLISH }}} -->
+ <para>Исключение составляют случаи когда вы готовы зафиксировать новый
+ файл или директорию, или внести изменения в один из существующих, для
+ этого не нужно дополнительно извещать Subversion-сервер о своих
+ действиях.</para>
<sidebar>
+ <!-- @ENGLISH {{{
<title>What's with the <filename>.svn</filename> directory?</title>
+ @ ENGLISH }}} -->
+ <title>А что на счет директории <filename>.svn</filename>?</title>
+ <!-- @ENGLISH {{{
<para>Every directory in a working copy contains an
administrative area, a subdirectory named
<filename>.svn</filename>. Usually, directory listing
@@ -378,14 +640,29 @@
an important directory. Whatever you do, don't delete or
change anything in the administrative area! Subversion
depends on it to manage your working copy.</para>
+ @ ENGLISH }}} -->
+ <para>Каждая директория в рабочей копии содержит административную
+ область, поддиректорию с названием <filename>.svn</filename>.
+ Обычно, команды используемые для вывода листинга директории не
+ показывают эту поддиректорию, но тем не менее это важная
+ директория. Что бы вы не делали, не удаляйте или не меняйте ничего в
+ административной области! Subversion зависит от нее при управлении
+ рабочей копией.</para>
</sidebar>
+ <!-- @ENGLISH {{{
<para>While you can certainly check out a working copy with the
URL of the repository as the only argument, you can also specify
a directory after your repository URL. This places your working
copy in the new directory that you name. For example:</para>
-
+ @ ENGLISH }}} -->
+ <para>Не смотря на то, что вы конечно можете создать рабочую копию
+ указав только один аргумент в виде URL хранилища, вы можете
+ после URL хранилища указать директорию. Тогда ваша рабочая копия
+ будет находиться в новой директории с указанным вами именем.
+ Например:</para>
+
<screen>
$ svn checkout http://svn.collab.net/repos/svn/trunk subv
A subv/subversion.dsw
@@ -396,10 +673,15 @@
…
Checked out revision 2499.
</screen>
-
+
+ <!-- @ENGLISH {{{
<para>That will place your working copy in a directory named
<literal>subv</literal> instead of a directory named
<literal>trunk</literal> as we did previously.</para>
+ @ ENGLISH }}} -->
+ <para>Эта команда поместит рабочую копию в директорию с именем
+ <literal>subv</literal>, вместо директории <literal>trunk</literal>
+ как мы сделали раньше.</para>
</sect1>
@@ -407,28 +689,46 @@
<!-- ======================== SECTION 5 ============================== -->
<!-- ================================================================= -->
<sect1 id="svn.tour.cycle">
+ <!-- @ENGLISH {{{
<title>Basic Work Cycle</title>
+ @ ENGLISH }}} -->
+ <title>Простейший рабочий цикл</title>
+ <!-- @ENGLISH {{{
<para>Subversion has numerous features, options, bells and whistles, but on
a day-to-day basis, odds are that you will only use a few of them. In
this section we'll run through the most common things that you might
find yourself doing with Subversion in the course of a day's work.</para>
-
+ @ ENGLISH }}} -->
+ <para>Subversion имеет множество возможностей, опций и украшательств, но
+ на постоянной основе используются только некоторые из них. В этом
+ разделе мы пройдемся по наиболее часто выполняемым в течении рабочего
+ дня задачам.</para>
+
+ <!-- @ENGLISH {{{
<para>The typical work cycle looks like this:</para>
+ @ ENGLISH }}} -->
+ <para>Типичный рабочий цикл выглядит примерно так:</para>
<itemizedlist>
<listitem>
+ <!-- @ENGLISH {{{
<para>Update your working copy</para>
+ @ ENGLISH }}} -->
+ <para>Обновление рабочей копии</para>
<itemizedlist>
<listitem>
<para><command>svn update</command></para>
</listitem>
</itemizedlist>
-
+
</listitem>
-
+
<listitem>
+ <!-- @ENGLISH {{{
<para>Make changes</para>
+ @ ENGLISH }}} -->
+ <para>Внесение изменений</para>
<itemizedlist>
<listitem>
<para><command>svn add</command></para>
@@ -446,7 +746,10 @@
</listitem>
<listitem>
+ <!-- @ENGLISH {{{
<para>Examine your changes</para>
+ @ ENGLISH }}} -->
+ <para>Анализ изменений</para>
<itemizedlist>
<listitem>
<para><command>svn status</command></para>
@@ -461,7 +764,11 @@
</listitem>
<listitem>
+ <!-- @ENGLISH {{{
<para>Merge others' changes into your working copy</para>
+ @ ENGLISH }}} -->
+ <para>Объединение изменений выполненных другими с вашей рабочей
+ копией</para>
<itemizedlist>
<listitem>
<para><command>svn update</command></para>
@@ -473,7 +780,10 @@
</listitem>
<listitem>
+ <!-- @ENGLISH {{{
<para>Commit your changes</para>
+ @ ENGLISH }}} -->
+ <para>Фиксация изменений</para>
<itemizedlist>
<listitem>
<para><command>svn commit</command></para>
@@ -483,76 +793,124 @@
</itemizedlist>
<sect2 id="svn.tour.cycle.update">
+ <!-- @ENGLISH {{{
<title>Update Your Working Copy</title>
+ @ ENGLISH }}} -->
+ <title>Обновление рабочей копии</title>
+ <!-- @ENGLISH {{{
<para>When working on a project with a team, you'll want to
update your working copy to receive any changes made since
your last update by other developers on the project. Use
<command>svn update</command> to bring your working copy into
sync with the latest revision in the repository.</para>
-
+ @ ENGLISH }}} -->
+ <para>При командной работе над проектом обновление рабочей копии
+ необходимо для получения любых изменений внесенных с момента
+ вашего последнего обновления другими разработчиками проекта.
+ Используйте <command>svn update</command> для синхронизации вашей
+ рабочей копии с последей правкой в хранилище.</para>
+
<screen>
$ svn update
U foo.c
U bar.c
Updated to revision 2.
</screen>
-
+
+ <!-- @ENGLISH {{{
<para>In this case, someone else checked in modifications to
both <filename>foo.c</filename> and <filename>bar.c</filename>
since the last time you updated, and Subversion has updated
your working copy to include those changes.</para>
-
+ @ ENGLISH }}} -->
+ <para>В данном случае, кто-то другой зафиксировал изменения в файлах
+ <filename>foo.c</filename> и <filename>bar.c</filename> после
+ вашего последнего обновления, и Subversion обновила вашу рабочую копию
+ для включения этих изменений.</para>
+
+ <!-- @ENGLISH {{{
<para>Let's examine the output of <command>svn update</command>
a bit more. When the server sends changes to your working
copy, a letter code is displayed next to each item to let you
know what actions Subversion performed to bring your working
copy up-to-date:</para>
+ @ ENGLISH }}} -->
+ <para>Рассмотрим выводимую <command>svn update</command> информацию
+ чуть подробнее. Когда сервер отправляет изменения в вашу рабочую копию
+ для каждого элемента выводится буквенный код, определяющий, какое
+ действие выполнила Subversion для приведения ваше рабочей копии в
+ актуальное состояние:</para>
<variablelist>
<varlistentry>
<term><computeroutput>U foo</computeroutput></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>File <filename>foo</filename> was
<computeroutput>U</computeroutput>pdated (received changes
from the server).</para>
+ @ ENGLISH }}} -->
+ <para>Файл <filename>foo</filename> был
+ <computeroutput>U</computeroutput>pdated — обновлен
+ (получил изменения с сервера).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><computeroutput>A foo</computeroutput></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>File or directory <filename>foo</filename> was
<computeroutput>A</computeroutput>dded to your working
copy.</para>
+ @ ENGLISH }}} -->
+ <para>Файл или директория <filename>foo</filename> были
+ <computeroutput>A</computeroutput>dded — добавлены в
+ рабочую копию.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><computeroutput>D foo</computeroutput></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>File or directory <filename>foo</filename> was
<computeroutput>D</computeroutput>eleted from your working
copy.</para>
+ @ ENGLISH }}} -->
+ <para>Файл или директория <filename>foo</filename> были
+ <computeroutput>D</computeroutput>eleted — удалены
+ из рабочей копии.</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term><computeroutput>R foo</computeroutput></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>File or directory <filename>foo</filename> was
<computeroutput>R</computeroutput>eplaced in your working
copy; that is, <filename>foo</filename> was deleted, and a
new item with the same name was added. While they may have
the same name, the repository considers them to be distinct
objects with distinct histories.</para>
+ @ ENGLISH }}} -->
+ <para>Файл или директория <filename>foo</filename> была
+ <computeroutput>R</computeroutput>eplaced — заменена
+ в рабочей копии; это значит, что <filename>foo</filename>
+ был удален, а новый элемент с таким же именем был добавлен.
+ Не смотря на то, что они могут иметь одинаковое имя,
+ хранилище рассматривает их как разные объекты с
+ отдельной историей.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><computeroutput>G foo</computeroutput></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>File <filename>foo</filename> received new changes
from the repository, but your local copy of the file had
your modifications. Either the changes did not intersect,
@@ -560,18 +918,33 @@
modifications, so Subversion has successfully
mer<computeroutput>G</computeroutput>ed the repository's
changes into the file without a problem.</para>
+ @ ENGLISH }}} -->
+ <para>Файл <filename>foo</filename> получил новые изменения
+ из хранилища, однако ваша локальная копия содержит ваши
+ изменения. Либо изменения не пересекаются либо они точно такие
+ же как ваши локальные изменения по-этому Subversion успешно
+ выполнила mer<computeroutput>G</computeroutput>ed —
+ слияние изменений хранилища с файлом.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><computeroutput>C foo</computeroutput></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>File <filename>foo</filename> received
<computeroutput>C</computeroutput>onflicting changes from
the server. The changes from the server directly overlap
your own changes to the file. No need to panic, though.
This overlap needs to be resolved by a human (you); we
discuss this situation later in this chapter.</para>
+ @ ENGLISH }}} -->
+ <para>Файл <filename>foo</filename> получил от сервера
+ <computeroutput>C</computeroutput>onflicting —
+ конфликтующие изменения. Изменения с сервера пересекаются с
+ вашими изменениями фала. Однако паниковать не стоит. Это
+ перекрытие нуждается в разрешении человеком (вами); мы обсудим
+ эту ситуацию позже в этой главе.</para>
</listitem>
</varlistentry>
@@ -580,8 +953,12 @@
</sect2>
<sect2 id="svn.tour.cycle.edit">
+ <!-- @ENGLISH {{{
<title>Make Changes to Your Working Copy</title>
-
+ @ ENGLISH }}} -->
+ <title>Внесение изменений в рабочую копию</title>
+
+ <!-- @ENGLISH {{{
<para>Now you can get to work and make changes in your
working copy. It's usually most convenient to decide on a
particular change (or set of changes) to make, such as writing
@@ -592,45 +969,88 @@
editing files that are already in Subversion, you may not need
to use any of these commands until you commit. Changes you can
make to your working copy:</para>
-
+ @ ENGLISH }}} -->
+ <para>Теперю вы можете вносить изменения в рабочую копию. Самый
+ подходящий момент внести нужные изменения (или набор изменений),
+ например, добавление новой возможности, исправление ошибки и т. д.
+ Команды Subversion которыми вы будете здесь пользоваться — это
+ <command>svn add</command>, <command>svn delete</command>,
+ <command>svn copy</command> и <command>svn move</command>.
+ Однако если вы просто редактируете файлы которые уже в Subversion
+ ни одна из этих команд вам не нужна. Изменения которые вы можете
+ сделать в вашей рабочей:</para>
+
<variablelist>
-
+
<varlistentry>
+ <!-- @ENGLISH {{{
<term>File changes</term>
+ @ ENGLISH }}} -->
+ <term>Изменения файлов</term>
<listitem>
+ <!-- @ENGLISH {{{
<para>This is the simplest sort of change. You don't need
to tell Subversion that you intend to change a file;
just make your changes. Subversion will be able to
automatically detect which files have been
changed.</para>
+ @ ENGLISH }}} -->
+ <para>Это самый простой вид изменений. Вам не нужно сообщать
+ Subversion о своем намерении изменить файл; просто берите
+ и вносите изменения. Subversion сможет автоматически
+ определить измененные файлы.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <!-- @ENGLISH {{{
<term>Tree changes</term>
+ @ ENGLISH }}} -->
+ <term>Изменения в структуре</term>
<listitem>
+ <!-- @ENGLISH {{{
<para>You can ask Subversion to <quote>mark</quote> files
and directories for scheduled removal, addition,
copying, or moving. While these changes may take place
immediately in your working copy, no additions or
removals will happen in the repository until you commit
them.</para>
+ @ ENGLISH }}} -->
+ <para>Вы можете попросить Subversion <quote>отметить</quote>
+ файлы и директории для удаления, добавления, копирования или
+ перемещения. Не смотря на то, что эти изменения сразу же
+ отразяться в рабочей копии, ни добавления ни удаления
+ не произойдут в хранилище пока вы их не зафиксируете.</para>
</listitem>
</varlistentry>
</variablelist>
-
+
+ <!-- @ENGLISH {{{
<para>To make file changes, use your text editor, word
processor, graphics program, or whatever tool you would
normally use. Subversion handles binary files just as easily
as it handles text files—and just as efficiently
too.</para>
-
+ @ ENGLISH }}} -->
+ <para>Для внесения изменений в файлы используете свой текстовый
+ редактор, текстовый процессор, графическую программу или любой
+ другой инструмент который вы обычно используете. Subversion
+ обрабатывает бинарные файлы так же легко как и текстовые -
+ и настолько же эффективно.</para>
+
+ <!-- @ENGLISH {{{
<para>Here is an overview of the four Subversion subcommands
that you'll use most often to make tree changes (we'll cover
<command>svn import</command> and <command>svn mkdir</command>
later).</para>
+ @ ENGLISH }}} -->
+ <para>Вот обзор четырех подкоманд Subversion которые вы будете
+ использовать наиболее часто при внесении изменений в структуру
+ (команды <command>svn import</command> и <command>svn
+ mkdir</command> мы рассмотрим позже).</para>
+ <!-- @ENGLISH {{{
<warning>
<para>While you can edit your files with whatever tool you
like, you shouldn't change the structure of your working
@@ -640,12 +1060,24 @@
to change the structure of your working copy, and use the
<command>svn add</command> command to place new files and
directories under version control.</para> </warning>
-
+ @ ENGLISH }}} -->
+ <warning>
+ <para>Не смотря на то, что файлы вы можете редактировать
+ как угодно, не следует менять структуру рабочей копии
+ не проинформировав о своих действиях Subversion. Для
+ изменения структуры рабочей копии используйте команды
+ <command>svn copy</command>, <command>svn delete</command>
+ и <command>svn move</command>, а для добавления новых файлов
+ и директорий под контроль версий используйте
+ <command>svn add</command>.</para>
+ </warning>
+
<variablelist>
-
+
<varlistentry>
<term><command>svn add foo</command></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>Schedule file, directory, or symbolic link
<filename>foo</filename> to be added to the repository.
When you next commit, <filename>foo</filename> will
@@ -654,8 +1086,19 @@
underneath <filename>foo</filename> will be scheduled
for addition. If you only want to add
<filename>foo</filename> itself, pass the
- <option>--non-recursive</option> (<option>-N</option>)
+ <option>–-non-recursive</option> (<option>-N</option>)
switch.</para>
+ @ ENGLISH }}} -->
+ <para>Запланировать файл, директорию или символьную ссылку
+ <filename>foo</filename> для добавления в хранилище.
+ При следующей фиксации, <filename>foo</filename> станет
+ компонентом своей родительской директории. Обратите внимание
+ на то, что если <filename>foo</filename> является директорией,
+ то все содержащееся в <filename>foo</filename> будет
+ запланировано для добавления. Если вы хотите добавить
+ отдельно <filename>foo</filename> воспользуйтесь параметром
+ <option>--non-recursive</option>
+ (<option>-N</option>).</para>
</listitem>
</varlistentry>
@@ -663,6 +1106,7 @@
<varlistentry>
<term><command>svn delete foo</command></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>Schedule file, directory, or symbolic link
<filename>foo</filename> to be deleted from the
repository. If <filename>foo</filename> is a file or
@@ -677,12 +1121,27 @@
back anything you delete by checking out (or updating
your working copy) a revision earlier than the one in
which you deleted it.</para></footnote></para>
+ @ ENGLISH }}} -->
+ <para>Запланировать удаление из хранилища файла, директории
+ или символьной ссылки <filename>foo</filename>. Если
+ <filename>foo</filename> является файлом или ссылкой,
+ он сразу же удаляется из вашей рабочей копии. Если
+ <filename>foo</filename> является директорией, она не
+ удаляется, но Subversion запланирует ее удаление.
+ <filename>foo</filename> будет удалена из рабочей копии и
+ хранилища при фиксации изменений.<footnote><para>Конечно,
+ ничего полностью из хранилища не удаляется — удаляется
+ только из <literal>HEAD</literal> хранилища. Вы можете
+ восстановить все, что вы удалили создав рабочую кипию (или
+ обновив существующую) на основе более ранней правки чем та в
+ которой вы удалили элемент.</para></footnote></para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>svn copy foo bar</command></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>Create a new item <filename>bar</filename> as a
duplicate of <filename>foo</filename>.
<filename>bar</filename> is automatically scheduled for
@@ -691,12 +1150,22 @@
recorded (as having originally come from
<filename>foo</filename>). <command>svn copy</command>
does not create intermediate directories.</para>
+ @ ENGLISH }}} -->
+ <para>Создать новый элемент <filename>bar</filename> как
+ копию <filename>foo</filename>. <filename>bar</filename>
+ будет автоматически запланирован для добавления.
+ Когда при следующей фиксации <filename>bar</filename>
+ будет добавлен в хранилище в его истории будет отмечено
+ копирование (то, что первоисточником является
+ <filename>foo</filename>). <command>svn copy</command> не
+ создает промежуточных директорий.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>svn move foo bar</command></term>
<listitem>
+ <!-- @ENGLISH {{{
<para>This command is exactly the same as running
<command>svn copy foo bar; svn delete foo</command>.
That is, <filename>bar</filename> is scheduled for
@@ -704,13 +1173,24 @@
<filename>foo</filename> is scheduled for removal.
<command>svn move</command> does not create intermediate
directories.</para>
+ @ ENGLISH }}} -->
+ <para>Эта команда полностью аналогична выполнению
+ <command>svn copy foo bar; svn delete foo</command>.
+ По-этому, <filename>bar</filename> будет запланирован для
+ добавления как копия <filename>foo</filename>, а
+ <filename>foo</filename> будет запланирорван для удаления.
+ <command>svn move</command> не создает промежуточных
+ директорий.</para>
</listitem>
</varlistentry>
</variablelist>
<sidebar>
+ <!-- @ENGLISH {{{
<title>Changing the Repository Without a Working Copy</title>
+ @ ENGLISH }}} -->
+ <title>Изменение хранилища без участия рабочей копии</title>
<!-- ### pll - Fri 07 Feb 2003 12:55:07 -->
<!-- I find this sidebar rather confusing here, since you really -->
@@ -720,7 +1200,8 @@
<!-- and which types of commands need URLs, etc. This should -->
<!-- probably be in chapter 2 (around the "Subversion in action" -->
<!-- though, so that this sidebar makes more sense. -->
-
+
+ <!-- @ENGLISH {{{
<para>Earlier in this chapter, we said that you have to commit
any changes that you make in order for the repository to
reflect these changes. That's not entirely true—there
@@ -731,7 +1212,18 @@
of <command>svn mkdir</command>, <command>svn
copy</command>, <command>svn move</command>, and
<command>svn delete</command> can work with URLs.</para>
+ @ ENGLISH }}} -->
+ <para>Ранее в этой главе мы сказали, что вам необходимо
+ зафиксировать любые изменения для того, что бы они отразились в
+ хранилище. Это не совсем так — <emphasis>существуют</emphasis>
+ некоторые случаи использования, которые сразу же фиксируют в
+ хранилище изменения структуры. Это происходит только тогда
+ когда подкоманда оперирует напрямую с URL вместо рабочей копии.
+ В частности, отдельные применения <command>svn mkdir</command>,
+ <command>svn copy</command>, <command>svn move</command> и
+ <command>svn delete</command> могут работать с URL.</para>
+ <!-- @ENGLISH {{{
<para>URL operations behave in this manner because commands
that operate on a working copy can use the working copy as a
sort of <quote>staging area</quote> to set up your changes
@@ -739,6 +1231,15 @@
operate on URLs don't have this luxury, so when you operate
directly on a URL, any of the above actions represent an
immediate commit.</para>
+ @ ENGLISH }}} -->
+ <para>URL операции ведут себя подобным образом из-за того, что
+ команды использующие рабочую копию могут использовать ее
+ как своего рода <quote>сартовую площадку</quote> для
+ устаканивания изменений перед фиксацией их в хранилище. Команды
+ оперирующие URL не могут позволить такой роскоши, по-этому,
+ когда вы работаете напрямую с URL, любое из приведенных выше действий
+ приводит к немедленной фиксации.</para>
+
</sidebar>
@@ -746,7 +1247,7 @@
<sect2 id="svn.tour.cycle.examine">
<title>Examine Your Changes</title>
-
+
<para>Once you've finished making changes, you need to commit
them to the repository, but before you do so, it's usually a
good idea to take a look at exactly what you've changed. By
@@ -762,14 +1263,14 @@
two commands to find out what files have changed in your
working copy, and then perhaps the third to revert some (or
all) of those changes.</para>
-
+
<!-- pll - Fri 07 Feb 2003 12:55:07 -->
<!-- I find this following paragraph a little unclear. Mostly for -->
<!-- the same reasons as I found the sidebar above unclear. There -->
<!-- hasn't been much discussion of the Subversion architecture, and -->
<!-- therefore, nothing has been clearly stated wrt the fact that the -->
<!-- repository may not be local. -->
-
+
<para>Subversion has been optimized to help you with this task,
and is able to do many things without communicating with the
repository. In particular, your working copy contains a
@@ -778,16 +1279,16 @@
Because of this, Subversion can quickly show you how your
working files have changed, or even allow you to undo your
changes without contacting the repository.</para>
-
+
<sect3 id="svn.tour.cycle.examine.status">
<title><command>svn status</command></title>
-
+
<para>You'll probably use the <command>svn status</command>
command more than any other Subversion command.</para>
-
+
<sidebar>
<title>CVS Users: Hold That Update!</title>
-
+
<para>You're probably used to using <command>cvs
update</command> to see what changes you've made to your
working copy. <command>svn status</command> will give you
@@ -795,7 +1296,7 @@
your working copy—without accessing the repository
or potentially incorporating new changes published by
other users.</para>
-
+
<para>In Subversion, <command>update</command> does just
that—it updates your working copy with any changes
committed to the repository since the last time you've
@@ -804,7 +1305,7 @@
local modifications you've made.</para>
</sidebar>
-
+
<para>If you run <command>svn status</command> at the top of
your working copy with no arguments, it will detect all file
and tree changes you've made. Below are examples of
@@ -812,7 +1313,7 @@
status</command> can return. (Note that the text following
<literal>#</literal> is not
actually printed by <command>svn status</command>.)</para>
-
+
<screen>
L some_dir # svn left a lock in the .svn area of some_dir
M bar.c # the content in bar.c has local modifications
@@ -830,13 +1331,13 @@
C stuff/loot/glub.c # file has property conflicts from an update
R xyz.c # file is scheduled for replacement
S stuff/squawk # file or dir has been switched to a branch
- K dog.jpg # file is locked locally; lock-token present
+ K dog.jpg # file is locked locally; lock-token present
O cat.jpg # file is locked in the repository by other user
B bird.jpg # file is locked locally, but lock has been broken
T fish.jpg # file is locked locally, but lock has been stolen
</screen>
-
+
<para>In this output format <command>svn status</command>
prints five columns of characters, followed by several
whitespace characters, followed by a file or directory name.
@@ -978,7 +1479,7 @@
properties). If an <computeroutput>M</computeroutput>
appears in the second column, then the properties have been
modified, otherwise a whitespace will be printed.</para>
-
+
<para>The third column will only show whitespace or an
<computeroutput>L</computeroutput> which means that
Subversion has locked the direcotry's
@@ -990,7 +1491,7 @@
presumably Subversion was interrupted and the lock needs to
be cleaned up by running <command>svn cleanup</command>
(more about that later in this chapter).</para>
-
+
<para>The fourth column will only show whitespace or a
<computeroutput>+</computeroutput> which means that the file
or directory is scheduled to be added or modified with
@@ -1021,22 +1522,22 @@
<para>The sixth column shows information about locks, which is
further explained in <xref
linkend="svn.advanced.locking"/>.</para>
-
+
<para>If you pass a specific path to <command>svn
status</command>, it gives you information about that item
alone:</para>
-
+
<screen>
$ svn status stuff/fish.c
D stuff/fish.c
</screen>
-
+
<para><command>svn status</command> also has a
<option>--verbose</option> (<option>-v</option>) switch,
which will show you the status of <emphasis>every</emphasis>
item in your working copy, even if it has not been
changed:</para>
-
+
<screen>
$ svn status --verbose
M 44 23 sally README
@@ -1049,7 +1550,7 @@
A 0 ? ? stuff/things/bloo.h
44 36 harry stuff/things/gloo.c
</screen>
-
+
<para>This is the <quote>long form</quote> output of
<command>svn status</command>. The first column remains
the same, but the second column shows the working-revision of
@@ -1064,7 +1565,7 @@
(<option>-u</option>) switch, which contacts the repository
and adds information about things that are
out-of-date:</para>
-
+
<screen>
$ svn status --show-updates --verbose
M * 44 23 sally README
@@ -1074,7 +1575,7 @@
A 0 ? ? stuff/things/bloo.h
Status against revision: 46
</screen>
-
+
<para>Notice the two asterisks: if you were to run
<command>svn update</command> at this point, you would
receive changes to <filename>README</filename>
@@ -1088,7 +1589,7 @@
<sect3 id="svn.tour.cycle.examine.diff">
<title><command>svn diff</command></title>
-
+
<para>Another way to examine your changes is with the
<command>svn diff</command> command. You can find out
<emphasis>exactly</emphasis> how you've modified things by
@@ -1105,13 +1606,13 @@
might run <command>svn diff --diff-cmd /usr/bin/diff
--extensions '-bc' foo.c</command>.</para>
</footnote></para>
-
+
<screen>
$ svn diff
Index: bar.c
===================================================================
---- bar.c (revision 3)
-+++ bar.c (working copy)
+--- bar.c (revision 3)
++++ bar.c (working copy)
@@ -1,7 +1,12 @@
+#include <sys/types.h>
+#include <sys/stat.h>
@@ -1127,26 +1628,26 @@
Index: README
===================================================================
---- README (revision 3)
-+++ README (working copy)
-@@ -193,3 +193,4 @@
+--- README (revision 3)
++++ README (working copy)
+@@ -193,3 +193,4 @@
+Note to self: pick up laundry.
Index: stuff/fish.c
===================================================================
---- stuff/fish.c (revision 1)
-+++ stuff/fish.c (working copy)
+--- stuff/fish.c (revision 1)
++++ stuff/fish.c (working copy)
-Welcome to the file known as 'fish'.
-Information on fish will be here soon.
Index: stuff/things/bloo.h
===================================================================
---- stuff/things/bloo.h (revision 8)
-+++ stuff/things/bloo.h (working copy)
+--- stuff/things/bloo.h (revision 8)
++++ stuff/things/bloo.h (working copy)
+Here is a new file to describe
+things about bloo.
</screen>
-
+
<para>The <command>svn diff</command> command produces this
output by comparing your working files against the cached
<quote>pristine</quote> copies within the
@@ -1180,15 +1681,15 @@
that your changes to <filename>README</filename> are a
mistake; perhaps you accidentally typed that text into the
wrong file in your editor.</para>
-
+
<para>This is a perfect opportunity to use <command>svn
revert</command>.</para>
-
+
<screen>
$ svn revert README
Reverted 'README'
</screen>
-
+
<para>Subversion reverts the file to its pre-modified state by
overwriting it with the cached <quote>pristine</quote> copy
from the <filename>.svn</filename> area. But also note that
@@ -1227,10 +1728,10 @@
control:</para>
<screen>
-$ svn status README
+$ svn status README
README
-$ svn delete README
+$ svn delete README
D README
$ svn revert README
@@ -1276,11 +1777,11 @@
<sect2 id="svn.tour.cycle.resolve">
<title>Resolve Conflicts (Merging Others' Changes)</title>
-
+
<para>We've already seen how <command>svn status -u</command>
can predict conflicts. Suppose you run <command>svn
update</command> and some interesting things occur:</para>
-
+
<screen>
$ svn update
U INSTALL
@@ -1288,7 +1789,7 @@
C bar.c
Updated to revision 46.
</screen>
-
+
<para>The <computeroutput>U</computeroutput> and
<computeroutput>G</computeroutput> codes are no cause for
concern; those files cleanly absorbed changes from the
@@ -1300,15 +1801,15 @@
means that the file had local changes to begin with, but the
changes coming from the repository didn't overlap with the local
changes.</para>
-
+
<para>But the <computeroutput>C</computeroutput> stands for
conflict. This means that the changes from the server overlapped
with your own, and now you have to manually choose between
them.</para>
-
+
<para>Whenever a conflict occurs, three things typically occur
to assist you in noticing and resolving that conflict:</para>
-
+
<itemizedlist>
<listitem>
@@ -1334,7 +1835,7 @@
three extra unversioned files in your working copy:</para>
<variablelist>
-
+
<varlistentry>
<term><filename>filename.mine</filename></term>
<listitem>
@@ -1348,7 +1849,7 @@
file.)</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term><filename>filename.rOLDREV</filename></term>
<listitem>
@@ -1372,21 +1873,21 @@
</varlistentry>
</variablelist>
-
+
<para>Here <literal>OLDREV</literal> is the revision number
of the file in your <filename>.svn</filename> directory
and <literal>NEWREV</literal> is the revision number of
the repository <literal>HEAD</literal>.</para>
</listitem>
-
+
</itemizedlist>
-
+
<para>For example, Sally makes changes to the file
<filename>sandwich.txt</filename> in the repository. Harry has
just changed the file in his working copy and checked it in.
Sally updates her working copy before checking in and she gets
a conflict:</para>
-
+
<screen>
$ svn update
C sandwich.txt
@@ -1397,7 +1898,7 @@
sandwich.txt.r1
sandwich.txt.r2
</screen>
-
+
<para>At this point, Subversion will <emphasis>not</emphasis>
allow you to commit the file <filename>sandwich.txt</filename>
until the three temporary files are removed.</para>
@@ -1593,16 +2094,16 @@
fixed the conflict in your file—once the temporary files
are removed, Subversion will let you commit the file even if
it still contains conflict markers.</para>
-
+
</sect2>
-
+
<sect2 id="svn.tour.cycle.commit">
<title>Commit Your Changes</title>
-
+
<para>Finally! Your edits are finished, you've merged all
changes from the server, and you're ready to commit your
changes to the repository.</para>
-
+
<para>The <command>svn commit</command> command sends all of
your changes to the repository. When you commit a change, you
need to supply a <firstterm>log message</firstterm>,
@@ -1611,21 +2112,21 @@
you may wish to supply it on the command line using the
<option>--message</option> (or <option>-m</option>)
option:</para>
-
+
<screen>
$ svn commit --message "Corrected number of cheese slices."
Sending sandwich.txt
Transmitting file data .
Committed revision 3.
</screen>
-
+
<para>However, if you've been composing your log message as you
work, you may want to tell Subversion to get the message from
a file by passing the filename with the
<option>--file</option> switch:</para>
<screen>
-$ svn commit --file logmsg
+$ svn commit --file logmsg
Sending sandwich.txt
Transmitting file data .
Committed revision 4.
@@ -1637,8 +2138,8 @@
(see the <literal>editor-cmd</literal> section in
<xref linkend="svn.advanced.confarea.opts.config"/>) for composing a log
message.</para>
-
-
+
+
<tip>
<para>If you're in your editor writing a commit message and
decide that you want to cancel your commit, you can just
@@ -1675,7 +2176,7 @@
update</command>, deal with any merges or conflicts that
result, and attempt your commit again.</para>
-
+
<para>That covers the basic work cycle for using Subversion.
There are many other features in Subversion that you can use
to manage your repository and working copy, but you can get by
@@ -1702,7 +2203,7 @@
However, sometimes you just want to <emphasis>peer
into</emphasis> the past instead of <emphasis>going
into</emphasis> the past.</para>
-
+
<para>There are several commands that can provide you with
historical data from the repository:</para>
@@ -1755,7 +2256,7 @@
revision it changed, the time and date of that revision, and,
if it was provided, the log message that accompanied the
commit.</para>
-
+
<screen>
$ svn log
------------------------------------------------------------------------
@@ -1772,14 +2273,14 @@
Initial import
------------------------------------------------------------------------
</screen>
-
+
<para>Note that the log messages are printed in
<emphasis>reverse chronological order</emphasis> by default.
If you wish to see a different range of revisions in a
particular order, or just a single revision, pass the
<option>--revision</option> (<option>-r</option>)
switch:</para>
-
+
<screen>
$ svn log --revision 5:19 # shows logs 5 through 19 in chronological order
@@ -1787,21 +2288,21 @@
$ svn log -r 8 # shows log for revision 8
</screen>
-
+
<para>You can also examine the log history of a single file or
directory. For example:</para>
-
+
<screen>
$ svn log foo.c
…
$ svn log http://foo.com/svn/trunk/code/foo.c
…
</screen>
-
+
<para>These will display log messages <emphasis>only</emphasis>
for those revisions in which the working file (or URL)
changed.</para>
-
+
<para>If you want even more information about a file or
directory, <command>svn log</command> also takes a
<option>--verbose</option> (<option>-v</option>) switch.
@@ -1828,7 +2329,7 @@
<sidebar>
<title>Why Does <command>svn log</command> Give Me an Empty
Response?</title>
-
+
<para>After working with Subversion for a bit, most users will
come across something like this:</para>
@@ -1852,7 +2353,7 @@
http://svn.collab.net/repos/svn</command>.</para>
</sidebar>
-
+
</sect2>
<sect2 id="svn.tour.history.diff">
@@ -1862,7 +2363,7 @@
before—it displays file differences in unified diff
format; it was used to show the local modifications made to
our working copy before committing to the repository.</para>
-
+
<para>In fact, it turns out that there are
<emphasis>three</emphasis> distinct uses of <command>svn
diff</command>:</para>
@@ -1882,7 +2383,7 @@
</listitem>
</itemizedlist>
-
+
<sect3 id="svn.tour.history.diff.local">
<title>Examining Local Changes</title>
@@ -1890,13 +2391,13 @@
no switches will compare your working files to the cached
<quote>pristine</quote> copies in
the <filename>.svn</filename> area:</para>
-
+
<screen>
$ svn diff
Index: rules.txt
===================================================================
---- rules.txt (revision 3)
-+++ rules.txt (working copy)
+--- rules.txt (revision 3)
++++ rules.txt (working copy)
@@ -1,4 +1,5 @@
Be kind to others
Freedom = Responsibility
@@ -1906,7 +2407,7 @@
+Listen when others are speaking
$
</screen>
-
+
</sect3>
<sect3 id="svn.tour.history.diff.wcrepos">
@@ -1916,13 +2417,13 @@
(<option>-r</option>) number is passed, then your
working copy is compared to the specified revision in the
repository.</para>
-
+
<screen>
-$ svn diff --revision 3 rules.txt
+$ svn diff --revision 3 rules.txt
Index: rules.txt
===================================================================
---- rules.txt (revision 3)
-+++ rules.txt (working copy)
+--- rules.txt (revision 3)
++++ rules.txt (working copy)
@@ -1,4 +1,5 @@
Be kind to others
Freedom = Responsibility
@@ -1932,23 +2433,23 @@
+Listen when others are speaking
$
</screen>
-
+
</sect3>
<sect3 id="svn.tour.history.diff.reposrepos">
<title>Comparing Repository to Repository</title>
-
+
<para>If two revision numbers, separated by a colon, are
passed via <option>--revision</option>
(<option>-r</option>), then the two revisions are directly
compared.</para>
-
+
<screen>
-$ svn diff --revision 2:3 rules.txt
+$ svn diff --revision 2:3 rules.txt
Index: rules.txt
===================================================================
---- rules.txt (revision 2)
-+++ rules.txt (revision 3)
+--- rules.txt (revision 2)
++++ rules.txt (revision 3)
@@ -1,4 +1,4 @@
Be kind to others
-Freedom = Chocolate Ice Cream
@@ -1957,7 +2458,7 @@
Chew with your mouth open
$
</screen>
-
+
<para>Not only can you use <command>svn diff</command> to
compare files in your working copy to the repository, but if
you supply a URL argument, you can examine the differences
@@ -1965,7 +2466,7 @@
working copy. This is especially useful if you wish to
inspect changes in a file when you don't have a working copy
on your local machine:</para>
-
+
<screen>
$ svn diff --revision 4:5 http://svn.red-bean.com/repos/example/trunk/text/rules.txt
…
@@ -1984,7 +2485,7 @@
<command>svn cat</command>:</para>
<screen>
-$ svn cat --revision 2 rules.txt
+$ svn cat --revision 2 rules.txt
Be kind to others
Freedom = Chocolate Ice Cream
Everything in moderation
@@ -2021,11 +2522,11 @@
<sect2 id="svn.tour.history.list">
<title><command>svn list</command></title>
-
+
<para>The <command>svn list</command> command shows you what
files are in a repository directory without actually
downloading the files to your local machine:</para>
-
+
<screen>
$ svn list http://svn.collab.net/repos/svn
README
@@ -2052,7 +2553,7 @@
directory was last modified, the user who modified it, the size
if it is a file, the date it was last modified, and the item's
name.</para>
-
+
</sect2>
<sect2 id="svn.tour.history.finalword">
@@ -2114,7 +2615,7 @@
<screen>
$ svn status
L somedir
-M somedir/foo.c
+M somedir/foo.c
$ svn cleanup
$ svn status
@@ -2168,7 +2669,7 @@
<!-- ================================================================= -->
<sect1 id="svn.tour.summary">
<title>Summary</title>
-
+
<para>Now we've covered most of the Subversion client commands.
Notable exceptions are those dealing with branching and
merging (see <xref linkend="svn.branchmerge"/>) and properties (see
@@ -2183,8 +2684,8 @@
</chapter>
<!--
-local variables:
+local variables:
sgml-parent-document: ("book.xml" "chapter")
end:
vim: tw=78:ft=svnbook
--->
+-->
\ No newline at end of file
More information about the svnbook-dev
mailing list