#LyX 2.0.0svn created this file. For more info see http://www.lyx.org/
-\lyxformat 404
+\lyxformat 407
\begin_document
\begin_header
\textclass scrbook
\papercolumns 1
\papersides 2
\paperpagestyle headings
-\tracking_changes false
+\tracking_changes true
\output_changes false
\html_math_output 0
\html_be_strict true
-\author 1 "ab"
-\author 2 "bbb"
\end_header
\begin_body
\begin_inset Newline newline
\end_inset
-If Lyx is unable to render a formula as MathML---for example, if the formula
+If LyX is unable to render a formula as MathML---for example, if the formula
uses the
\begin_inset Flex Code
status collapsed
\end_layout
\begin_layout Subsection
-
-\change_inserted 2 1274788899
\begin_inset CommandInset label
LatexCommand label
name "sub:rev-search"
\end_layout
\begin_layout Standard
-
-\change_inserted 2 1274789582
In most cases LyX will do the work for you by enabling
\begin_inset Flex MenuItem
status collapsed
\begin_layout Plain Layout
-
-\change_inserted 2 1274789026
Document\SpecialChar \menuseparator
Output\SpecialChar \menuseparator
Output Sync
status collapsed
\begin_layout Plain Layout
-
-\change_inserted 2 1274789582
View/update
-\change_unchanged
-
\end_layout
\end_inset
\end_layout
\begin_layout Standard
-
-\change_inserted 2 1274789534
Plase note that including
\begin_inset Flex Code
status collapsed
\begin_layout Plain Layout
-
-\change_inserted 2 1274789498
srcltx
-\change_unchanged
-
\end_layout
\end_inset
status collapsed
\begin_layout Plain Layout
-
-\change_inserted 2 1274789484
src-specials
-\change_unchanged
-
\end_layout
\end_inset
sometimes have an impact on the typeset and you should switch them off
for the final typesets.
-\change_unchanged
-
\end_layout
\begin_layout Standard
-
-\change_inserted 2 1274789340
You can also define custom macro in preferences and in case you need some
special tweaks read the next section about manual enabling.
-\change_unchanged
-
\end_layout
\begin_layout Subsection
-
-\change_inserted 2 1274788680
Manual enabling
-\change_unchanged
-
\end_layout
\begin_layout Standard
a given method (the built-in methods are rather new) and whether your viewer
can cope with it.
The available methods are described in the following.
-\change_inserted 2 1274788557
-
\end_layout
\begin_layout Subsubsection*
\begin_layout Standard
Reverse search is triggered by double-click.
-\change_inserted 1 1271453423
-
\end_layout
\begin_layout Section
-
-\change_inserted 1 1271453442
Forward search
\end_layout
\begin_layout Standard
-
-\change_inserted 1 1271454338
To make forward search possible you need to provide generated output PDF/DVI
file with additional information about TeX sources.
This can be done via the methods described in the section
\end_layout
\begin_layout Standard
-
-\change_inserted 1 1271454479
Secondly you need to configure LyX for using your viewers in
\begin_inset Flex MenuItem
status collapsed
\begin_layout Plain Layout
-
-\change_inserted 1 1271453866
Preferences\SpecialChar \menuseparator
Output\SpecialChar \menuseparator
General
status collapsed
\begin_layout Plain Layout
-
-\change_inserted 1 1271454273
For Sumatra CMCDDE is needed --- downloadable from http://www.istri.fr/zip/CMCDDE.z
ip
-\change_unchanged
-
\end_layout
\end_inset
page of the file --- Evince or xpdf --- for these cases you can use external
call of synctex.
Please study the prepared examples in the Preferences dialog.
-\change_unchanged
-
\end_layout
\begin_layout Chapter
\begin_layout Standard
Before you begin to use the version control features in LyX, you should
be familiar with RCS/CVS/SVN usage before start using it under LyX.
- Also note that CVS support was obsoloted by introducing subversion support
- so we advice using SVN instead.
+ Also note that CVS support is not as good as subversion support so we advice
+ using SVN instead.
Good place to start with Subversion is SVN Book
\begin_inset Foot
status open
\begin_layout Standard
The implementation in LyX assumes a recent version of the GNU RCS or CVS/SVN
package—no guarantees are made for older versions.
- Most of the log messages are not currently displayed after operations -
+ Most of the log messages are not currently displayed after operations —
you can check them in Messages pane if unsure.
\end_layout
\end_layout
\begin_layout Standard
-This show the complete history of the RCS document.
+This shows the complete history of the RCS document.
The output of
\family typewriter
rlog <file-name>
\end_layout
\begin_layout Standard
-CVS is now partially supported by LyX.
+A subset of CVS operations is supported by LyX.
You can find the commands in the
\family sans
File\SpecialChar \menuseparator
Control
\family default
submenu.
- Focus of the development moved to SVN support, so please use it instead
+ The version control system SVN is more powerful, so please use it instead
of CVS if possible.
\end_layout
\begin_layout Subsubsection
+\family sans
+General CVS usage
+\end_layout
+
+\begin_layout Standard
+If you start from scratch with CVS you have to create your repository and
+ checkout the working copy with external tools.
+ If you're using a client-server setup you may need to login before doing
+ the first repository checkout.
+\end_layout
+
+\begin_layout Standard
+If your documents are under revision control and others are using the same
+ repository problems arise when different changes to the same document at
+ the same location happen.
+ Standard CVS repositories doesn't operate with a file locking mechanism.
+ This may be surprising, but conflicts only occur if people disagree on
+ the proper content of the same part of a document.
+ So, if co-workers are used to communicate regularly, these conflicts occur
+ rarely.
+ If they don't communicate they have a fundamental problem anyway.
+ Nevertheless some people like to work with so called
+\begin_inset Quotes eld
+\end_inset
+
+reserved checkouts
+\begin_inset Quotes erd
+\end_inset
+
+.
+ If they do so the working copy of all files is readonly when checked out
+ first and the user starts editing after using a special command to make
+ the working copy writable.
+ When the changes are checked in the working copy returns to readonly state.
+ With LyX one has to edit the
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+.cvsrc
+\end_layout
+
+\end_inset
+
+ file and add the line
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+cvs -r
+\end_layout
+
+\end_inset
+
+ to work with reserved checkouts.
+ The benefit is the possibility to see who is using a writable copy of some
+ document.
+ It's not guaranteed only one user makes a copy writable.
+\end_layout
+
+\begin_layout Standard
+LyX tries to guess if you're using reserved or non-reserved checkouts.
+ If your working copy is readonly or it is writable and an additional copy
+ of your document exists in the CVS/Base sub-directory a reserved otherwise
+ a non-reserved checkout is assumed.
+ When a reserved checkout is detected you have to use
+\begin_inset Flex MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+Check Out
+\end_layout
+
+\end_inset
+
+ to make your working copy writable if it's readonly.
+ After doing so the
+\begin_inset Flex MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+Check In
+\end_layout
+
+\end_inset
+
+ operation is possible and that makes your working copy readonly again after
+ transferring your changes to the repository.
+\end_layout
+
+\begin_layout Standard
+More information about CVS can be found here
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.nongnu.org/cvs
+\end_layout
+
+\end_inset
+
+ and here
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://ximbiot.com/cvs
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Read
+\family typewriter
+man cvs
+\family default
+ to understand the sub-commands and the switches mentioned below.
+\end_layout
+
+\begin_layout Subsubsection
+
\family sans
Register
\end_layout
\end_layout
\begin_layout Standard
-This command registers in CVS your document ONLY in case you have already
- the documents directory under CVS control (in particular
+This command registers in CVS your document
+\emph on
+
+\begin_inset Flex Strong
+status collapsed
+
+\begin_layout Plain Layout
+
+\emph on
+only
+\end_layout
+
+\end_inset
+
+
+\emph default
+ in case you have already the documents directory under CVS control (in
+ particular
\family typewriter
CVS/Entries
\family default
file exists).
- This means you have to checkout the archive by yourself.
-
+ This means you have to create or checkout the archive by yourself using
+ external tools.
+ (In case you forget that step LyX registers the document with RCS.)
\end_layout
\begin_layout Standard
Then you are asked interactively to supply an initial description of the
document.
- Don't forget that registered file is not yet commited.
+ Don't forget that registered file is not yet checked in.
\end_layout
\begin_layout Standard
CVS command that is run:
\family typewriter
-cvs -q add -m
-\begin_inset Quotes erd
-\end_inset
+cvs -q add -m"<entered message>" "<file-name>"
+\end_layout
-<entered message>"
+\begin_layout Standard
+The term
+\family typewriter
+"<file-name>"
+\family default
+ above and for all other CVS commands is an abbreviation for
\begin_inset Quotes eld
\end_inset
-<file-name>
+change the current working directory to file location and use the file name
+ without path component as argument
\begin_inset Quotes erd
\end_inset
+.
+\end_layout
+\begin_layout Subsubsection
+
+\family sans
+Check In Changes
\end_layout
\begin_layout Standard
-Read
+When you are finished editing a file, you commit your changes.
+ When you do this and you had changed the document, you are asked for a
+ description of the changes.
+ After that changes are written to the repository.
+ In case you didn't change the document and a reserved checkout is detected
+ the reservation made on
+\begin_inset Flex MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+Check Out
+\end_layout
+
+\end_inset
+
+ is undone.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+CVS
+\begin_inset space ~
+\end_inset
+
+command:
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+cvs
\family typewriter
-man svn
-\family default
- to understand the switches.
-
+-q commit -m"<description>" "<file-name>"
+\end_layout
+
+\end_inset
+
+ or
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+cvs -q unedit
+\family typewriter
+"<file-name>"
+\end_layout
+
+\end_inset
+
+
\end_layout
\begin_layout Subsubsection
\family sans
-Check In Changes
+Check Out Changes
\end_layout
\begin_layout Standard
-When you are finished editing a file, you commit your changes.
- When you do this, you are asked for a description of the changes.
- After that changes are commited.
+When you are sharing a repository with others, you may have to incorporate
+ their changes into your working copy.
\end_layout
\begin_layout Standard
CVS command:
\family typewriter
-cvs -q commit -m"<description>" "<file-name>"
+cvs -q update "<file-name>"
+\end_layout
+
+\begin_layout Standard
+If a readonly checkout is detected the working copy is made writable and
+ reserved.
+\end_layout
+
+\begin_layout Standard
+CVS command:
+\family typewriter
+cvs -q edit "<file-name>"
\end_layout
\begin_layout Subsubsection
\begin_layout Standard
CVS command:
\family typewriter
-cvs update
-\begin_inset Quotes eld
+cvs -q update "<file-name>"
+\end_layout
+
+\begin_layout Standard
+If a reserved checkout is detected and the working copy has no changes only
+ the reservation is undone.
+\end_layout
+
+\begin_layout Standard
+CVS command:
+\family typewriter
+cvs -q unedit "<file-name>"
+\end_layout
+
+\begin_layout Subsubsection
+Update of the local directory checkout from repository
+\end_layout
+
+\begin_layout Standard
+Once your documents gets more complex, containing sub-documents and pictures,
+ including external
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+.tex
+\end_layout
+
\end_inset
-<file-name>
-\begin_inset Quotes erd
+ files and so on using version control becomes more complicated.
+ LyX supports updating the whole tree in which resides the document.
+ This become especially useful once you cooperate with people which neither
+ have detailed knowledge about CVS usage nor they have ambition to commit
+ additional material to the repository.
+ You have to organize the files structure so that all external files are
+ in the same directory or subdirectories of the document.
+ It's good practice anyway to store multipart documents in an extra directory.
+\end_layout
+
+\begin_layout Standard
+The
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+Update local directory from repository
+\end_layout
+
\end_inset
+ command updates the whole directory.
+ If local changes are detected user is warned before update starts.
+ In case of merge conflicts both versions of the conflicting document parts
+ are placed in the final document.
+ You have to review and correct the result of the merge.
+ You'll find the conflicts enclosed in pairs of
+\begin_inset Flex Code
+status collapsed
+\begin_layout Plain Layout
+<<<<<<<
\end_layout
-\begin_layout Subsubsection
+\end_inset
-\family sans
-Show History
+ and
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+>>>>>>>
\end_layout
-\begin_layout Standard
-This show the complete history of the CVS document.
- The output of
+\end_inset
+
+ separated by
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+=======
+\end_layout
+
+\end_inset
+
+.
+ The first part is your version as before the update operation with the
+ document name prepended.
+ The second one is the repository version with the version number after
+ the sequence of
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+>
+\end_layout
+
+\end_inset
+
+ signs.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+CVS
+\begin_inset space ~
+\end_inset
+
+commands:
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+cd $path; cvs diff
\family typewriter
-cvs log
-\begin_inset Quotes eld
+"."
+\end_layout
+
\end_inset
-<file-name>
-\begin_inset Quotes erd
+ (Ask if changes are detected.)
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+cd $path; cvs -q update
+\family typewriter
+"."
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+where
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+$path
+\end_layout
+
\end_inset
+ stands for the path to the document.
+\end_layout
+\begin_layout Subsubsection
+
+\family sans
+Show History
+\end_layout
+
+\begin_layout Standard
+This shows the complete history of the CVS document.
+ The output of
+\family typewriter
+cvs log "<file-name>"
\family default
is shown in a browser.
\end_layout
\end_layout
\begin_layout Standard
-This show the complete history of the SVN document.
+This shows the complete history of the SVN document.
The output of
\family typewriter
svn log
The file exchange through various revision control systems brings the problem
of merge conflicts in case two different users try to edit the same (parts
of) document.
- When such conflict happens it needs manual resolving and one reasonable
+ When such a conflict happens it needs manual resolving and one reasonable
alternative is to provide some kind of locking mechanism, which guarantees
that only one user is allowed to edit file at the given time.
\end_layout
\begin_layout Standard
-SVN has two mechanisms to provide such kind of mutual exclusivity for file
- access - locks and automatical setting of write permissions (see sec.
+SVN has two such mechanisms to provide mutual exclusivity for file access
+ - locks and automatic setting of write permissions (see sec.
\begin_inset CommandInset ref
LatexCommand ref
\end_inset
.
- In a case this property is detected for a given document LyX starts to
- use SVN locks for document editing automatically and the whole check-in/out
- mechanism switches to the same regimen as for RCS.
- This in particular means there are two different modes how file is used
- in LyX:
+ If this property is detected for a given document LyX starts to use SVN
+ locks for document editing automatically and the whole check-in/out mechanism
+ switches to the same regimen as for RCS.
+ This in particular means there are two different modes of file use in LyX:
\end_layout
\begin_layout Itemize
Unlocked state.
The loaded file is in the read-only mode.
- For editation on needs to check-out.
+ For editing on needs to check-out.
\emph on
Check-out
\emph default
- consists of update from repository and gaining write lock.
+ consists of updating from the repository and gaining write lock.
If the lock is not possible to obtain, we remain in unlocked state.
\end_layout
\family default
-Automatical Locking Property
+Automatic Locking Property
\end_layout
\begin_layout Standard
-The above mentioned automatical setting of write permissions of the .lyx
- file can be set through
+The above mentioned automatic setting of write permissions of the .lyx file
+ can be set through
\family sans
\bar under
F
\family sans
svn propset svn:keywords 'Rev' file.lyx
\family default
-) and then paste keyword ERT
+) and then paste keyword TeX code
\begin_inset Foot
status collapsed
\end_layout
\begin_layout Subsubsection
-SSH tunel used with SVN under Windows
+SSH tunnel used with SVN under Windows
\end_layout
\begin_layout Standard
-Compared to linux setting svn client to communicate over ssh under Windows
- is rather troublesome task.
- We will at least make some hints how to setup client side but former knowledge
- about ssh and Windows command line is needed, also be prepared for a great
- deal of frustration...
+Compared with Linux setting up svn client to communicate over ssh under
+ Windows is a rather troublesome task.
+ We will at least offer some hints how to setup the client side but prior
+ knowledge about ssh and the Windows command line is needed, also be prepared
+ for a great deal of frustration\SpecialChar \ldots{}
+
\end_layout
\begin_layout Enumerate
-Get svn client for windows, as described in previous sections.
- When it is fresh install run some svn command (e.g.
+Get a svn client for windows, as described in the previous sections.
+ When it is a fresh install run some svn command (e.g.
\begin_inset Flex Code
status collapsed
\end_inset
-) to have created config files, which you will need to change later on.
+) to create config files, which you will need to change later on.
\end_layout
\begin_layout Enumerate
-Choose ssh client for Windows.
- There are more possibilities, we will use the one from Putty tools
+Choose a ssh client for Windows.
+ There are several possibilities, we will use the one from Putty tools
\begin_inset Foot
status open
\end_inset
.
- You will need to automatize connection, so client doesn't ask for any password
- from you.
+ You will need to set the connection up so that the client doesn't ask for
+ any password from you.
To keep things easy we will use only keys without any additional password
protection etc.
\end_layout
.
Save your private .ppk key file and put the public one on the server side.
- In case the SVN server runs on linux, note that the format of the public
- key is not compatible with linux openssh and you will need to direcly copy-past
-e the key from the “
+ If the SVN server runs on Linux, note that the format of the public key
+ is not compatible with Linux openssh and you will need to direcly copy-paste
+ the key from the “
\emph on
Public key for pasting into OpenSSH authorized_keys file
\emph default
\begin_layout Standard
When the collsraborators are mixing Linux and Windows environments, LyX
will use different line endings inside the .lyx files.
- This is not problem as far as LyX functionality is concerned, but the commit
- diffs will be huge and merge-conflicts prone.
+ This is not a problem as far as LyX functionality is concerned, but the
+ commit diffs will be huge and merge-conflicts prone.
Fortunately SVN itself knows
\begin_inset Foot
status collapsed
\begin_layout Standard
The main purpose of this documentation is to show you how to use LyX for
- literate programming.
- Where it is assumed that you are familiar with this programming technique,
- and know what
+ literate programming, where it is assumed that you are familiar with this
+ programming technique, and know what
\begin_inset Quotes eld
\end_inset
\begin_inset space \thinspace{}
\end_inset
-g.
+E.
Knuth during the development of his TeX typesetting software.
\end_layout
\begin_layout Plain Layout
-http://shelob.ce.ttu.edu/daves/lpfaq/faq.html
+http://www.literateprogramming.com/lpfaq.pdf
\end_layout
\end_inset
\begin_layout Standard
Most ideas in this section require less common files in your LaTeX installation.
- If you have a system like teTeX, most will already be available.
+ If you have a system like TeXLive, most will already be available.
A few, however, will need to be downloaded from one of the CTAN archives.
Often, there are several ways to do something, or several LaTeX style files
which do the same thing.
\end_layout
-\begin_layout Standard
-
-\end_layout
-
\begin_layout Section
Dropped Capitals
\end_layout
dropping
\family default
) package from CTAN allows a simple way to add such letters to your documents.
- Since this package is not a standard part of teTeX, I can't demonstrate
+ Since this package is not a standard part of TeXLive, I can't demonstrate
it within this document, but if you copy this paragraph to a new document,
delete the
\begin_inset Quotes eld