[svnbook commit] r1701 - in trunk/src/ru: . book
dmitriy
svnbook-dev at red-bean.com
Sun Sep 25 02:43:25 CDT 2005
Author: dmitriy
Date: Sun Sep 25 02:43:24 2005
New Revision: 1701
Modified:
trunk/src/ru/book/appa.xml (props changed)
trunk/src/ru/book/appb.xml (props changed)
trunk/src/ru/book/appc.xml (props changed)
trunk/src/ru/book/book.xml (props changed)
trunk/src/ru/book/ch00.xml (props changed)
trunk/src/ru/book/ch01.xml (contents, props changed)
trunk/src/ru/book/ch02.xml (contents, props changed)
trunk/src/ru/book/ch03.xml (contents, props changed)
trunk/src/ru/book/ch04.xml (contents, props changed)
trunk/src/ru/book/ch05.xml (contents, props changed)
trunk/src/ru/book/ch06.xml (contents, props changed)
trunk/src/ru/book/ch07.xml (contents, props changed)
trunk/src/ru/book/ch08.xml (props changed)
trunk/src/ru/book/copyright.xml (props changed)
trunk/src/ru/book/foreword.xml (props changed)
trunk/src/ru/book/styles.css (props changed)
trunk/src/ru/sync.py
Log:
Book Russian. Sync all (except ch09) book files with en/@1700
Modified: trunk/src/ru/book/ch01.xml
==============================================================================
--- trunk/src/ru/book/ch01.xml (original)
+++ trunk/src/ru/book/ch01.xml Sun Sep 25 02:43:24 2005
@@ -609,17 +609,31 @@
<title>Установка Subversion</title>
<!-- @ENGLISH {{{
- <para>Subversion is built on a portability layer called APR (the
- Apache Portable Runtime library). This means Subversion should
- work on any operating system that the Apache httpd server runs
- on: Windows, Linux, all flavors of BSD, Mac OS X, Netware, and
- others.</para>
+ <para>Subversion is built on a portability layer called
+ APR—the Apache Portable Runtime library. The APR library
+ provides all the interfaces that Subversion needs to function on
+ different operating systems: disk access, network access, memory
+ management, and so on. While Subversion is able to use Apache
+ as one of its network server programs, its dependence on APR
+ <emphasis>does not</emphasis> mean that Apache is a required
+ component. APR is a standalone library useable by any
+ application. It does mean, however, that like Apache,
+ Subversion clients and servers run on any operating system that
+ the Apache httpd server runs on: Windows, Linux, all flavors of
+ BSD, Mac OS X, Netware, and others.</para>
@ENGLISH }}} -->
<para>Subversion построена на портабельном слое под названием
- APR (the Apache Portable Runtime library). Это означает, что
- Subversion должна работать на любой операционной системе на которой
- работает httpd сервер Apache: Windows, Linux, все разновидности BSD,
- MacOS X, Netware и другие.
+ APR (the Apache Portable Runtime library). Библиотека APR предоставляет
+ все интерфейсы, необходимые для функционирования Subversion под
+ управлением различных операционных систем: доступ к жесткому диску,
+ доступ к сети, управление памятью, и тому подобное. Не смотря на то,
+ что Subversion может использовать Apache как сервер, ее зависимость
+ от Apache <emphasis>не означает</emphasis> того, что Apache
+ является необходимым компонентом. APR представляет собой отдельную
+ библиотеку, которую может использовать любое приложение. Кроме прочего,
+ это означает, что как и Apache, Subversion клиенты и серверы работают
+ на любой операционной системе на которой работает httpd сервер Apache:
+ Windows, Linux, все разновидности BSD, MacOS X, Netware и другие.
</para>
<!-- @ENGLISH {{{
@@ -900,7 +914,10 @@
in <xref linkend="svn.reposadmin.projects.chooselayout"/>.
Either way, the repository only manages files and directories,
so it's up to humans to interpret particular directories
- as <quote>projects</quote>.</para>
+ as <quote>projects</quote>. So while you might see references
+ to projects throughout this book, keep in mind that we're only
+ ever talking about some directory (or collection of directories)
+ in the repository.</para>
@ENGLISH }}} -->
<para>У Subversion нет понятия <quote>проект</quote>. Хранилище
является просто виртуальной версионированной файловой системой,
@@ -912,7 +929,9 @@
linkend="svn.reposadmin.projects.chooselayout"/>. В любом случае,
хранилище управляет только файлами и директориями, оставляя
за человеком право интерпретировать отдельные директории
- как <quote>проекты</quote>.</para>
+ как <quote>проекты</quote>. Поэтому, если в тексте книги вы
+ встретите упоминание проекта, помните, что имеется в виду
+ просто директория (или несколько директорий) хранилища.</para>
<!-- @ENGLISH {{{
<para>In this example, we assume that you already have some sort
@@ -920,7 +939,7 @@
to import into your newly created Subversion repository. Begin
by organizing them into a single directory
called <filename>myproject</filename> (or whatever you wish).
- For reasons that will be clear later on (see
+ For reasons that will be clear later (see
<xref linkend="svn.branchmerge"/>), your project's tree
structure should contain three top-level directories
named <filename>branches</filename>,
@@ -954,10 +973,21 @@
</screen>
<!-- @ENGLISH {{{
+ <para>The <filename>branches</filename>, <filename>tags</filename>,
+ and <filename>trunk</filename> subdirectories aren't actually
+ required by Subversion. They're merely a popular convention
+ that you'll most likely want to use later on.</para>
+
<para>Once you have your tree of data ready to go, import it into
the repository with the <command>svn import</command> command
(see <xref linkend="svn.tour.other.import"/>):</para>
@ENGLISH }}} -->
+ <para>Использовать поддиректории <filename>branches</filename>,
+ <filename>tags</filename> и <filename>trunk</filename> не
+ обязательно. Просто такой подход чаще всего используется и
+ вероятнее всего в дальнейшем вы будете использовать именно
+ его.</para>
+
<para>Как только вы получите готовое дерево данных, импортируйте его
в хранилище при помощи команды <command>svn import</command>
(см. <xref linkend="svn.tour.other.import"/>):</para>
Modified: trunk/src/ru/book/ch02.xml
==============================================================================
--- trunk/src/ru/book/ch02.xml (original)
+++ trunk/src/ru/book/ch02.xml Sun Sep 25 02:43:24 2005
@@ -106,7 +106,7 @@
example, a client can ask historical questions like, <quote>What
did this directory contain last Wednesday?</quote> or <quote>Who
was the last person to change this file, and what changes did
- they make?</quote> These are the sorts of questions that are at
+ he make?</quote> These are the sorts of questions that are at
the heart of any <firstterm>version control system</firstterm>:
systems that are designed to record and track changes to data
over time.
@@ -591,7 +591,8 @@
way. Your working copy is your own private work area:
Subversion will never incorporate other people's changes, nor
make your own changes available to others, until you
- explicitly tell it to do so.</para>
+ explicitly tell it to do so. You can even have multiple
+ working copies of the same project.</para>
@ENGLISH }}} -->
<para>Рабочая копия Subversion представляет собой обычное дерево
директорий на вашем компьютере, содержащее набор файлов. Вы можете
@@ -600,7 +601,8 @@
копия это ваше личное рабочее пространство: Subversion как не
смешивает вносимые другими изменения с вашими, так и не делает
доступными для других изменения сделанные вами, пока вы явно не
- укажите сделать это.</para>
+ укажите сделать это. Вы даже можете иметь несколько рабочих копий
+ одного и того же проекта.</para>
<!-- @ENGLISH {{{
<para>After you've made some changes to the files in your
@@ -693,7 +695,7 @@
<filename>/calc</filename>, у вас будет рабочая копия, наподобие
этой:</para>
-<screen>
+ <screen>
$ svn checkout http://svn.example.com/repos/calc
A calc
A calc/Makefile
@@ -837,7 +839,7 @@
<para>Для того, что бы опубликовать ваши изменения вы можете
воспользоваться командой <command>commit</command>:</para>
-<screen>
+ <screen>
$ svn commit button.c
Sending button.c
Transmitting file data .
@@ -885,7 +887,7 @@
копию в месте с другими имениями, которые были зафиксированы с момента
когда она создавала рабочую копию.</para>
-<screen>
+ <screen>
$ pwd
/home/sally/calc
@@ -1005,14 +1007,14 @@
number selects an entire tree, a particular state of the
repository after some committed change. Another way to
think about it is that revision N represents the state of
- the repository filesystem after the Nth commit. When a
- Subversion user talks about <quote>revision 5 of
+ the repository filesystem after the Nth commit. When
+ Subversion users talk about <quote>revision 5 of
<filename>foo.c</filename></quote>, they really mean
- <quote><filename>foo.c</filename> as it appears in revision 5.</quote>
- Notice that in general, revisions N and M of a file do
- <emphasis>not</emphasis> necessarily differ! Because CVS
- uses per-file revisions numbers, CVS users might want to see
- <xref linkend="svn.forcvs"/> for more details.</para>
+ <quote><filename>foo.c</filename> as it appears in revision
+ 5.</quote> Notice that in general, revisions N and M of a
+ file do <emphasis>not</emphasis> necessarily differ! Because
+ CVS uses per-file revisions numbers, CVS users might want to
+ see <xref linkend="svn.forcvs"/> for more details.</para>
@ENGLISH }}} -->
<para>В отличие от многих других систем контроля версий номера правок
в Subversion относятся <emphasis>ко всем</emphasis>, а не только к
@@ -1041,7 +1043,7 @@
различных правок. Например, вы получили рабочую копию из хранилища,
у которого самая последняя правка 4:</para>
-<screen>
+ <screen>
calc/Makefile:4
integer.c:4
button.c:4
@@ -1062,7 +1064,7 @@
хранилища, и теперь ваша рабочая копия выглядит следующим
образом:</para>
-<screen>
+ <screen>
calc/Makefile:4
integer.c:4
button.c:5
@@ -1079,7 +1081,7 @@
<command>svn update</command> для приведения своей рабочей копии
в актуальное состояние, то она станет выглядеть так:</para>
-<screen>
+ <screen>
calc/Makefile:6
integer.c:6
button.c:6
Modified: trunk/src/ru/book/ch03.xml
==============================================================================
--- trunk/src/ru/book/ch03.xml (original)
+++ trunk/src/ru/book/ch03.xml Sun Sep 25 02:43:24 2005
@@ -316,7 +316,7 @@
$ svn diff --revision HEAD
<!-- @ENGLISH {{{
# compares your working file (with local mods) to the latest version
-# in the repository.
+# in the repository
@ENGLISH }}} -->
# сравнение вашего рабочего файла (с учетом локальных изменений)
# с последней правкой в хранилище
@@ -337,11 +337,11 @@
$ svn update --revision PREV foo.c
<!-- @ENGLISH {{{
-# rewinds the last change on foo.c.
-# (foo.c's working revision is decreased.)
+# rewinds the last change on foo.c
+# (foo.c's working revision is decreased)
@ENGLISH }}} -->
-# откат последних изменений в foo.c.
-# (рабочая ревизия foo.c понижается.)
+# откат последних изменений в foo.c
+# (рабочая ревизия foo.c понижается)
</screen>
<!-- @ENGLISH {{{
@@ -2781,7 +2781,7 @@
сообщением информирующим вас, что один или несколько файлов
устарели:</para>
-<screen>
+ <screen>
$ svn commit --message "Add another rule"
Sending rules.txt
svn: Commit failed (details follow):
@@ -2859,12 +2859,13 @@
<term><command>svn log</command></term>
<listitem>
<!-- @ENGLISH {{{
- <para>Shows you broad information: log messages attached
- to revisions, and which paths changed in each
- revision.</para>
+ <para>Shows you broad information: log messages with date
+ and author information attached to revisions, and which
+ paths changed in each revision.</para>
@ENGLISH }}} -->
- <para>Показывает вам развернутую информацию: лог сообщения
- присоединены к правкам и изменениям в каждой правке.</para>
+ <para>Показывает вам развернутую информацию: лог сообщения,
+ присоединенные к правкам, с указаной датой изменений и их
+ автором, а так-же измененные в правке пути файлов.</para>
</listitem>
</varlistentry>
@@ -3022,6 +3023,18 @@
------------------------------------------------------------------------
</screen>
+ <!-- @ENGLISH {{{
+ <para>
+ <command>svn log</command> also takes a <option>-ﳢ-quiet</option>
+ (<option>-q</option>) switch, which suppresses the body of the
+ log message. When combined with <option>-ﳢ-verbose</option>, it
+ gives just the names of the changed files.</para>
+ @ENGLISH }}} -->
+ <para>Кроме того<command>svn log</command> имеет параметр
+ <option>--quiet</option> (<option>-q</option>), сокращающий лог
+ сообщение. При его объединении с <option>--verbose</option>
+ выдаются только имена измененных файлов.</para>
+
<sidebar>
<!-- @ENGLISH {{{
<title>Why Does <command>svn log</command> Give Me an Empty
Modified: trunk/src/ru/book/ch04.xml
==============================================================================
--- trunk/src/ru/book/ch04.xml (original)
+++ trunk/src/ru/book/ch04.xml Sun Sep 25 02:43:24 2005
@@ -323,7 +323,7 @@
Для начала, создается рабочая копия корневой директории проекта
<filename>/calc</filename>:</para>
-<screen>
+ <screen>
$ svn checkout http://svn.example.com/repos/calc bigwc
A bigwc/trunk/
A bigwc/trunk/Makefile
@@ -342,7 +342,7 @@
двух путей в пределах рабочей копии команде
<command>svn copy</command>:</para>
-<screen>
+ <screen>
$ cd bigwc
$ svn copy trunk branches/my-calc-branch
$ svn status
@@ -380,7 +380,7 @@
вместо повторного отправления через сеть всей информации
рабочей копии:</para>
-<screen>
+ <screen>
$ svn commit -m "Creating a private branch of /calc/trunk."
Adding branches/my-calc-branch
Committed revision 341.
@@ -395,7 +395,7 @@
раньше: команда <command>svn copy</command> может оперировать
с двумя URL напрямую.</para>
-<screen>
+ <screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
@@ -529,7 +529,7 @@
<para>После создания ветки проекта, можно создать новую рабочую копию
для начала ее использования:</para>
-<screen>
+ <screen>
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A my-calc-branch/Makefile
A my-calc-branch/integer.c
@@ -627,7 +627,7 @@
<filename>integer.c</filename>, можно увидеть интересные
вещи:</para>
-<screen>
+ <screen>
$ pwd
/home/user/my-calc-branch
@@ -682,7 +682,7 @@
Теперь давайте посмотрим, что будет когда такую же команду Салли
выполнит для своей копии файла:</para>
-<screen>
+ <screen>
$ pwd
/home/sally/calc
@@ -901,7 +901,7 @@
попросить <command>svn diff</command> показать все изменения
сделанные Салли в правке 344:</para>
-<screen>
+ <screen>
$ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk
Index: integer.c
@@ -957,7 +957,7 @@
применяет их к рабочей копии в виде <emphasis>локальных
изменений</emphasis>:</para>
-<screen>
+ <screen>
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk
U integer.c
@@ -1019,8 +1019,7 @@
сообщении упоминается о портировании отдельных изменений
из одной ветки в другую. Например:</para>
-
-<screen>
+ <screen>
$ svn commit -m "integer.c: ported r344 (spelling fixes) from trunk."
Sending integer.c
Transmitting file data .
@@ -1052,7 +1051,7 @@
команду операционной системы <command>patch</command> для
выполнения этой работы? Например:</para>
-<screen>
+ <screen>
$ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk > patchfile
$ patch -p0 < patchfile
Patching file integer.c using Plan A...
@@ -1079,11 +1078,11 @@
<footnote>
<para>In the future, the Subversion project plans to use
(or invent) an expanded patch format that describes
- tree-changes.</para>
+ changes in tree structure and properties.</para>
</footnote>
The <command>svn merge</command> command, however, can express
- tree-changes by directly applying them to your working
- copy.</para>
+ changes in tree structure and properties by directly applying
+ them to your working copy.</para>
@ENGLISH }}} -->
<para>Для этого конкретного случая, да, действительно разницы
нет. Однако, <command>svn merge</command> имеет специфические
@@ -1099,12 +1098,12 @@
Вывод <command>svn diff</command> представляет собой только
ограниченный патч-формат, по этому некоторые понятия он просто не
может передать. <footnote><para>В будущем, проект Subversion
- планирует воспользоваться (или изобрести) расширенный формат
+ планирует использоваться (или изобрести) расширенным формат
представления различий, который будет передавать изменения в
- структуре дерева файлов.</para></footnote> Команда
+ структуре дерева файлов и свойств.</para></footnote> Команда
<command>svn merge</command>, напротив, может передавать
- изменения в структуре файлов, непосредственно применяя их к
- рабочей копии.</para>
+ изменения в структуре файлов и свойств, непосредственно применяя
+ их к рабочей копии.</para>
</sidebar>
@@ -1179,7 +1178,7 @@
директории рабочей копии то вам нужно указать целевую директорию,
получающую изменения:</para>
-<screen>
+ <screen>
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk my-calc-branch
U my-calc-branch/integer.c
</screen>
@@ -1300,7 +1299,7 @@
указывать три необходимых аргумента довольно гибко. Вот
несколько примеров:</para>
-<screen>
+ <screen>
$ svn merge http://svn.example.com/repos/branch1@150 \
http://svn.example.com/repos/branch2@212 \
my-working-copy
@@ -1543,11 +1542,11 @@
Somebody can then run <command>svn log -r9238</command> to
read about the exact changeset which fixed the bug, and run
<command>svn diff -r9237:9238</command> to see the patch
- itself. And Subversion's merge command also uses revision
- numbers. You can merge specific changesets from one branch
- to another by naming them in the merge arguments:
- <command>svn merge -r9237:9238</command> would merge
- changeset #9238 into your working copy.</para>
+ itself. And Subversion's <literal>merge</literal> command
+ also uses revision numbers. You can merge specific changesets
+ from one branch to another by naming them in the merge
+ arguments: <command>svn merge -r9237:9238</command> would
+ merge changeset #9238 into your working copy.</para>
@ENGLISH }}} -->
<para>В Subversion глобальный номер правки N относится к
дереву в хранилище: так выглядит хранилище после
@@ -1564,7 +1563,7 @@
о том наборе изменений, который исправляет ошибку можно выполнить
<command>svn log -r9238</command>, а для того, что бы увидеть
сам патч, выполнить <command>svn diff -r9237:9238</command>.
- В Subversion команда для объединения тоже использует
+ В Subversion команда <literal>merge</literal> тоже использует
номера правок. Можно объединить набор изменений из одной ветки
в другую указав его в качестве аргумента:
команда <command>svn merge -r9237:9238</command> внедрит
@@ -1644,7 +1643,7 @@
объединения, <command>svn merge</command> будет
жаловаться на <quote>пропущенные цели</quote>:</para>
-<screen>
+ <screen>
$ svn merge -r 1288:1351 http://svn.example.com/repos/branch
U foo.c
U bar.c
@@ -1798,13 +1797,12 @@
ancestry, while the latter command is quite sensitive to it.
For example, if you asked <command>svn diff</command> to
compare revisions 99 and 102 of <filename>foo.c</filename>,
- you would see line-based diffs; the diff command is blindly
- comparing two paths. But if you asked <command>svn
- merge</command> to compare the same two objects, it would
- notice that they're unrelated and first attempt to delete
- the old file, then add the new file; you would see a
- <literal>D foo.c</literal> followed by a <literal>A
- foo.c</literal>.</para>
+ you would see line-based diffs; the <literal>diff</literal>
+ command is blindly comparing two paths. But if you asked
+ <command>svn merge</command> to compare the same two objects,
+ it would notice that they're unrelated and first attempt to
+ delete the old file, then add the new file; the output would
+ indicate a deletion followed by an add:</para>
@ENGLISH }}} -->
<para>Мы обращаем на это ваше внимание, для того, чтобы
указать на важные отличия между <command>svn diff</command>
@@ -1812,22 +1810,27 @@
происхождение, в то время, как вторая его учитывает.
Например, если попросить <command>svn diff</command> сравнить
правки 99 и 102 файла <filename>foo.c</filename> вы увидите
- построчное сравнение; команда сравнения слепо сравнивает
+ построчное сравнение; команда <literal>diff</literal> слепо сравнивает
два пути. А вот если вы попросите <command>svn merge</command>
сравнить те же объекты, то Subversion предупредит вас о том, что
они не связаны друг с другом и сначала попытается удалить
- старый файл, а затем добавить новый; сначала вы увидите
- <literal>D foo.c</literal>, а затем <literal>A
- foo.c</literal>.</para>
+ старый файл, а затем добавить новый; вывод команды покажет
+ удаление с последующим добавлением:</para>
+
+ <screen>
+D foo.c
+A foo.c
+</screen>
<!-- @ENGLISH {{{
<para>Most merges involve comparing trees that are ancestrally
related to one another, and therefore <command>svn
merge</command> defaults to this behavior. Occasionally,
- however, you may want the merge command to compare two
- unrelated trees. For example, you may have imported two
- source-code trees representing different vendor releases of
- a software project (see <xref linkend="svn.advanced.vendorbr"/>).
+ however, you may want the <literal>merge</literal> command to
+ compare two unrelated trees. For example, you may have
+ imported two source-code trees representing different vendor
+ releases of a software project (see <xref
+ linkend="svn.advanced.vendorbr"/>).
If you asked <command>svn merge</command> to compare the two
trees, you'd see the entire first tree being deleted,
followed by an add of the entire second tree!</para>
@@ -1839,14 +1842,14 @@
command, and it will behave just like <command>svn
diff</command>. (And conversely, the
<option>-ﳢ-notice-ancestry</option> option will cause
- <command>svn diff</command> to behave like the merge
- command.)</para>
+ <command>svn diff</command> to behave like the
+ <literal>merge</literal> command.)</para>
@ENGLISH }}} -->
<para>В большинстве случаев при объединении сравниваются
деревья, имеющие родственную связь и по умолчанию
<command>svn merge</command> рассчитывает на это. Однако
- иногда, вам будет нужно, что бы команда объединения сравнила
- два не связанных дерева файлов. Например, у вас может быть
+ иногда, вам будет нужно, что бы команда <literal>merge</literal>
+ сравнила два не связанных дерева файлов. Например, у вас может быть
два импортированных дерева содержащих исходный код
релизов программных проектов от сторонних поставщиков
(см. <xref linkend="svn.advanced.vendorbr"/>). Если попросить
@@ -1862,7 +1865,7 @@
вести себя также как <command>svn diff</command>. (И наоборот,
опция <option>--notice-ancestry</option> будет заставлять
<command>svn diff</command> вести себя как команда
- объединения.)</para>
+ <literal>merge</literal>.)</para>
</sect3>
@@ -2001,7 +2004,7 @@
как только <command>svn log</command> определит, что
целевой объект был скопирован или переименован.</para>
-<screen>
+ <screen>
$ svn log --verbose --stop-on-copy \
http://svn.example.com/repos/calc/branches/my-calc-branch
…
@@ -2030,7 +2033,7 @@
@ENGLISH }}} -->
<para>Вот так выглядит завершение объединения:</para>
-<screen>
+ <screen>
$ cd calc/trunk
$ svn update
At revision 405.
@@ -2123,7 +2126,7 @@
изменения ветки, которые были выполнены после этого —
сравнивая правки 406 и <literal>HEAD</literal>.</para>
-<screen>
+ <screen>
$ cd calc/trunk
$ svn update
At revision 480.
@@ -2189,8 +2192,7 @@
Все, что нужно сделать, это указать
<emphasis>обратные</emphasis> отличия:</para>
-
-<screen>
+ <screen>
$ svn merge -r 303:302 http://svn.example.com/repos/calc/trunk
U integer.c
@@ -2320,7 +2322,7 @@
directory, it may be gone from the <literal>HEAD</literal>
revision, but the object still exists in earlier revisions.
One of the most common questions new users ask is, <quote>How
- do I get my old file or directory back?</quote></para>
+ do I get my old file or directory back?</quote>.</para>
<para>The first step is to define exactly <emphasis
role="bold">which</emphasis> item you're trying to resurrect.
@@ -2954,7 +2956,7 @@
<filename>/calc/trunk</filename> так, что бы она отражала
созданную ветку:</para>
-<screen>
+ <screen>
$ cd calc
$ svn info | grep URL
@@ -3103,15 +3105,16 @@
<para>Have you noticed that the output of <command>svn
switch</command> and <command>svn update</command> look the
- same? The switch command is actually a superset of the
- update command.</para>
+ same? The <literal>switch</literal> command is actually a
+ superset of the update command.</para>
<para>When you run <command>svn update</command>, you're asking
the repository to compare two trees. The repository does so,
and then sends a description of the differences back to the
client. The only difference between <command>svn
switch</command> and <command>svn update</command> is that the
- update command always compares two identical paths.</para>
+ <literal>update</literal> command always compares two identical
+ paths.</para>
<para>That is, if your working copy is a mirror of
<filename>/calc/trunk</filename>, then <command>svn
@@ -3133,14 +3136,14 @@
<para>Вы не обратили внимания на то, что вывод <command>svn
switch</command> и <command>svn update</command> выглядит
- одинаково? На самом деле команда переключения является
- расширенным вариантом команды обновления.</para>
+ одинаково? На самом деле команда <literal>switch</literal>
+ является расширенным вариантом команды обновления.</para>
<para>При запуске <command>svn update</command> вы просите
хранилище сравнить два дерева. Хранилище выполняет это
и отправляет описания изменений обратно клиенту. Отличие
между <command>svn switch</command> и <command>svn
- update</command> только в том, что команда обновления
+ update</command> только в том, что команда <literal>update</literal>
всегда сравнивает два одинаковых пути.</para>
<para>То есть, рабочая копия отражает <filename>/calc/trunk</filename>,
@@ -3241,7 +3244,7 @@
в точно таком виде как в правке <literal>HEAD</literal>,
сделайте копию этой директории:</para>
-<screen>
+ <screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/tags/release-1.0 \
-m "Tagging the 1.0 release of the 'calc' project."
@@ -3391,7 +3394,7 @@
(о которых вы можете прочитать в Главе 9), включая возможность
копировать в хранилище дерево рабочей копии:</para>
-<screen>
+ <screen>
$ ls
my-working-copy/
@@ -3411,11 +3414,12 @@
changes made to your working copy, and you'd like a
collaborator to see them. Instead of running <command>svn
diff</command> and sending a patch file (which won't capture
- tree changes), you can instead use <command>svn copy</command>
- to <quote>upload</quote> your working copy to a private area
- of the repository. Your collaborator can then either checkout
- a verbatim copy of your working copy, or use <command>svn
- merge</command> to receive your exact changes.</para>
+ tree changes, symlink changes or changes in properties), you can
+ instead use <command>svn copy</command> to <quote>upload</quote>
+ your working copy to a private area of the repository. Your
+ collaborator can then either checkout a verbatim copy of your
+ working copy, or use <command>svn merge</command> to receive
+ your exact changes.</para>
@ENGLISH }}} -->
<para>Теперь в хранилище есть новая директория
<filename>/calc/tags/mytag</filename> которая является полным отражением
@@ -3425,7 +3429,8 @@
возможности. Иногда возникают ситуации, когда в вашей рабочей копии
содержаться изменения, которые вы не хотите показывать соразработчику.
Вместо запуска <command>svn diff</command> и передачи патч-файла
- (который не сможет отразить изменения в структуре файлов), вы можете
+ (который не сможет отразить изменения в структуре файлов, измененные
+ символьные ссылки или свойства), вы можете
воспользоваться <command>svn copy</command> для
<quote>загрузки</quote> рабочей копии в отдельную область хранилища.
Ваш соразработчик может сделать либо чистую копию вашей рабочей копии,
@@ -3485,7 +3490,7 @@
содержит только один проект, обычно создают три директории
верхнего уровня:</para>
-<screen>
+ <screen>
/trunk
/branches
/tags
@@ -3503,7 +3508,7 @@
обратитесь в раздел <xref
linkend="svn.reposadmin.projects.chooselayout"/>):</para>
-<screen>
+ <screen>
/paint/trunk
/paint/branches
/paint/tags
@@ -3530,8 +3535,8 @@
working copies. If a user has a working copy of a particular
repository directory, your <command>svn move</command>
operation might remove the path from the latest revision.
- When the user next runs <command>svn update</command>, they'll
- be told that their working copy represents a path that no
+ When the user next runs <command>svn update</command>, she will
+ be told that her working copy represents a path that no
longer exists, and the user will be forced to <command>svn
switch</command> to the new location.
</para>
@@ -3584,7 +3589,7 @@
объединения изменений с <filename>/calc/trunk</filename>,
нет причин продолжать хранить эту ветку:</para>
-<screen>
+ <screen>
$ svn delete http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Removing obsolete branch of calc project."
@@ -3621,7 +3626,7 @@
просто воспользуйтесь <command>svn copy -r</command> для того,
что бы скопировать его из старой правки:</para>
-<screen>
+ <screen>
$ svn copy -r 374 http://svn.example.com/repos/calc/branches/my-calc-branch \
http://svn.example.com/repos/calc/branches/my-calc-branch
@@ -3635,10 +3640,10 @@
branch. In software development, though, it's also common to
have two <quote>main</quote> branches running side-by-side for
very long periods. For example, suppose it's time to release
- a stable <filename>calc</filename> project to the public, and
- you know it's going to take a couple of months to shake bugs
- out of the software. You don't want people to add new
- features to the project, but you don't want to tell all
+ a stable version of the <filename>calc</filename> project to the
+ public, and you know it's going to take a couple of months to
+ shake bugs out of the software. You don't want people to add
+ new features to the project, but you don't want to tell all
developers to stop programming either. So instead, you create
a <quote>stable</quote> branch of the software that won't
change much:</para>
@@ -3649,7 +3654,7 @@
После того, как работа завершена, завершена и ветка. При разработке
программного обеспечения, тем не менее, часто имеют две
<quote>главных</quote> ветки, существующих рядом довольно долгое
- время. Допустим, пришло время выпустить релиз стабилизировавшегося
+ время. Допустим, пришло время выпустить релиз стабильной версии
проекта <filename>calc</filename>, а вы знаете, что нужна будет пара
месяцев для того, что бы вытрясти из программы последние ошибки.
Разработчики не должны добавлять в проект новых функции, но при этом
@@ -3657,7 +3662,7 @@
<quote>стабильная</quote> ветка программы, которая существенно
изменяться уже не будет:</para>
-<screen>
+ <screen>
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/stable-1.0 \
-m "Creating stable branch of calc project."
Modified: trunk/src/ru/book/ch05.xml
==============================================================================
--- trunk/src/ru/book/ch05.xml (original)
+++ trunk/src/ru/book/ch05.xml Sun Sep 25 02:43:24 2005
@@ -155,16 +155,21 @@
<!-- =============================================================== -->
<sect2 id="svn.reposadmin.basics.backends">
- <title>Repository Data-Stores</title>
+ <title>Repository Data Stores</title>
<para>As of Subversion 1.1, there are two options for storing
data in a Subversion repository. One type of repository
stores everything in a Berkeley DB database; the other kind
stores data in ordinary flat files, using a custom
format. Because Subversion developers often refer to a
- repository as <quote>The [Versioned] Filesystem</quote>, they have
+ repository as <quote>the (versioned) filesystem</quote>, they have
adopted the habit of referring to the latter type of repository as
- <firstterm>FSFS</firstterm>: that is, it's a versioned
+ <firstterm>FSFS</firstterm>
+ <footnote>
+ <para>Pronounced <quote>fuzz-fuzz</quote>, if Jack
+ Repenning has anything to say about it.</para>
+ </footnote>
+ —a versioned
filesystem implementation that uses the native OS filesystem
to store data.</para>
@@ -182,7 +187,7 @@
detail.</para>
<table id="svn.reposadmin.basics.backends.tbl-1">
- <title>Repository Data-Store Comparison</title>
+ <title>Repository Data Store Comparison</title>
<tgroup cols="3">
<thead>
<row>
@@ -2680,7 +2685,13 @@
to create various named branches of the main development line;
<filename>tags</filename>, which is a directory of branches
that are created, and perhaps destroyed, but never
- changed.</para>
+ changed.
+ <footnote>
+ <para>The <filename>trunk</filename>, <filename>tags</filename>,
+ and <filename>branches</filename> trio are sometimes referred
+ to as <quote>the TTB directories</quote>.</para>
+ </footnote>
+ </para>
<para>For example, your repository might look like:</para>
Modified: trunk/src/ru/book/ch06.xml
==============================================================================
--- trunk/src/ru/book/ch06.xml (original)
+++ trunk/src/ru/book/ch06.xml Sun Sep 25 02:43:24 2005
@@ -276,7 +276,7 @@
<para>To disable caching for a single command, pass the
<option>--no-auth-cache</option> option:</para>
-<screen>
+ <screen>
$ svn commit -F log_msg.txt --no-auth-cache
Authentication realm: <svn://host.example.com:3690> example realm
Username: joe
@@ -302,7 +302,7 @@
<literal>no</literal>, and no credentials will be cached on
disk, ever.</para>
-<screen>
+ <screen>
[auth]
store-auth-creds = no
</screen>
@@ -316,7 +316,7 @@
the particular server realm that the file is associated
with:</para>
-<screen>
+ <screen>
$ ls ~/.subversion/auth/svn.simple/
5671adf2865e267db74f09ba6f872c28
3893ed123b39500bca8a0b382839198e
@@ -439,7 +439,7 @@
process, then you can pass the <option>-i</option>
(<option>--inetd</option>) option:</para>
-<screen>
+ <screen>
$ svnserve -i
( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline ) ) )
</screen>
@@ -454,7 +454,7 @@
add lines to <filename>/etc/services</filename> like these (if
they don't already exist):</para>
-<screen>
+ <screen>
svn 3690/tcp # Subversion
svn 3690/udp # Subversion
</screen>
@@ -463,7 +463,7 @@
<command>inetd</command> daemon, you can add this line to
<filename>/etc/inetd.conf</filename>:</para>
-<screen>
+ <screen>
svn stream tcp nowait svnowner /usr/bin/svnserve svnserve -i
</screen>
@@ -549,7 +549,7 @@
which restricts it to exporting only repositories below that
path:</para>
-<screen>
+ <screen>
$ svnserve -d -r /usr/local/repositories
…
</screen>
@@ -560,7 +560,7 @@
have that path portion removed from them, leaving much
shorter (and much less revealing) URLs:</para>
-<screen>
+ <screen>
$ svn checkout svn://host.example.com/project1
…
</screen>
@@ -639,7 +639,7 @@
need. Begin by defining a file which contains usernames and
passwords, and an authentication realm:</para>
-<screen>
+ <screen>
[general]
password-db = userfile
realm = example realm
@@ -656,7 +656,7 @@
file that contains a list of usernames and passwords, using
the same familiar format. For example:</para>
-<screen>
+ <screen>
[users]
harry = foopassword
sally = barpassword
@@ -694,7 +694,7 @@
repository, and <literal>write</literal> allows complete
read/write access to the repository. For example:</para>
-<screen>
+ <screen>
[general]
password-db = userfile
realm = example realm
@@ -711,7 +711,7 @@
want to be even more conservative, you can block anonymous
access completely:</para>
-<screen>
+ <screen>
[general]
password-db = userfile
realm = example realm
@@ -759,7 +759,7 @@
<command>svnserve</command>. The client simply uses the
<literal>svn+ssh://</literal> URL schema to connect:</para>
-<screen>
+ <screen>
$ whoami
harry
@@ -835,7 +835,7 @@
<filename>config</filename> file, simply define it like
this:</para>
-<screen>
+ <screen>
[tunnels]
rsh = rsh
</screen>
@@ -851,7 +851,7 @@
username at host svnserve -t</command>). But you can define new
tunneling schemes to be much more clever than that:</para>
-<screen>
+ <screen>
[tunnels]
joessh = $JOESSH /opt/alternate/ssh -p 29934
</screen>
@@ -912,7 +912,7 @@
allowed to connect. The lines are typically of the
form:</para>
-<screen>
+ <screen>
ssh-dsa AAAABtce9euch.... user at example.com
</screen>
@@ -922,7 +922,7 @@
line can be preceded by a <literal>command</literal>
field:</para>
-<screen>
+ <screen>
command="program" ssh-dsa AAAABtce9euch.... user at example.com
</screen>
@@ -933,7 +933,7 @@
of server-side tricks. In the following examples, we
abbreviate the lines of the file as:</para>
-<screen>
+ <screen>
command="program" TYPE KEY COMMENT
</screen>
@@ -946,7 +946,7 @@
it's easy to name a specific <command>svnserve</command>
binary to run and to pass it extra arguments:</para>
-<screen>
+ <screen>
command="/path/to/svnserve -t -r /virtual/root" TYPE KEY COMMENT
</screen>
@@ -970,7 +970,7 @@
line, and use the <option>--tunnel-user</option>
option:</para>
-<screen>
+ <screen>
command="svnserve -t --tunnel-user=harry" TYPE1 KEY1 harry at example.com
command="svnserve -t --tunnel-user=sally" TYPE2 KEY2 sally at example.com
</screen>
@@ -996,7 +996,7 @@
want to specify a number of restrictive options immediately
after the <literal>command</literal>:</para>
-<screen>
+ <screen>
command="svnserve -t --tunnel-user=harry",no-port-forwarding,\
no-agent-forwarding,no-X11-forwarding,no-pty \
TYPE1 KEY1 harry at example.com
Modified: trunk/src/ru/book/ch07.xml
==============================================================================
--- trunk/src/ru/book/ch07.xml (original)
+++ trunk/src/ru/book/ch07.xml Sun Sep 25 02:43:24 2005
@@ -1498,7 +1498,7 @@
<para>If you want to see the ignored files, you can pass the
<option>--no-ignore</option> option to Subversion:</para>
-<screen>
+ <screen>
$ svn status --no-ignore
M calc/button.c
I calc/calculator
Modified: trunk/src/ru/sync.py
==============================================================================
--- trunk/src/ru/sync.py (original)
+++ trunk/src/ru/sync.py Sun Sep 25 02:43:24 2005
@@ -115,8 +115,9 @@
diff = os.popen(cmd.substitute(a='diff', r1=last, r2=base, t=fname)).read()
if len(diff) != 0:
os.system(cmd.substitute(a='log', r1=last, r2=base, t=fname))
- raw_input('Above is log message, to see diff press ENTER')
- print diff
+# raw_input('Above is log message, to see diff press ENTER')
+# print diff
+ f = file('../'+fname+'.diff', 'w'); f.write(diff); f.close()
os.system(cmd.substitute(a='merge', r1=last, r2=base, t=fname))
set_last(fname, str(base))
More information about the svnbook-dev
mailing list