[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