From: Graham Percival <graham@percival-music.ca>
Date: Thu, 21 Oct 2010 08:05:22 +0000 (+0100)
Subject: convert-ly: option to only modify changed files.
X-Git-Tag: release/2.13.37-1~14
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ef981da2d6e8872aad3320c9efbbd6bd60ccd752;p=lilypond.git

convert-ly: option to only modify changed files.

This useful for the regtests -- with the extra -d flag, we will
only change the \version string if the actual contents of the file
has changed.  This lets us see which tests were modified, and
which tests were unchanged since the previous stable release.

However, the version string will still be updated to match the
last stable release.
---

diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py
index a1f126f290..3c447b9157 100644
--- a/scripts/convert-ly.py
+++ b/scripts/convert-ly.py
@@ -118,6 +118,12 @@ def get_option_parser ():
               action='store_true',
               dest='force_current_version',
               default=False)
+
+    p.add_option ('-d', '--diff-version-update',
+              help=_ ("only update \\version number if file is modified"),
+              action='store_true',
+              dest='diff_version_update',
+              default=False)
     
     p.add_option ("-s", '--show-rules',
               help=_ ("show rules [default: -f 0, -t %s]") % program_version,
@@ -250,6 +256,16 @@ def do_one_file (infile_name):
         if global_options.force_current_version and last == to_version:
             last = str_to_tuple (program_version)
 
+        if global_options.diff_version_update:
+            if result == input:
+                # check the y in x.y.z  (minor version number)
+                if last[0:2] != from_version[0:2]:
+                    # previous stable version
+                    last = (last[0], 2*(last[1]/2), 0)
+                else:
+                    # make no (actual) change to the version number
+                    last = from_version
+
         newversion = r'\version "%s"' % tup_to_str (last)
         if lilypond_version_re.search (result):
             result = re.sub (lilypond_version_re_str,