' to create the pipes.
If one of the pipes already exists, LyX will assume that another LyX process
is already running and will not start the server.
- This means that if LyX crashes, or if for some other reason, a
+ If for some other reason, an unused
\begin_inset Quotes eld
\end_inset
\begin_inset Quotes erd
\end_inset
- pipe is left in existence when LyX closes, then LyX will not start the
- server.
- (This is bug 641.) You will need to delete the pipes manually and then restart
- LyX.
+ pipe is left in existence when LyX closes, then LyX will try to delete
+ it.
+ If this fails for some reason, you will need to delete the pipes manually
+ and then restart LyX.
\end_layout
\begin_layout Standard
\end_layout
\begin_layout Standard
-Other than this, there are a few points to consider:
-\end_layout
-
-\begin_layout Itemize
-Both server and clients must run on UNIX or OS/2 machines.
- Communications between LyX on UNIX and clients on OS/2 or vice versa is
- not possible right now.
-\end_layout
-
-\begin_layout Itemize
-On OS/2, only one client can connect to LyXServer at a time.
-\end_layout
-
-\begin_layout Itemize
-On OS/2, clients must open the input pipe with
+You can find a complete example client written in C in the source distribution
+ as
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-O_WRONLY
+development/lyxserver/server_monitor.c
\end_layout
\end_inset
- mode.
+.
\end_layout
\begin_layout Standard
-You can find a complete example client written in C in the source distribution
- as
+Another useful tool is command-line based client you will find in
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-development/lyxserver/server_monitor.c
+src/client/lyxclient
\end_layout
\end_inset
Control
\family default
submenu.
+ LyX was tested against RCS 5.7.
\end_layout
\begin_layout Subsubsection
\begin_layout Standard
CVS command:
\family typewriter
-cvs -q commit -m"<description>" <file-name>
+cvs -q commit -m"<description>" "<file-name>"
\end_layout
\begin_layout Subsubsection
submenu.
Please note that if you use password protected access to repository via
ssh, you will be asked in terminal window.
+ LyX was tested against SVN 1.4 and 1.5.
\end_layout
\begin_layout Subsubsection
\end_layout
\begin_layout Standard
-SVN command:
+SVN command:
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+In case locking is not enabled.
+ See Section
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "subsec:SVN-File-Locking"
+
+\end_inset
+
+.
+\end_layout
+
+\end_inset
+
+
\family typewriter
svn commit -q -m"<description>" <file-name>
\end_layout
\end_layout
\begin_layout Standard
-SVN command:
+SVN command:
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Ditto.
+\end_layout
+
+\end_inset
+
+
\family typewriter
svn update
\begin_inset Quotes eld
is shown in a browser.
\end_layout
+\begin_layout Subsubsection
+File Locking
+\begin_inset CommandInset label
+LatexCommand label
+name "subsec:SVN-File-Locking"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+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
+ 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 based on
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+svn:needs-lock
+\end_layout
+
+\end_inset
+
+ file svn property.
+ 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:
+\end_layout
+
+\begin_layout Itemize
+Unlocked state.
+ The loaded file is in the read-only mode.
+ For editation on needs to check-out.
+
+\emph on
+Check-out
+\emph default
+ consists of update from repository and gaining write lock.
+ If the lock is not possible to obtain, we remain in unlocked state.
+\end_layout
+
+\begin_layout Itemize
+Locked state.
+ The loaded file is in the 'normal' edit mode.
+ No other user is allowed to edit the file.
+
+\emph on
+Check-in
+\emph default
+ consists of commiting changes and releasing write-lock.
+ If no changes have been made to the document, no commit will be produced
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Don't be puzzled by the fact that you will be asked for commit message anyway.
+\end_layout
+
+\end_inset
+
+ and only the write-lock will be released.
+\end_layout
+
+\begin_layout Standard
+SVN commands:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Check-in:
+\family typewriter
+ svn commit -q -m"<description>" "<file-name>"
+\begin_inset Newline newline
+\end_inset
+
+svn unlock "<file-name>"
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Check-out:
+\family typewriter
+svn update "<file-name>"
+\begin_inset Newline newline
+\end_inset
+
+svn lock "<file-name>"
+\end_layout
+
\begin_layout Subsection
SVN and Windows Environment
\end_layout