summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kastrup <dak@gnu.org>2013-09-06 09:29:31 +0200
committerDavid Kastrup <dak@gnu.org>2013-09-12 09:57:05 +0200
commitd96248cfd7c9f08f3bb27b400e589d54d2c000fb (patch)
tree28ffece5de0b7b9bff2726c2ab34d8a1bc4373b7
parent30f7edc4605e38b5735676d2874fc7be6f325267 (diff)
Issue 3477: Usage manual: convert-ly can only upgrade
-rw-r--r--Documentation/usage/updating.itely35
1 files changed, 30 insertions, 5 deletions
diff --git a/Documentation/usage/updating.itely b/Documentation/usage/updating.itely
index 499cb65bd7..6d8e73216b 100644
--- a/Documentation/usage/updating.itely
+++ b/Documentation/usage/updating.itely
@@ -20,8 +20,8 @@
The LilyPond input syntax is routinely changed to simplify it or improve
it in different ways. As a side effect of this, the LilyPond interpreter
often is no longer compatible with older input files. To remedy this,
-the program @command{convert-ly} can be used to deal with most of the
-syntax changes between LilyPond versions.
+the program @command{convert-ly} can be used for upgrading files
+to newer versions of LilyPond.
@menu
* Why does the syntax change?::
@@ -54,16 +54,40 @@ with existing scores)? In this case, we decided to change the
name to @code{print-all-headers}. Fortunately, this change can be
automated with our @command{convert-ly} tool.
-Unfortunately, @code{convert-ly} cannot handle all input changes.
+Unfortunately, @command{convert-ly} cannot handle all input changes.
For example, in LilyPond 2.4 and earlier, accents and non-English
letters were entered using LaTeX -- displaying the French word for
Christmas was entered as @code{No\"el}. But in LilyPond
@c keep "-matching straight in fancy editors
2.6 and above, the special @code{ë} must be entered directly into
-the LilyPond file as an UTF-8 character. @code{convert-ly} cannot
+the LilyPond file as an UTF-8 character. @command{convert-ly} cannot
change all the LaTeX special characters into UTF-8 characters; you
must manually update your old LilyPond input files.
+The conversion rules of @command{convert-ly} work using text pattern
+matching and replacement rather than a thorough understanding of
+LilyPond. This has several consequences:
+@itemize @bullet
+@item
+The reliability of the conversion depends on the quality of each
+applied rule set and on the complexity of the respective change.
+Sometimes conversions may require manual fixes, so the old version
+should be kept available for comparison.
+@item
+Only conversions to newer formats are possible: there are no rule
+sets for downgrading. So the main working copy of a LilyPond file
+should only be upgraded when older versions of LilyPond no longer
+need to be supported. Version control systems such as Git might
+help with maintaining multiple versions.
+@item
+LilyPond and Scheme themselves are quite robust against creatively
+placed and omitted spaces, but the rules used by
+@command{convert-ly} tend to make some stylistic assumptions.
+Following the style used in the manuals is the safest bet for
+painless upgrades, particularly as the manuals themselves are
+upgraded using @command{convert-ly}.
+@end itemize
+
@node Invoking convert-ly
@section Invoking @command{convert-ly}
@@ -156,7 +180,8 @@ Show all known conversions and exit.
@item -t, --to=@var{to-patchlevel}
Explicitly set which @code{\version} to convert to, otherwise the
-default is the most current value.
+default is the most current value. It must be higher than the
+starting version.
@example
convert-ly --to=2.14.1 myfile.ly