On 30/08/2018 12:16 AM, Jerry Callen wrote:
The whole idea of holding a lock on a file while a human being slowly edits it
is so 1960s.
Since at least the mid 1970s, editors like emacs have loaded the file for
editing and noted the timestamp. When the user attempts to save the file. the
timestamp is checked again, and if it changed, the user is asked what to do.
I always thought this was a result of being unable to effectively
prevent simultaneous edits, not a feature. The user is asked what to do
- do you want to throw away your changes or the other guy's changes? The
answer is always the other guy's changes, right?
And, of course, if you use a distributed source control system like git,
handling merge conflicts is a built-in and normal part of the process.
You can of course do this on z/OS if you want to.
I have been using source control for long enough that making any change
without source control feels like climbing without a rope. But merging
isn't magic.
Merging:
1) Gives you a version that has never been verified by a human. The
people who wrote the merge process assumed the person doing the merge
will verify it is correct. The people doing the merge far too often
assume the merged version is correct. Merging is OK for compiled code
where the compiler does a lot of verification. For something like
SYS1.PARMLIB I'm not so sure.
2) Often you get versions that cannot be automatically merged. Sorting
out these issues can be a monumental mess. Particularly if one or both
of the merged versions were themselves the result of a merge, it can be
difficult to which conflicting pieces are required. In this situation
you wish for the simplicity of a single thread of sequential changes.
Merging is necessary and useful when you have multiple branches of
development. It's not a substitute for the prevention of simultaneous edits.
--
Andrew Rowley
Black Hill Software
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN