lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Extracting a "score diff" from two [or more] Lilypond sources


From: Flaming Hakama by Elaine
Subject: Re: Extracting a "score diff" from two [or more] Lilypond sources
Date: Mon, 24 Jan 2022 13:42:34 -0800


---------- Forwarded message ----------
From: Kieren MacMillan <kieren@kierenmacmillan.info>
To: David Kastrup <dak@gnu.org>
Cc: Lilypond-User Mailing List <lilypond-user@gnu.org>
Bcc: 
Date: Sat, 22 Jan 2022 17:34:31 -0500
Subject: Re: Extracting a "score diff" from two [or more] Lilypond sources
Hi David,

> What version control system are you using for your score?  It will
> probably easiest to look at the source code diffs and do a manual
> summary from those.


You're probably not going to appreciate this suggestion, 
because it does not aspire to the auto-magic you desire.

However, it is clear to me that the best practice for all software dev is to use commit messages.

Commit often, once per thing that you'd like noted in your report, and with a meaningful commit message.

Then your commit history is your report.
 

The problem is that during various stages of composition / arranging / engraving / coding:
   1. there can be huge differences in code that represent only a few small differences in notated output;

This is why you want to use messages to specify the intent of the commit.
 
   2. there can be very small differences in code that represent many/large differences in notated output; and

Another reason to use messages to specify the intent of the commit.
 
   3. there can be many, many small changes in code (cleanup, variable-izing, moving tweaks to/from the edition-engraver, file splitting, etc.) that literally have *no* effect on the notated output.

You have the decision to either commit granually, so some commits would not be relevant to your report.   Or, this stuff can be included as part of things that are relevant.  Which would make this rather like the first case.

 

Especially in the third case, combing through all those changes to manually summarize changes worth noting to others would be time-consuming and error-prone. If my process were more luxurious, I'd do a "'notable changes' only" pass, manually summarize the diff(s), and then do the other code work in a separate pass — the issue is that the timeline of a workshop doesn't grant me that luxury, so I was hoping there was an automagic way of figuring out exactly and only those things that needed to be communicated to the MD/performers in any given score update.


The place to do this is as you work on it, not after.

Since these changes are being requested of you, 
you probably know what the edits are going to be before you start coding, yes?

So then, as you go down your list of edits to make, 
as you fix each one, 
commit the code with a message referencing the task you just completed.

When you are done, your commit history will document the work you accomplished.

If, for some reason, you do not know the list of edits you are going to do when you sit down to work, then you just have to do it as you go.  When you complete something that is worth reporting, make a commit with a message.  Doesn't matter if the entire work is incomplete, since the purpose of partial commits is the message.

If you need to distinguish between partial commits and release-able versions, the typical way is to use git tag to identify which ones are stable.  And/or adopt a commit message strategy that clearly identifies which ones represent a release.

I know this won't help retroactively.

But I suspect it should be an easy workflow to adopt since the overhead to making incremental commits is tiny.

 

Thanks,
Kieren.


HTH,

Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
elaine@flaminghakama.com
Producer ~ Composer ~ Instrumentalist ~ Educator
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



reply via email to

[Prev in Thread] Current Thread [Next in Thread]