]> git.lyx.org Git - lyx.git/blobdiff - lib/doc/Extended.lyx
Japanese Tutorial.lyx: update by Koji
[lyx.git] / lib / doc / Extended.lyx
index 9fe0e83a00e56465fdafb0edd15e5511a81be2c0..4114b6c1f6049b45ea1b1b13382211e65ca5abc3 100644 (file)
@@ -4268,7 +4268,7 @@ status collapsed
 ' 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
 
@@ -4276,10 +4276,10 @@ stale
 \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
@@ -4315,41 +4315,27 @@ lyx -dbg lyxserver
 \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
@@ -16774,6 +16760,7 @@ Version
 Control
 \family default
  submenu.
+ LyX was tested against RCS 5.7.
 \end_layout
 
 \begin_layout Subsubsection
@@ -17037,7 +17024,7 @@ When you are finished editing a file, you commit your changes.
 \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
@@ -17108,6 +17095,7 @@ Control
  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
@@ -17183,7 +17171,25 @@ When you are finished editing a file, you commit your changes.
 \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
@@ -17201,7 +17207,17 @@ Updates the changes of this file from the repository.
 \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
@@ -17264,6 +17280,333 @@ svn log
  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
+
+\begin_layout Quote
+My inclination is to say that if the user cannot figure out the command
+ line operations on their own fairly quickly, they would be well advised
+ to use TortoiseSVN.
+ ---P.
+ A.
+ Rubin
+\end_layout
+
+\begin_layout Subsubsection
+Preparation
+\end_layout
+
+\begin_layout Standard
+In addition to installing LyX, and having access to a Subversion repository,
+ the user will need to install the Subversion client program.
+ A Windows installer for the client program is available from 
+\begin_inset CommandInset href
+LatexCommand href
+name "CollabNet"
+target "http://www.collab.net/nonav/downloads/subversion/"
+
+\end_inset
+
+.
+ The user may also want to install 
+\begin_inset CommandInset href
+LatexCommand href
+name "TortoiseSVN"
+target "http://tortoisesvn.tigris.org/"
+
+\end_inset
+
+, which integrates Subversion operations into the context (rightclick) menu
+ of Windows Explorer.
+ Operations done outside LyX will typically be more convenient using the
+ Explorer context menu.
+ Note that TortoiseSVN is not a replacement for the client program, which
+ is what LyX itself will use.
+\end_layout
+
+\begin_layout Subsubsection
+Bringing a document under Subversion control
+\end_layout
+
+\begin_layout Standard
+Before a LyX document can be brought under version control in Subversion,
+ its parent directory needs to be under version control.
+ If the document is being added to a project already in the repository,
+ this is accomplished by checking the project out to the directory where
+ the new document will be placed.
+ If the project itself is not yet under version control (for instance, if
+ this document starts a new project), the directory must be imported into
+ the repository.
+ This is done outside LyX.
+ Both import and checkout are easily accomplished from the Explorer context
+ menu using TortoiseSVN, or alternatively can be done using the command
+ line client at a DOS prompt.
+ The procedure for importing the project using TortoiseSVN is described
+ below, assuming an existing repository and a new project being started
+ in 
+\family typewriter
+C:
+\backslash
+new project
+\family default
+.
+ For information on using the Subversion client program, run 
+\family typewriter
+svn --help 
+\family default
+in a DOS shell.
+\end_layout
+
+\begin_layout Enumerate
+Locate 
+\family typewriter
+C:
+\backslash
+new project 
+\family default
+in Windows Explorer, right click it, and select 
+\family typewriter
+TortoiseSVN > Repo-browser
+\family default
+.
+ If necessary, adjust the URL for the repository, then click OK.
+\end_layout
+
+\begin_layout Enumerate
+Right click the level of the repository under which you want to place the
+ new project folder (typically the top level) and click 
+\family typewriter
+Create folder\SpecialChar \ldots{}
+
+\family default
+ Supply a name for the project folder and click OK.
+ Add a message for the log file if desired, then click OK again.
+ The new project folder should appear in the repository.
+ Finally, click OK again to exit the repository browser.
+\end_layout
+
+\begin_layout Enumerate
+Once again right click 
+\family typewriter
+C:
+\backslash
+new project
+\family default
+, this time selecting SVN Checkout\SpecialChar \ldots{}
+ Select the URL of the project folder
+ you just created in the repository, and set the checkout directory to 
+\family typewriter
+C:
+\backslash
+new project.
+
+\family default
+ Click OK.
+ You will be warned about a non-empty folder; click OK to proceed.
+ You should now have a 
+\family typewriter
+.svn
+\family default
+ directory under 
+\family typewriter
+C:
+\backslash
+new project.
+\end_layout
+
+\begin_layout Enumerate
+Create or open your document in LyX and click 
+\family sans
+\bar under
+F
+\bar default
+ile\SpecialChar \menuseparator
+
+\bar under
+V
+\bar default
+ersion
+\begin_inset space ~
+\end_inset
+
+Control\SpecialChar \menuseparator
+
+\bar under
+R
+\bar default
+egister.
+\family default
+Add a log message and click OK to commit the document to version control.
+\end_layout
+
+\begin_layout Standard
+From this point onward, you should have full functionality in the 
+\family sans
+\bar under
+F
+\bar default
+ile\SpecialChar \menuseparator
+
+\bar under
+V
+\bar default
+ersion
+\begin_inset space ~
+\end_inset
+
+Control
+\family default
+ menu.
+ You also have the option of checking the document in and out, viewing its
+ history, etc.
+ using the TortoiseSVN context menu in Windows Explorer or the Subversion
+ client program from a command prompt.
+\end_layout
+
+\begin_layout Subsection
+Further tuning
+\end_layout
+
+\begin_layout Standard
+With the recent addition of the vc-command function LyX power users are
+ allowed to create their own commands for revision control.
+\end_layout
+
+\begin_layout Standard
+As an example you can see how two TortoiseSVN commands could be integrated
+ directly:
+\end_layout
+
+\begin_layout Description
+Commit: 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+vc-command DS "." "TortoiseProc /command:commit /path:$$p"
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Revert: 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+vc-command DR "." "TortoiseProc /command:revert /path:$$p"
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
 \begin_layout Section
 Literate Programming
 \end_layout