[Info-vax] in-memory editing with EDT or EVE

Craig A. Berry craigberry at nospam.mac.com
Sat Nov 23 15:16:31 EST 2024


On 11/23/24 12:29 PM, Arne Vajhøj wrote:
> On 11/23/2024 1:10 PM, Craig A. Berry wrote:
>>>>> On Fri, 22 Nov 2024 19:59:07 -0500, Arne Vajhøj wrote:
>>>>>> But this is what a source control system really should be using 
>>>>>> for such
>>>>>> functionality. No need for temporary disk files.
>>
>> "should" seems awfully strong there and I don't understand why temporary
>> disk files pose a problem.
> 
> It is likely not a problem with any measurable impact.
> 
> But for the task as hand - having the user write a
> commit message that is to be send to a server over the
> network - then the use of a temporary files seems like
> an unnecessary detour to me.
> 
>>                                    To compute the commit ID, git has to
>> calculate the SHA1 of the actual content changes, the metadata (who,
>> when, etc.), and the commit message. While that could theoretically all
>> be done in memory, how can be you sure it would all fit in memory?
> 
> The files being committed are on disk, so Git will be doing disk IO.
> 
> But I don't see that as an argument for that the commit message need to
> pass through a file.
> 
>>                                                             Plus
>> debugging and recovery from failed operations would surely be much
>> easier with some kind of persistence of intermediate steps.
> 
> Maybe. But It is not obvious to me that having commit message
> on disk in a temporary file will help troubleshooting.
> 
>>                                                           So I think
>> the actual design of git is much better than this hypothetical one that
>> tries to avoid saving anything to disk until the last step.
> 
> The commit message should not be saved on disk client side at all.
> The message get created and get sent to the server over the network.

There is no "client."  In a DVCS like git, when you commit a change,
everything is written locally.  Pushing to a server is an optional
separate operation and what you push is the version history that has
been written locally first.  There is never a point where the commit
message is sent over the network to another machine before being stored
as one component of a commit.


More information about the Info-vax mailing list